mirror of
https://github.com/krille-chan/fluffychat
synced 2024-10-10 03:03:38 +00:00
Merge pull request #1381 from krille-chan/krille/remove-duplicated-navigator-workaround
refactor: Remove duplicated navigator workaround
This commit is contained in:
commit
cdece9b7ea
4 changed files with 19 additions and 15 deletions
|
@ -957,7 +957,7 @@ class ChatListController extends State<ChatList>
|
||||||
isTorBrowser = isTor;
|
isTorBrowser = isTor;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> dehydrate() => Matrix.of(context).dehydrateAction();
|
Future<void> dehydrate() => Matrix.of(context).dehydrateAction(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum EditBundleAction { addToBundle, removeFromBundle }
|
enum EditBundleAction { addToBundle, removeFromBundle }
|
||||||
|
|
|
@ -118,7 +118,7 @@ class SettingsSecurityController extends State<SettingsSecurity> {
|
||||||
).show(context);
|
).show(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> dehydrateAction() => Matrix.of(context).dehydrateAction();
|
Future<void> dehydrateAction() => Matrix.of(context).dehydrateAction(context);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => SettingsSecurityView(this);
|
Widget build(BuildContext context) => SettingsSecurityView(this);
|
||||||
|
|
|
@ -54,14 +54,10 @@ class FluffyChatApp extends StatelessWidget {
|
||||||
clients: clients,
|
clients: clients,
|
||||||
// Need a navigator above the Matrix widget for
|
// Need a navigator above the Matrix widget for
|
||||||
// displaying dialogs
|
// displaying dialogs
|
||||||
child: Navigator(
|
child: Matrix(
|
||||||
onGenerateRoute: (_) => MaterialPageRoute(
|
clients: clients,
|
||||||
builder: (_) => Matrix(
|
store: store,
|
||||||
clients: clients,
|
child: testWidget ?? child,
|
||||||
store: store,
|
|
||||||
child: testWidget ?? child,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -287,13 +287,16 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
||||||
if (!hidPopup &&
|
if (!hidPopup &&
|
||||||
{KeyVerificationState.done, KeyVerificationState.error}
|
{KeyVerificationState.done, KeyVerificationState.error}
|
||||||
.contains(request.state)) {
|
.contains(request.state)) {
|
||||||
Navigator.of(context).pop('dialog');
|
FluffyChatApp.router.pop('dialog');
|
||||||
}
|
}
|
||||||
hidPopup = true;
|
hidPopup = true;
|
||||||
};
|
};
|
||||||
request.onUpdate = null;
|
request.onUpdate = null;
|
||||||
hidPopup = true;
|
hidPopup = true;
|
||||||
await KeyVerificationDialog(request: request).show(context);
|
await KeyVerificationDialog(request: request).show(
|
||||||
|
FluffyChatApp.router.routerDelegate.navigatorKey.currentContext ??
|
||||||
|
context,
|
||||||
|
);
|
||||||
});
|
});
|
||||||
onLoginStateChanged[name] ??= c.onLoginStateChanged.stream.listen((state) {
|
onLoginStateChanged[name] ??= c.onLoginStateChanged.stream.listen((state) {
|
||||||
final loggedInWithMultipleClients = widget.clients.length > 1;
|
final loggedInWithMultipleClients = widget.clients.length > 1;
|
||||||
|
@ -304,7 +307,10 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
||||||
_cancelSubs(c.clientName);
|
_cancelSubs(c.clientName);
|
||||||
widget.clients.remove(c);
|
widget.clients.remove(c);
|
||||||
ClientManager.removeClientNameFromStore(c.clientName, store);
|
ClientManager.removeClientNameFromStore(c.clientName, store);
|
||||||
ScaffoldMessenger.of(context).showSnackBar(
|
ScaffoldMessenger.of(
|
||||||
|
FluffyChatApp.router.routerDelegate.navigatorKey.currentContext ??
|
||||||
|
context,
|
||||||
|
).showSnackBar(
|
||||||
SnackBar(
|
SnackBar(
|
||||||
content: Text(L10n.of(context)!.oneClientLoggedOut),
|
content: Text(L10n.of(context)!.oneClientLoggedOut),
|
||||||
),
|
),
|
||||||
|
@ -362,7 +368,9 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
||||||
onFcmError: (errorMsg, {Uri? link}) async {
|
onFcmError: (errorMsg, {Uri? link}) async {
|
||||||
final result = await showOkCancelAlertDialog(
|
final result = await showOkCancelAlertDialog(
|
||||||
barrierDismissible: true,
|
barrierDismissible: true,
|
||||||
context: context,
|
context: FluffyChatApp
|
||||||
|
.router.routerDelegate.navigatorKey.currentContext ??
|
||||||
|
context,
|
||||||
title: L10n.of(context)!.pushNotificationsNotAvailable,
|
title: L10n.of(context)!.pushNotificationsNotAvailable,
|
||||||
message: errorMsg,
|
message: errorMsg,
|
||||||
fullyCapitalizedForMaterial: false,
|
fullyCapitalizedForMaterial: false,
|
||||||
|
@ -483,7 +491,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> dehydrateAction() async {
|
Future<void> dehydrateAction(BuildContext context) async {
|
||||||
final response = await showOkCancelAlertDialog(
|
final response = await showOkCancelAlertDialog(
|
||||||
context: context,
|
context: context,
|
||||||
isDestructiveAction: true,
|
isDestructiveAction: true,
|
||||||
|
|
Loading…
Reference in a new issue