From 6dddefcb6dfd006e34448b094a858c67f4fb8598 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:20:10 -0400 Subject: [PATCH] chore: add some debugging statement for staging logout issue (#4234) --- lib/utils/client_manager.dart | 8 ++++++++ lib/widgets/matrix.dart | 25 +++++++++++++++++++------ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart index 5d9c6ccea..896e5e61d 100644 --- a/lib/utils/client_manager.dart +++ b/lib/utils/client_manager.dart @@ -30,20 +30,27 @@ abstract class ClientManager { bool initialize = true, required SharedPreferences store, }) async { + Logs().i('Getting clients from store'); + if (PlatformInfos.isLinux) { Hive.init((await getApplicationSupportDirectory()).path); } else { await Hive.initFlutter(); } + final clientNames = {}; try { final clientNamesList = store.getStringList(clientNamespace) ?? []; + Logs().i('Found client names in store: $clientNamesList'); clientNames.addAll(clientNamesList); } catch (e, s) { Logs().w('Client names in store are corrupted', e, s); await store.remove(clientNamespace); } if (clientNames.isEmpty) { + Logs().i( + 'No client names found, adding default client name ${PlatformInfos.clientName}', + ); clientNames.add(PlatformInfos.clientName); await store.setStringList(clientNamespace, clientNames.toList()); } @@ -86,6 +93,7 @@ abstract class ClientManager { String clientName, SharedPreferences store, ) async { + Logs().i('Adding client name $clientName to store'); final clientNamesList = store.getStringList(clientNamespace) ?? []; clientNamesList.add(clientName); await store.setStringList(clientNamespace, clientNamesList); diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart index 8be849371..080de8b9d 100644 --- a/lib/widgets/matrix.dart +++ b/lib/widgets/matrix.dart @@ -22,6 +22,7 @@ import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/common/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/common/utils/any_state_holder.dart'; import 'package:fluffychat/pangea/common/utils/error_handler.dart'; +import 'package:fluffychat/pangea/course_plans/course_plan_room_extension.dart'; import 'package:fluffychat/pangea/learning_settings/utils/locale_provider.dart'; import 'package:fluffychat/utils/client_manager.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; @@ -195,9 +196,7 @@ class MatrixState extends State with WidgetsBindingObserver { ); _registerSubs(_loginClientCandidate!.clientName); _loginClientCandidate = null; - // #Pangea - // FluffyChatApp.router.go('/rooms'); - // Pangea# + FluffyChatApp.router.go('/rooms'); }); // #Pangea candidate.homeserver = Uri.parse("https://${AppConfig.defaultHomeserver}"); @@ -381,9 +380,23 @@ class MatrixState extends State with WidgetsBindingObserver { } } else { // #Pangea - if (state != LoginState.loggedIn) { - FluffyChatApp.router.go('/home'); - } + final isL2Set = await pangeaController.userController.isUserL2Set; + final inCourse = client.rooms.any( + (r) => + r.isSpace && + r.membership == Membership.join && + r.coursePlan != null, + ); + final langCode = FluffyChatApp.router.state.pathParameters['langcode']; + final registrationRedirect = + langCode != null ? '/registration/$langCode' : '/registration'; + FluffyChatApp.router.go( + state == LoginState.loggedIn + ? isL2Set && inCourse + ? '/rooms' + : registrationRedirect + : '/home', + ); // FluffyChatApp.router // .go(state == LoginState.loggedIn ? '/rooms' : '/home'); // Pangea#