From 68e6c5879e2c352031b2b165838129cb46d5d0aa Mon Sep 17 00:00:00 2001 From: ggurdin Date: Tue, 16 Jan 2024 11:39:15 -0500 Subject: [PATCH] testing for cause of freezing bug --- lib/pages/chat_list/chat_list.dart | 28 +++++++++---------- lib/pangea/controllers/class_controller.dart | 14 +++++----- .../controllers/subscription_controller.dart | 8 ++++++ .../settings_subscription.dart | 26 ++++++++--------- 4 files changed, 40 insertions(+), 36 deletions(-) diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 60f5d7537..ebcf7a577 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -1,19 +1,8 @@ import 'dart:async'; import 'dart:io'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; - import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:collection/collection.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:future_loading_dialog/future_loading_dialog.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; -import 'package:receive_sharing_intent/receive_sharing_intent.dart'; -import 'package:uni_links/uni_links.dart'; - import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list_view.dart'; @@ -29,6 +18,18 @@ import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/client_stories_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; +import 'package:fluffychat/utils/tor_stub.dart' + if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:future_loading_dialog/future_loading_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; +import 'package:receive_sharing_intent/receive_sharing_intent.dart'; +import 'package:uni_links/uni_links.dart'; + import '../../../utils/account_bundles.dart'; import '../../utils/matrix_sdk_extensions/matrix_file_extension.dart'; import '../../utils/url_launcher.dart'; @@ -36,9 +37,6 @@ import '../../utils/voip/callkeep_manager.dart'; import '../../widgets/fluffy_chat_app.dart'; import '../../widgets/matrix.dart'; -import 'package:fluffychat/utils/tor_stub.dart' - if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; - enum SelectMode { normal, share, @@ -505,7 +503,7 @@ class ChatListController extends State } }); - _subscriptionStatusStream = pangeaController + _subscriptionStatusStream ??= pangeaController .subscriptionController.subscriptionStream.stream .listen((event) { if (mounted) { diff --git a/lib/pangea/controllers/class_controller.dart b/lib/pangea/controllers/class_controller.dart index 894498a49..258572018 100644 --- a/lib/pangea/controllers/class_controller.dart +++ b/lib/pangea/controllers/class_controller.dart @@ -1,20 +1,19 @@ import 'dart:async'; import 'dart:developer'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - import 'package:collection/collection.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; - import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/client_extension.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/utils/class_code.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import '../../widgets/matrix.dart'; import '../utils/bot_name.dart'; import '../utils/firebase_analytics.dart'; @@ -67,6 +66,7 @@ class ClassController extends BaseController { try { //question for gabby: why do we need this in two places? if (!_pangeaController.subscriptionController.isSubscribed) { + debugPrint("Unsubscribed user in class_controller. Showing paywall."); _pangeaController.subscriptionController.showPaywall(context); } } catch (err) { diff --git a/lib/pangea/controllers/subscription_controller.dart b/lib/pangea/controllers/subscription_controller.dart index 106333880..96ce9b7b6 100644 --- a/lib/pangea/controllers/subscription_controller.dart +++ b/lib/pangea/controllers/subscription_controller.dart @@ -47,6 +47,7 @@ class SubscriptionController extends BaseController { subscription?.currentSubscription?.isTrial ?? false; Future initialize() async { + debugPrint("Initializing subscription controller"); try { if (_pangeaController.matrixState.client.userID == null) { debugPrint( @@ -59,11 +60,15 @@ class SubscriptionController extends BaseController { ? WebSubscriptionInfo(pangeaController: _pangeaController) : MobileSubscriptionInfo(pangeaController: _pangeaController); + debugPrint("Configuring subscription controller"); await subscription!.configure(); + debugPrint("Configured subscription controller"); + if (activatedNewUserTrial) { setNewUserTrial(); } + debugPrint("Setting initalized true"); initialized = true; if (!kIsWeb) { @@ -131,6 +136,9 @@ class SubscriptionController extends BaseController { BuildContext context, [ bool forceShow = false, ]) async { + debugPrint( + "User is not subscribed. Showing paywall. Initialized: $initialized", + ); try { if (!initialized) { await initialize(); diff --git a/lib/pangea/pages/settings_subscription/settings_subscription.dart b/lib/pangea/pages/settings_subscription/settings_subscription.dart index 7ec409f03..8a395615f 100644 --- a/lib/pangea/pages/settings_subscription/settings_subscription.dart +++ b/lib/pangea/pages/settings_subscription/settings_subscription.dart @@ -1,10 +1,5 @@ import 'dart:async'; -import 'package:flutter/material.dart'; - -import 'package:go_router/go_router.dart'; -import 'package:url_launcher/url_launcher_string.dart'; - import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; @@ -13,6 +8,9 @@ import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscript import 'package:fluffychat/pangea/utils/subscription_app_id.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_snackbar.dart'; import 'package:fluffychat/widgets/matrix.dart'; +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; +import 'package:url_launcher/url_launcher_string.dart'; class SubscriptionManagement extends StatefulWidget { const SubscriptionManagement({super.key}); @@ -35,6 +33,14 @@ class SubscriptionManagementController extends State { debugPrint("stateStream event in subscription settings"); setState(() {}); }); + + _subscriptionStatusStream ??= pangeaController + .subscriptionController.subscriptionStream.stream + .listen((_) { + showSubscribedSnackbar(context); + context.go('/rooms'); + }); + pangeaController.subscriptionController.updateCustomerInfo(); super.initState(); } @@ -123,15 +129,7 @@ class SubscriptionManagementController extends State { } @override - Widget build(BuildContext context) { - _subscriptionStatusStream ??= pangeaController - .subscriptionController.subscriptionStream.stream - .listen((_) { - showSubscribedSnackbar(context); - context.go('/rooms'); - }); - return SettingsSubscriptionView(this); - } + Widget build(BuildContext context) => SettingsSubscriptionView(this); } enum ManagementOption {