From 9c6b12d8103289f48a0b2647ded81ee3070678f1 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Mon, 11 Dec 2023 14:07:36 -0500 Subject: [PATCH] move local keys to local keys file, use local storage to show web subscription success snackbar --- lib/pages/chat_list/chat_list.dart | 10 ++++++++++ lib/pangea/constants/local.key.dart | 4 ++++ lib/pangea/controllers/subscription_controller.dart | 12 ++++++++---- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 662de6b01..05d5e276e 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -8,6 +8,7 @@ import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list_view.dart'; import 'package:fluffychat/pages/settings_security/settings_security.dart'; +import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/pangea/utils/add_to_space.dart'; @@ -757,6 +758,15 @@ class ChatListController extends State await pangeaController.subscriptionController.initialize(); pangeaController.afterSyncAndFirstLoginInitialization(context); await pangeaController.inviteBotToExistingSpaces(); + final bool? beganWebPayment = pangeaController.pStoreService.read( + PLocalKey.beganWebPayment, + ); + if (beganWebPayment ?? false) { + pangeaController.pStoreService.delete(PLocalKey.beganWebPayment); + if (pangeaController.subscriptionController.isSubscribed) { + showSubscribedSnackbar(context); + } + } } else { ErrorHandler.logError( m: "didn't run afterSyncAndFirstLoginInitialization because not mounted", diff --git a/lib/pangea/constants/local.key.dart b/lib/pangea/constants/local.key.dart index 238a3ecc9..b5f118aab 100644 --- a/lib/pangea/constants/local.key.dart +++ b/lib/pangea/constants/local.key.dart @@ -4,4 +4,8 @@ class PLocalKey { static const String classes = 'classes'; static const String cachedClassCodeToJoin = "cachedclasscodetojoin"; + static const String beganWebPayment = "beganWebPayment"; + + // making this a random string so that it's harder to guess + static const String activatedTrialKey = '7C4EuKIsph'; } diff --git a/lib/pangea/controllers/subscription_controller.dart b/lib/pangea/controllers/subscription_controller.dart index 20bd73328..85bc6e30e 100644 --- a/lib/pangea/controllers/subscription_controller.dart +++ b/lib/pangea/controllers/subscription_controller.dart @@ -3,6 +3,7 @@ import 'dart:convert'; import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/constants/local.key.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/models/base_subscription_info.dart'; @@ -82,14 +83,13 @@ class SubscriptionController extends BaseController { } } - final String activatedTrialKey = 'activatedTrial'; - bool get activatedNewUserTrial => _pangeaController.userController.inTrialWindow && - (_pangeaController.pStoreService.read(activatedTrialKey) ?? false); + (_pangeaController.pStoreService.read(PLocalKey.activatedTrialKey) ?? + false); void activateNewUserTrial() { - _pangeaController.pStoreService.save(activatedTrialKey, true); + _pangeaController.pStoreService.save(PLocalKey.activatedTrialKey, true); setNewUserTrial(); } @@ -204,6 +204,10 @@ class SubscriptionController extends BaseController { selectedSubscription.duration!, isPromo: isPromo, ); + _pangeaController.pStoreService.save( + PLocalKey.beganWebPayment, + true, + ); setState(); launchUrlString( paymentLink,