diff --git a/lib/controllers/client.dart b/lib/controllers/client.dart index 07a3025..0ba29d5 100644 --- a/lib/controllers/client.dart +++ b/lib/controllers/client.dart @@ -122,16 +122,18 @@ class ClientController extends AsyncNotifier { } } - Future<(Event, RoomMetadata)> handlePush(Map data) async { + Future<(Event, RoomMetadata)?> handlePush(Map data) async { final response = await callGomuksMethod( data, (handle, data) async => GomuksHandlePush(handle, data), ); - return ( - Event.fromJson(response["event"]), - RoomMetadata.fromJson(response["room"]), - ); + return response == null + ? null + : ( + Event.fromJson(response["event"]), + RoomMetadata.fromJson(response["room"]), + ); } Future _sendCommand( diff --git a/lib/controllers/settings_sections.dart b/lib/controllers/settings_sections.dart index 1dd6db9..cedd81a 100644 --- a/lib/controllers/settings_sections.dart +++ b/lib/controllers/settings_sections.dart @@ -9,6 +9,7 @@ import "package:m3e_buttons/m3e_buttons.dart"; import "package:nexus/controllers/account_data.dart"; import "package:nexus/controllers/client.dart"; import "package:nexus/controllers/client_state.dart"; +import "package:nexus/controllers/init_complete.dart"; import "package:nexus/controllers/notification.dart"; import "package:nexus/controllers/settings.dart"; import "package:nexus/controllers/unified_push.dart"; @@ -277,6 +278,7 @@ class SettingsSectionsController .read(UnifiedPushController.provider.notifier) .deregister() .onError(showError); + container.invalidate(InitCompleteController.provider); await container .read(ClientController.provider.notifier) .logout()