klockky
bb00cf1d09
fix(tls): убран kReleaseMode-гард, тумблер insecure-TLS работает в release
2026-06-13 09:59:10 +00:00
Jganenok
ebc22cd8bd
feat(chats_screen): Real-time работа с lastMsg, галочки.
2026-06-13 16:06:41 +07:00
Jganenok
b9a89a4437
feat(calls): Я ЕБЛАН ХАХАХХА Я ШАШКИ ЧЕРЕЗ ЗВОНКИ СДЕЛАЛ
2026-06-13 00:42:14 +07:00
Jganenok
34cd52335e
feat(calls): Щас попробую легонечко с data channel побурмалдить
2026-06-12 22:19:57 +07:00
Jganenok
afbfa33b99
feat(calls): Тяжело...... Звонки. Вроде полностью. Почти.
2026-06-12 22:19:57 +07:00
Jganenok
e4ed1c10e1
feat(frontend): flossy стиль. Выбор градиент/без
2026-06-12 00:13:13 +07:00
Jganenok
e66f760a16
feat(calls): я в рот блять ебал эти звонки ваши ебучие Ыuka
2026-06-11 22:08:51 +07:00
klockky
94d3e44354
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
cf154b006b
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
Jganenok
d89c1366e2
feat: доделал работу с медиа.
2026-06-10 12:57:30 +07:00
Jganenok
32aa869b89
feat: работа с вложениями
2026-06-10 00:58:19 +07:00
Jganenok
e587ef184b
fix: большой фикс недочетов и фикс пары язв
2026-06-09 01:00:04 +07:00
klockky
06b5720638
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
Jganenok
628c809fd2
ГОВНОЧИСТ, ГОВНОЧИСТ ГОВНОЧИСТ. ОХ ГОВНА Я КОНЕЧНО УНЕС
2026-06-07 14:06:35 +07:00
Jganenok
5b9aaf7d7e
цэ фронт хуйнюшки которая где медиа отправлять
2026-06-07 13:11:20 +07:00
klockky
2daf384dad
fix(spoof): persist and apply all spoofing fields
2026-06-06 19:36:24 +03:00
Jganenok
a2851b3681
Возможность войти в приложение без соединения. Вроде фикс issue #33
2026-06-05 13:11:28 +07:00
klockky
4804c5bc1d
Merge remote-tracking branch 'origin/feature/FullStack' into feature/app-icon-switcher
...
# Conflicts:
# pubspec.lock
2026-06-03 18:06:43 +03:00
Jganenok
db9de4d8a2
оптимизация: слегоньца набурмалдил
2026-06-03 13:55:14 +07:00
klockky
4bdb0e70cf
feat: кэширование файлов/видео + управление кэшем в дев-меню
2026-06-02 20:40:03 +00:00
klockky
1a3570f942
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
5ff914b0dc
feat: мимикрия протокола (opcode 6 + LZ4) и фиксы UI (истории, 2FA)
2026-06-02 18:28:31 +00:00
klockky
d35729e911
feat: отправка chatCacheFingerprint и exp в login-пакете (opcode 19)
2026-06-02 17:09:23 +00:00
Jganenok
4afdf4b61e
изменение профиля
2026-05-31 17:43:58 +07:00
Jganenok
838e892bbc
онэмашке
2026-05-29 18:38:33 +07:00
Jganenok
5a3890c55e
набурмалдил
2026-05-29 13:52:13 +07:00
Jganenok
d8a2b8ec6d
размер шрифта
2026-05-28 21:29:47 +07:00
Jganenok
0947863697
легонько набурмалдил, остальнось сделать FKM и фронт уведомлений
2026-05-28 16:44:59 +07:00
klockky
eb159de0f4
fix: смена иконки через нативный MethodChannel — без плагина и без отключения MainActivity
2026-05-28 05:13:14 +00:00
klockky
b35626e36a
feat: смена иконки приложения в кастомизации (Default / Minimal)
2026-05-28 04:39:38 +00:00
Jganenok
58c02003fc
жесты
2026-05-28 00:07:27 +07:00
Jganenok
65dd15091a
какие то выкрутасы писькой
2026-05-27 22:22:30 +07:00
klockky
d963af407d
второй стиль меню действий: список (как в telegram); выбор в кастомизации
2026-05-23 08:22:05 +00:00
klockky
3e4aeea4de
кастомизация темы — режим, AMOLED, расписание переключения
2026-05-21 05:59:34 +00:00
Jganenok
99b87a56c7
немножко реал тайма в chat screen
2026-05-17 23:26:50 +07:00
Jganenok
a9c008ea8f
ДАНОН ПРАБИФ ДОКС СВЯТ ПРОФИЛЕЙ
2026-05-17 21:24:59 +07:00
Jganenok
7fd0206c34
закрепление и мьют чатов
2026-05-17 19:49:29 +07:00
Jganenok
80b297f7b3
удаление чатов и фикс загрузки ботов в chatsэ
2026-05-17 18:29:28 +07:00
Jganenok
d3f9b10d01
отправка файлов, анимации с реанимации
2026-05-17 16:11:30 +07:00
klockky
c4eaae501b
fix(security): close critical findings #1-3 from issue #17
...
- TLS: validate cert chain by default; debug-menu toggle to disable
- Logs: redact secrets in sender/dispatcher payloads
- Identity: per-install mt_instanceid/deviceId, per-launch clientSessionId
2026-05-16 23:36:28 +03:00
klockky
8125e158d2
fix(accent): restore app_accent.dart deleted in 5dcb8fd
2026-05-16 18:09:26 +03:00
Jganenok
5dcb8fd325
нахуй не надо
2026-05-16 21:13:36 +07:00
Jganenok
590c9ed1e2
ну немножечко так оптимизировал чутка, добавил раздел 'производительность' в насторйки, немного сделал чуточку в кастомизации, пару мелочей переделал
2026-05-16 21:10:21 +07:00
klockky
9d8c815821
feat(customization): system font, custom Google Fonts by URL, font size slider
2026-05-16 11:25:08 +03:00
klockky
8848ad1769
feat(customization): font switcher with Unbounded, styled via m3e
2026-05-16 10:58:14 +03:00
klockky
5b3af0541f
fix(network): make non-VPN network selection robust + show failure reason
2026-05-16 09:16:52 +03:00
klockky
c46579d916
fix(network): trigger VPN bypass on handshake failure too
2026-05-16 08:34:54 +03:00
klockky
51985b836f
refactor(network): VPN bypass as fallback — try VPN first, bypass only on failure
2026-05-16 07:59:56 +03:00
klockky
6e3cdc434d
feat(network): VPN bypass — bind to non-VPN net (wlan*/rmnet*) when tun detected + dev toggle
2026-05-16 07:45:29 +03:00
klockky
5a6cb10c91
feat(push): FCM via MAX server — oneme flavor, dedicated FCM workflow, opcode 22, notifications + CI/lint fixes
2026-05-15 18:14:22 +03:00