Commit Graph
75 Commits
Author SHA1 Message Date
klockky 4ee84745bf feat(chat): удаление сообщений (у себя/у всех) 2026-06-12 08:02:31 +00:00
klockky 894036e2ff feat: отправка вложений — файлы, опросы и геопозиция
- FILE/POLL/LOCATION через MSG_SEND (opcode 64) с inline-attach
  - sendLocationMessage / sendPollMessage в MessagesModule
  - экран создания опроса + рабочие вкладки «Файл/Геопозиция/Опрос» в шторке
  - geolocator + разрешения геолокации (Android/iOS) для текущей позиции
2026-06-11 18:27:09 +03: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
Jganenok ea08c96726 feat: работа с вложениями 2026-06-10 00:58:19 +07:00
Jganenok 580e30897b fix: большой фикс недочетов и фикс пары язв 2026-06-09 01:00:04 +07: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
Jganenok b1ce3054a7 fix: переделал 2FA, теперь должен работать. 2026-06-08 16:20:46 +07:00
klockky 7c4401c9fe fix(webapp): динамический appid Сферума из конфига логина 2026-06-07 19:32:53 +00:00
klockky c6bf57ebfc fix(sferum): резолвить бота перед запросом web-app данных 2026-06-07 19:06:44 +00:00
klockky 4a0eeb6ea2 feat(webapp): мини-приложения через webAppInitData, вход в Сферум 2026-06-07 18:28:59 +00:00
Jganenok 32d29a7c25 ГОВНОЧИСТ, ГОВНОЧИСТ ГОВНОЧИСТ. ОХ ГОВНА Я КОНЕЧНО УНЕС 2026-06-07 14:06:35 +07:00
klockky 7c2ad380bb feat(auth): implement phone registration flow with preset avatars 2026-06-03 08:20:21 +00:00
Jganenok 570a4396eb оптимизация: слегоньца набурмалдил 2026-06-03 13:55:14 +07: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
klockky ddcdcf5a36 feat: отправка chatCacheFingerprint и exp в login-пакете (opcode 19) 2026-06-02 17:09:23 +00:00
Jganenok 7fbeb4b27e изменение профиля 2026-05-31 17:43:58 +07:00
Jganenok 0a23b33cfd набурмалдил 2026-05-29 13:52:13 +07:00
Jganenok 685c7a7939 починил 2фа 2026-05-28 22:05:37 +07:00
Jganenok eca33daa91 легонько набурмалдил, остальнось сделать FKM и фронт уведомлений 2026-05-28 16:44:59 +07:00
klockkyandGitHub 65060937b2 Merge pull request #29 from KometTeam/feature/login-success-animation
Feature/login анимация успешного входа, мультиаккаунтинг и десктоп режим
2026-05-27 19:01:41 +03:00
Jganenok 8bddeb0ac1 какие то выкрутасы писькой 2026-05-27 22:22:30 +07:00
Jganenok 5a44e855cb сука уроды конченые блять забилдите мне апк 2026-05-27 20:54:08 +07:00
klockky f781a5f3d0 feat: мультиаккаунтинг — переключение долгим нажатием на «Настройки» 2026-05-26 18:09:29 +03:00
klockky a6aab0a7e3 feat: аватар после входа, кнопка выхода в настройках 2026-05-26 17:13:26 +03:00
Jganenok da22b0fbf3 немножко реал тайма в chat screen 2026-05-17 23:26:50 +07:00
Jganenok 4987ae30ab закрепление и мьют чатов 2026-05-17 19:49:29 +07:00
Jganenok 3aa6cdb52c удаление чатов и фикс загрузки ботов в chatsэ 2026-05-17 18:29:28 +07:00
Jganenok 74bad21635 создание группы 2026-05-17 17:05:28 +07:00
Jganenok 33009ea06a отправка файлов, анимации с реанимации 2026-05-17 16:11:30 +07:00
Jganenok fc7a225b8a ну немножечко так оптимизировал чутка, добавил раздел 'производительность' в насторйки, немного сделал чуточку в кастомизации, пару мелочей переделал 2026-05-16 21:10:21 +07:00
klockky 75ccc2e694 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 b095b44484 гепы(вроде, хз), починил загрузку данных безопасности, менюшку данных и там бля иди нахуй 2026-05-15 19:14:29 +07:00
Jganenok e8793cb727 инфо 2026-05-15 18:58:58 +07:00
Jganenok 4da51faec3 починил галочки, закрепленные чаты 2026-05-15 17:02:22 +07:00
Jganenok eb3fe07ec5 починил вход с 2fa и эвенты и там еще чето бля 2026-05-14 22:59:53 +07:00
klockky e8f22b864d Merge branch 'feature/FullStack' of https://github.com/KometTeam/Komet into feature/FullStack 2026-05-14 17:06:26 +03:00
klockky 8061681043 feat: галочки у официальных пользователей, ботов и каналов 2026-05-14 17:06:11 +03:00
Jganenok e2b4ba33ad эвенты 2026-05-14 20:54:12 +07:00
Jganenok d9b423d89c чет пофиксил + отправка файлов незаконченная 2026-05-14 17:54:05 +07:00
klockky ff3134d4ca Merge branch 'feature/FullStack' of https://github.com/KometTeam/Komet into feature/FullStack 2026-05-14 13:16:50 +03:00
klockky 177c1c3cc4 fix(transport): Zstd-распаковка, гонка PacketReceiver, fix имён и стикеров 2026-05-14 13:12:41 +03:00
Jganenok bc545df1e7 расшифровка гс 2026-05-14 12:34:07 +07:00
Jganenok 98d94ff8a7 изменение профиля 2026-05-13 23:57:38 +07:00
Jganenok 07d39ffa24 больше информации в подробнее 2026-05-13 21:26:46 +07:00
prime d9cbadbbb7 руки переломаю 2026-04-29 19:02:44 +10:00
Jganenok 4ebfb3353f хм 2026-04-21 17:31:36 +07:00
InviseDivine ff8a4c1ade feat: users in chats list, avatars and nicknames, users count in chats 2026-04-15 17:46:40 +02:00