klockky
e16c51d2f0
feat: кастомные обои чата (SVG-паттерны, темы, глобальный фон, прозрачные панели)
2026-07-10 21:18:38 +03:00
klockky
72c914634f
feat(chats): локальный архив чатов
2026-07-10 00:12:04 +03:00
Jganenokk
c81cd91ecd
feat: реакции, так еще ебать и анимированные!!!!!! правда лагает пизда я это потом пофиксю мб как в тг сделаю
2026-07-10 00:38:03 +07:00
klockky
f4a30328ff
feat: истории — просмотр, публикация и кэширование
...
- протокол STORIES_LIST/GET_BY_OWNER/MARK/REACT/SEND + push (opcodes 0xD0–0xDC)
- StoriesModule: лента, реакции, публикация фото, SQLite-кэш и позиция просмотра
- полноэкранный вьюер: куб-переход, круговое открытие, drag-to-dismiss, прогресс-бары, реакции
- сегментные кольца, плитка «Ваша история» с кнопкой публикации, in-app пикер медиа
- резолв имён авторов через ensureContactNames/ContactCache
2026-07-08 20:07:19 +03:00
Jganenokk
f68d97f022
Переход к медиа на экране профиля, часть issue #45
2026-07-08 21:33:03 +07:00
Jganenokk
1944c18c6b
вроде контакты починил
2026-07-06 15:08:06 +07:00
Jganenokk
815e41648a
надеюсь будет работать сукi
2026-07-05 23:43:15 +07:00
Jganenokk
9f9b0e0734
небольшие изменения
2026-07-05 19:07:27 +07:00
Jganenokk
f9de0f331c
feat: немного анимированных иконок
2026-07-04 13:48:12 +07:00
Jganenokk
53125b60a3
feat: слегонца блюра в chat screen
2026-07-03 19:07:43 +07:00
Jganenokk
0e27f141a7
feat: стикеры
2026-07-03 00:45:36 +07:00
Jganenokk
a25e21277d
feat: вынес общую логику. Добавил статус 'выбирает стикер...'
2026-07-03 00:02:45 +07:00
Jganenokk
a904b733d2
feat: фул интеграция FCM с андроидом нах
2026-07-02 23:32:31 +07:00
Jganenokk
a855b302ee
feat: лог экспорт
2026-06-29 20:26:52 +07:00
klockky
c2466a9a5f
feat(devtools): монитор сокет-трафика в меню разработчика
2026-06-28 14:05:24 +03:00
Jganenokk
87373c4012
fix: задание от стасика
2026-06-28 16:38:32 +07:00
klockky
a55ab28ede
perf(android): уменьшаем вес APK на ~33% (65→43.6 МБ)
...
- media_kit только для десктопа — убраны ffmpeg/libass/mdk с мобилы (~10 МБ)
- google_fonts заменён бандлом Inter/Outfit/Unbounded — убран реестр всех
шрифтов из libapp.so (22→10 МБ)
- удалена неиспользуемая зависимость camera (CameraX)
- Dart-обфускация (--obfuscate --split-debug-info) в релизных CI + выгрузка
символов
- кастомные шрифты с Google Fonts вернулись через FontLoader + кэш, без веса
- хардкод Inter заменён наследованием шрифта из активной темы
2026-06-25 22:51:04 +03:00
klockky and Claude Opus 4.8
a2beb13edd
fix(desktop): заменяем fvp на media_kit — десктоп-сборки падали на mdk-sdk
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-25 18:38:17 +03:00
klockky
37e3763384
feat(media): голосовые сообщения и видеокружки
...
- голосовые: запись/отправка/воспроизведение, Ogg/Opus (libopus FFI на Windows/Android), волна, анимации, lock + slide-to-cancel
- видеокружки: нативная квадратная запись 480x480 (Camera2 + GL), аудио mono 48k, снятие video edit-list для прохождения серверного валидатора
- file_uploader: единый uploadMediaFile (аудио+видео), чтение полного ответа CDN
- проигрывание видео и кружков в message_bubble
2026-06-25 12:53:11 +03:00
klockky
4277b0a20d
feat(links): поддержка max.ru-ссылок и komet:// диплинков
...
- резолв max.ru/{join,joincall,u,c,:auth,<channel>}
- открытие чатов/профилей/звонков и подтверждение веб-входа в приложении
- внешние диплинки: intent-filter (Android), URL-схемы (iOS/macOS), komet://-регистрация в рантайме (Windows/Linux)
- fix(calls): не слать opcode 79 до login (жижа я тебя выебу)
2026-06-23 14:18:51 +03:00
Jganenokk
31dc6b619c
feat(commands): еще немного команд
2026-06-22 16:37:56 +07:00
Jganenokk
fd308327f5
feat: / команды
2026-06-21 22:35:58 +07:00
Jganenokk
abdda2be14
fix: небольшие фиксы от линуса торвальдса
2026-06-13 23:06:54 +07:00
Jganenokk
814e969c4a
feat: гост мод и фиксы разные всякие я линус торвальдс
2026-06-13 22:19:45 +07:00
Jganenok
8f15863493
feat(chats_screen): Real-time работа с lastMsg, галочки.
2026-06-13 16:06:41 +07:00
Jganenok
d6acfa52fa
feat(calls): Я ЕБЛАН ХАХАХХА Я ШАШКИ ЧЕРЕЗ ЗВОНКИ СДЕЛАЛ
2026-06-13 00:42:14 +07:00
Jganenok
d7dcb076c3
feat(calls): Щас попробую легонечко с data channel побурмалдить
2026-06-12 22:19:57 +07:00
Jganenok
42f1fd5292
feat(calls): Тяжело...... Звонки. Вроде полностью. Почти.
2026-06-12 22:19:57 +07:00
Jganenok
532fae4b39
feat(frontend): flossy стиль. Выбор градиент/без
2026-06-12 00:13:13 +07:00
Jganenok
e93019e96a
feat(calls): я в рот блять ебал эти звонки ваши ебучие Ыuka
2026-06-11 22:08:51 +07:00
klockky
e3635b5d29
feat: полное отображение типов сообщений + предпросмотр ссылок и оптимизация фото
...
Модели (lib/models/):
- attachment.dart — новые типы ShareAttachment (OG-карточка ссылки) и
CallAttachment (звонок); FILE получил вложенное превью и поле token;
LOCATION — поле zoom; единый декодер previewData (сырой WebP → data-URI)
вынесен в decodeAttachPreview
- poll.dart — корректный парсинг голосов ({userId,timestamp}) и признак
своего голоса (options & 1); helper withStateMap
Лента сообщений (message_bubble.dart):
- SHARE — карточка предпросмотра ссылки (картинка, домен, заголовок,
описание), тап открывает URL
- CALL — отображение звонков: аудио/видео/групповые/пропущенные,
длительность, направление; симметричная иконка
- LOCATION — карточка геопозиции, тап открывает карту
- FILE — превью-картинка над строкой файла
- кликабельные ссылки в тексте и подписях (LinkText)
- фикс лишней ширины бабблов гео/share/опроса (IntrinsicWidth + stretch)
- оптимизация рендера фото: убран fade-in, уменьшен размер декода
плиток фото-сетки
Опросы:
- интерактивное голосование через opcode 304 (polls.dart, poll_view.dart):
одиночный/множественный выбор, отметка своего ответа, проценты
Список чатов (chats.dart):
- превью типа вложения для сообщений без текста («Фото», «Опрос: …»,
«Звонок», «Геопозиция», «Файл: …», «Ссылка: …» и т.д.)
Настройки разработчика:
- тумблер «Предпросмотр ссылок» (app_link_preview.dart) — отключает
SHARE-карточки, оставляя текст со ссылкой; применяется на лету
Прочее:
- зависимость url_launcher ^6.3.1 (open_external_url / open_location_on_map)
- bump версии 0.5.0+11 → 0.5.0+12
2026-06-11 17:14:36 +03:00
klockky
760cdcd877
feat: звонки 1:1 (аудио) — WebRTC + ws2-сигналинг
...
Реализованы голосовые звонки 1:1 поверх инфраструктуры VK/OK
(flutter_webrtc + сигналинг ws2 wss://videowebrtc.okcdn.ru). Протокол
восстановлен реверсом захваченных пакетов и декомпиляцией
ru.ok.android.externcalls.sdk.
Ядро (lib/core/calls/):
- conversation_params.dart — декодер vcp (LZ4-блок), с unit-тестом
- ws2_signaling.dart — клиент сигналинга ws2 (transmit-data, ICE,
accept-call, hangup, change-media-settings, ping/pong)
- call_session.dart — WebRTC-контроллер для звонящего и вызываемого
- call_controller.dart — глобальный оркестратор: пуш opcode 137,
исходящие, приём/отклонение, управление активной сессией
Бэкенд:
- CallsModule.initiateCall — инициация исходящего (opcode 78)
- общий LZ4-block декодер вынесен в core/protocol/lz4_block.dart
(используется и транспортом, и vcp)
UI / обвязка:
- CallScreen переписан под живой CallSession (+ кнопка «свернуть»
без завершения звонка, возврат повторным нажатием 📞 )
- кнопка звонка в шапке диалога
- инициализация CallController на логине, показ входящего по пушу
- дев-тумблер: принудительный сигнал состояния микрофона без
изменения реального аудиотрека
Прочее:
- зависимость flutter_webrtc ^0.12.5
- Android: RECORD_AUDIO / MODIFY_AUDIO_SETTINGS / BLUETOOTH
2026-06-10 18:21:27 +03:00
klockky
3af41dc69e
fix: порядок логина при хэндшейке + регистрация FCM-токена (pushOptions)
2026-06-10 11:35:17 +03:00
klockky
02bfbb9ab0
feat(digital-id): Цифровой ID — WebView-мост к оригиналу + нативный режим
...
Реализован функционал Цифрового ID (паспорт, СНИЛС, ИНН, ОМС, водительское,
СТС и др.) двумя путями с переключателем в меню разработчика.
WebView-мост (по умолчанию):
- Открывает оригинальную страницу digital-id.max.ru и реализует нативный
хост-мост window.WebViewHandler (postEvent/receiveEvent), который настоящее
приложение MAX предоставляет нативно: lifecycle-события, биометрия,
SecureStorage/DeviceStorage, OpenLink (переход на Госуслуги) и заворот
OAuth-callback (externalCallback) обратно в мини-апп.
- botId Цифрового ID резолвится из settings-entry-banners конфига логина
(как Сферум).
Нативный режим:
- DigitalIdModule — REST-клиент к ext-api.max.ru (все эндпоинты по образцу
библиотеки gaijin: biometry, docs, esia, qr, verify, acms, profile),
авторизация через #WebAppData= из webAppInitData.
- Модели документов и экран онбординга/просмотра.
Прочее:
- Тумблер AppDigitalIdNative (WebView/нативно) и кнопка «Сбросить Цифровой ID»
(очистка кук и данных WebView) — в настройках разработчика.
2026-06-08 18:23:23 +03:00
klockky
4a0eeb6ea2
feat(webapp): мини-приложения через webAppInitData, вход в Сферум
2026-06-07 18:28:59 +00:00
Jganenok
43ce561a2b
я балбес, фикс #33
2026-06-05 14:11:41 +07:00
Jganenok
f64722fc66
Возможность войти в приложение без соединения. Вроде фикс issue #33
2026-06-05 13:11:28 +07:00
klockky
3341888ad5
feat: кэширование файлов/видео + управление кэшем в дев-меню
2026-06-02 20:40:03 +00:00
klockky
ef05c9eaaa
feat: поддержка медиа-вложений — опросы, видео, файлы и просмотр фото
...
Опросы (новый тип сообщения):
- модель Poll/PollAnswer и PollAttachment (_type: POLL)
- PollsModule: загрузка через opcode 306 (GET_POLL_UPDATES) с кэшем
- рендер опроса в баблах (вопрос, варианты, прогресс-бары, голоса)
Видео:
- getVideoUrl через opcode 83 (VIDEO_PLAY): выбор MP4_*/HLS из ответа
- полноэкранный плеер (video_player) с play/pause и перемоткой
- тап по видео в чате запускает воспроизведение
Файлы:
- getFileUrl через opcode 88 (FILE_DOWNLOAD) с корректным форматом
{messageId, chatId, fileId} → url (раньше слался неверный {url, token})
- скачивание во временную папку и открытие системным приложением
(path_provider, open_filex)
Фото:
- полноэкранный просмотрщик с зумом (был TODO-заглушкой)
- фикс «сжатости»: декодирование с учётом devicePixelRatio вместо ×2
2026-06-02 20:06:46 +00:00
klockky
1bcdb180af
feat: мимикрия протокола (opcode 6 + LZ4) и фиксы UI (истории, 2FA)
2026-06-02 18:28:31 +00:00
Jganenok
d5854e1aa8
онэмашке
2026-05-29 18:38:33 +07:00
Jganenok
0a23b33cfd
набурмалдил
2026-05-29 13:52:13 +07:00
Jganenok
b3a7fd081c
просто босс, просто начальник нахуй оптимизации
2026-05-29 11:21:41 +07:00
Jganenok
eca33daa91
легонько набурмалдил, остальнось сделать FKM и фронт уведомлений
2026-05-28 16:44:59 +07:00
Jganenok
ccc93f9e62
жесты
2026-05-28 00:07:27 +07:00
klockky
80706daf45
feat: десктоп-режим — 2-pane с ресайз-разделителем при ширине окна ≥ 900px
2026-05-26 17:32:29 +03:00
klockky
ac5bd1c24d
второй стиль меню действий: список (как в telegram); выбор в кастомизации
2026-05-23 08:22:05 +00:00
klockky
f9caf37588
fix: импорт package:flutter/rendering.dart для RenderRepaintBoundary
2026-05-22 18:43:31 +00:00
klockky
c78a684036
анимация circular reveal при смене темы
2026-05-22 18:17:56 +00:00
klockky
5849fb94f5
фикс подтормаживания при смене темы
2026-05-21 06:37:10 +00:00