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 (жижа я тебя выебу)
This commit is contained in:
klockky
2026-06-23 14:18:51 +03:00
parent 7f434dfd81
commit 4277b0a20d
16 changed files with 646 additions and 112 deletions
+3
View File
@@ -44,6 +44,7 @@ import 'backend/modules/self_check.dart';
import 'backend/modules/webapp.dart';
import 'backend/modules/digital_id.dart';
import 'core/calls/call_controller.dart';
import 'core/links/deep_link_service.dart';
import 'frontend/screens/calls/call_screen.dart';
import 'core/push/push_service.dart';
import 'core/storage/app_database.dart';
@@ -95,6 +96,7 @@ void main() async {
}
attachInfoCacheApi(api);
ChatsModule.attachGlobalPushHandlers(api);
unawaited(DeepLinkService.instance.init());
final packageInfoFuture = PackageInfo.fromPlatform();
final localeFuture = _loadInitialLocale();
@@ -265,6 +267,7 @@ class KometAppState extends State<KometApp>
_loginStatusSub = accountModule.loginStatusStream.listen((status) async {
if (status == LoginStatus.success) {
DeepLinkService.instance.markReady();
CallController.instance.init(api);
OutboxService.instance.init(api, messagesModule);
SelfCheckService.instance.init(api);