diff --git a/lib/pages/dialer/dialer.dart b/lib/pages/dialer/dialer.dart index 2891fc54..22e76fd8 100644 --- a/lib/pages/dialer/dialer.dart +++ b/lib/pages/dialer/dialer.dart @@ -139,7 +139,7 @@ class MyCallingPage extends State { Room? get room => call.room; String get displayName => call.room.getLocalizedDisplayname( - MatrixLocals(L10n.of(context)!), + MatrixLocals(L10n.of(widget.context)!), ); String get callId => widget.callId; @@ -248,18 +248,18 @@ class MyCallingPage extends State { void _resizeLocalVideo(Orientation orientation) { final shortSide = min( - MediaQuery.of(context).size.width, - MediaQuery.of(context).size.height, + MediaQuery.of(widget.context).size.width, + MediaQuery.of(widget.context).size.height, ); _localVideoMargin = remoteStream != null ? const EdgeInsets.only(top: 20.0, right: 20.0) : EdgeInsets.zero; _localVideoWidth = remoteStream != null ? shortSide / 3 - : MediaQuery.of(context).size.width; + : MediaQuery.of(widget.context).size.width; _localVideoHeight = remoteStream != null ? shortSide / 4 - : MediaQuery.of(context).size.height; + : MediaQuery.of(widget.context).size.height; } void _handleCallState(CallState state) { @@ -309,14 +309,15 @@ class MyCallingPage extends State { androidNotificationOptions: AndroidNotificationOptions( channelId: 'notification_channel_id', channelName: 'Foreground Notification', - channelDescription: L10n.of(context)!.foregroundServiceRunning, + channelDescription: + L10n.of(widget.context)!.foregroundServiceRunning, ), iosNotificationOptions: const IOSNotificationOptions(), foregroundTaskOptions: const ForegroundTaskOptions(), ); FlutterForegroundTask.startService( - notificationTitle: L10n.of(context)!.screenSharingTitle, - notificationText: L10n.of(context)!.screenSharingDetail, + notificationTitle: L10n.of(widget.context)!.screenSharingTitle, + notificationText: L10n.of(widget.context)!.screenSharingDetail, ); } else { FlutterForegroundTask.stopService(); @@ -379,7 +380,7 @@ class MyCallingPage extends State { child: Icon(_speakerOn ? Icons.volume_up : Icons.volume_off), onPressed: _switchSpeaker, foregroundColor: Colors.black54, - backgroundColor: Theme.of(context).backgroundColor, + backgroundColor: Theme.of(widget.context).backgroundColor, ); */ final hangupButton = FloatingActionButton( @@ -481,7 +482,7 @@ class MyCallingPage extends State { var title = ''; if (call.localHold) { title = '${call.room.getLocalizedDisplayname( - MatrixLocals(L10n.of(context)!), + MatrixLocals(L10n.of(widget.context)!), )} held the call.'; } else if (call.remoteOnHold) { title = 'You held the call.'; diff --git a/lib/utils/voip_plugin.dart b/lib/utils/voip_plugin.dart index 5d77c887..f21e50dc 100644 --- a/lib/utils/voip_plugin.dart +++ b/lib/utils/voip_plugin.dart @@ -61,7 +61,8 @@ class VoipPlugin with WidgetsBindingObserver implements WebRTCDelegate { void addCallingOverlay(String callId, CallSession call) { final context = kIsWeb ? ChatList.contextForVoip! - : FluffyChatApp.routerKey.currentContext!; // web is weird + : FluffyChatApp.matrixKey.currentContext!; // web is weird + if (overlayEntry != null) { Logs().e('[VOIP] addCallingOverlay: The call session already exists?'); overlayEntry!.remove(); @@ -165,7 +166,7 @@ class VoipPlugin with WidgetsBindingObserver implements WebRTCDelegate { addCallingOverlay(call.callId, call); try { if (!hasCallingAccount) { - ScaffoldMessenger.of(FluffyChatApp.routerKey.currentContext!) + ScaffoldMessenger.of(FluffyChatApp.matrixKey.currentContext!) .showSnackBar( const SnackBar( content: Text( diff --git a/lib/widgets/fluffy_chat_app.dart b/lib/widgets/fluffy_chat_app.dart index 5c9025fc..5967bc72 100644 --- a/lib/widgets/fluffy_chat_app.dart +++ b/lib/widgets/fluffy_chat_app.dart @@ -17,6 +17,7 @@ class FluffyChatApp extends StatefulWidget { final List clients; final Map? queryParameters; static GlobalKey routerKey = GlobalKey(); + static GlobalKey matrixKey = GlobalKey(); const FluffyChatApp({ Key? key, this.testWidget, @@ -75,6 +76,7 @@ class FluffyChatAppState extends State { initialUrl: _initialUrl ?? '/', routes: AppRoutes(columnMode ?? false).routes, builder: (context, child) => Matrix( + key: FluffyChatApp.matrixKey, context: context, router: FluffyChatApp.routerKey, clients: widget.clients,