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
klockky
4c0dd48a3a
fix: порядок логина при хэндшейке + регистрация FCM-токена (pushOptions)
2026-06-10 11:35:17 +03: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
klockky
5eaa425c8f
feat(webapp): мини-приложения через webAppInitData, вход в Сферум
2026-06-07 18:28:59 +00:00
Jganenok
e954e0bc3b
я балбес, фикс #33
2026-06-05 14:11:41 +07:00
Jganenok
a2851b3681
Возможность войти в приложение без соединения. Вроде фикс issue #33
2026-06-05 13:11:28 +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
Jganenok
838e892bbc
онэмашке
2026-05-29 18:38:33 +07:00
Jganenok
5a3890c55e
набурмалдил
2026-05-29 13:52:13 +07:00
Jganenok
e7f401b01d
просто босс, просто начальник нахуй оптимизации
2026-05-29 11:21:41 +07:00
Jganenok
0947863697
легонько набурмалдил, остальнось сделать FKM и фронт уведомлений
2026-05-28 16:44:59 +07:00
Jganenok
58c02003fc
жесты
2026-05-28 00:07:27 +07:00
klockky
8a9832c85b
feat: десктоп-режим — 2-pane с ресайз-разделителем при ширине окна ≥ 900px
2026-05-26 17:32:29 +03:00
klockky
d963af407d
второй стиль меню действий: список (как в telegram); выбор в кастомизации
2026-05-23 08:22:05 +00:00
klockky
ad3885cfb3
fix: импорт package:flutter/rendering.dart для RenderRepaintBoundary
2026-05-22 18:43:31 +00:00
klockky
939dabbd86
анимация circular reveal при смене темы
2026-05-22 18:17:56 +00:00
klockky
5a9f7363dd
фикс подтормаживания при смене темы
2026-05-21 06:37:10 +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
7fd0206c34
закрепление и мьют чатов
2026-05-17 19:49:29 +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
Jganenok
590c9ed1e2
ну немножечко так оптимизировал чутка, добавил раздел 'производительность' в насторйки, немного сделал чуточку в кастомизации, пару мелочей переделал
2026-05-16 21:10:21 +07:00
klockky
26407a63aa
fix(fonts): make font size reactive via ValueNotifier
2026-05-16 12:41:06 +03:00
klockky
f4d40de8b9
perf(theme): memoize themes to stop AnimatedTheme re-lerp storm
2026-05-16 12:03:12 +03: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
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
Jganenok
74917dd3ec
даты, починил какую то хуйню с переподключением при старте
2026-05-15 16:26:19 +07:00
klockky
5db3b2d135
feat: тактильная отдача + тумблер в настройках
2026-05-15 07:26:27 +03:00
klockky
53805e8d74
Merge branch 'feature/FullStack' of https://github.com/KometTeam/Komet into feature/FullStack
2026-05-14 13:16:50 +03:00
klockky
d541e9df9d
fix(transport): Zstd-распаковка, гонка PacketReceiver, fix имён и стикеров
2026-05-14 13:12:41 +03:00
Jganenok
2991dd4500
изменение профиля
2026-05-13 23:57:38 +07:00
prime
72ac52b9b5
руки переломаю
2026-04-29 19:02:44 +10:00
Ваше Имя
3c8621d5fe
нахуевертил
2026-04-12 14:18:26 +07:00
klockky
4d4958a25f
feat(settings): версия приложения, секретное меню разработчика и перетаскиваемый FPS-оверлей
2026-04-05 21:36:21 +03:00
Ваше Имя
a9ed2b4859
Фронт сообщений в чате, пока только текстовые
2026-04-05 19:14:16 +07:00
klockky
a683748a33
fix(ui): center folder tab labels in chat list
2026-04-05 13:28:22 +03:00
Ваше Имя
095155fcf9
Fix code analysis issues: remove unused imports, debug prints, fix deprecated methods and naming conventions
2026-04-04 22:15:55 +07:00
klockky
fbbd284a7a
feat(theme): system light/dark mode and Material You dynamic colors
2026-04-04 16:02:36 +03:00
Ваше Имя
3f99bda6d2
нахуевёртил
2026-04-04 13:31:13 +07:00
klockky
80f528f4fb
Added localization support for multiple languages, including Russian and English, and integrated language selection in the login and country selection screens. Updated pubspec.yaml and pubspec.lock to include necessary dependencies.
2026-04-03 21:29:45 +03:00
Ваше Имя
676c2c715f
бля это сэкс
2026-04-03 20:54:12 +07:00