From 0ff06e577b6ede26f8f893cdcc8cd4b8a1fc2610 Mon Sep 17 00:00:00 2001 From: heaven Date: Fri, 5 Jun 2026 01:07:08 +0300 Subject: [PATCH] feat(calls): redesign the DM voice-call rail with a loudspeaker toggle, live duration and explicit accept/decline, dropping the deafen control --- android/app/src/main/AndroidManifest.xml | 19 +- .../java/chat/vojo/app/AudioRoutePlugin.java | 170 +++++++++++ .../main/java/chat/vojo/app/MainActivity.java | 1 + public/locales/en.json | 14 +- public/locales/ru.json | 14 +- src/app/components/CallEmbedProvider.tsx | 2 - .../features/call-status/CallActionButton.tsx | 68 +++++ src/app/features/call-status/CallControl.tsx | 194 ++++-------- src/app/features/call-status/CallStatus.tsx | 165 ++++++---- .../call-status/IncomingCallStrip.tsx | 148 +++++---- src/app/features/call-status/callIcons.tsx | 31 +- src/app/features/call-status/styles.css.ts | 287 +++++++++++++++--- src/app/features/call/CallControls.tsx | 71 +++-- src/app/features/call/Controls.tsx | 37 --- src/app/features/call/PrescreenControls.tsx | 10 +- src/app/hooks/useAndroidCallForegroundSync.ts | 13 +- src/app/hooks/useCallDuration.ts | 49 +++ src/app/hooks/useCallEmbed.ts | 11 +- src/app/hooks/useCallSpeaker.ts | 28 ++ src/app/hooks/useDmCallStart.ts | 16 - src/app/pages/CallStatusRenderer.tsx | 6 +- src/app/plugins/call/CallControl.ts | 52 +--- src/app/plugins/call/CallControlState.ts | 11 +- src/app/plugins/call/callAudioRoute.ts | 61 ++++ src/app/state/callEmbed.ts | 6 + src/app/state/callPreferences.ts | 2 - src/app/state/hooks/callPreferences.ts | 22 +- 27 files changed, 980 insertions(+), 528 deletions(-) create mode 100644 android/app/src/main/java/chat/vojo/app/AudioRoutePlugin.java create mode 100644 src/app/features/call-status/CallActionButton.tsx create mode 100644 src/app/hooks/useCallDuration.ts create mode 100644 src/app/hooks/useCallSpeaker.ts delete mode 100644 src/app/hooks/useDmCallStart.ts create mode 100644 src/app/plugins/call/callAudioRoute.ts diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 3deb0cf9..4ff1c8a7 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -127,15 +127,22 @@ - + - + FSI/FGS/UIJ. We DO call setFullScreenIntent(launchPI, true) in + VojoFirebaseMessagingService.postIncomingCallNotification (the + incoming-ring path) — that both satisfies the CallStyle gate and + drives the over-lockscreen wakeup. On API 34+ the system also + requires the user-granted special app-op, surfaced to the user via + FullScreenIntentPlugin / FullScreenIntentPrompt. -->