From 710ed42b62550bebc68c11b70baa5fed73156c92 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Thu, 30 Nov 2023 14:59:16 -0500 Subject: [PATCH] inital work for redirect and snackbar on mobile --- assets/l10n/intl_en.arb | 4 +- lib/pages/chat_list/chat_list.dart | 39 ++-- .../controllers/subscription_controller.dart | 41 ++-- .../settings_subscription.dart | 22 ++- .../subscription/subscription_options.dart | 20 +- .../subscription/subscription_snackbar.dart | 34 ++++ needed-translations.txt | 184 +++++++++++++----- 7 files changed, 251 insertions(+), 93 deletions(-) create mode 100644 lib/pangea/widgets/subscription/subscription_snackbar.dart diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index 6d31bf6f9..f97973848 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -3937,5 +3937,7 @@ "searchChatsRooms": "Search for #chats, @users...", "groupName": "Group name", "createGroupAndInviteUsers": "Create a group and invite users", - "groupCanBeFoundViaSearch": "Group can be found via search" + "groupCanBeFoundViaSearch": "Group can be found via search", + "successfullySubscribed": "You have successfully subscribed!", + "clickToManageSubscription": "Click here to manage your subscription." } diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 5cbd6783b..293f39b91 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -2,21 +2,9 @@ import 'dart:async'; import 'dart:io'; -// Flutter imports: -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; - // Package imports: 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'; - // Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/themes.dart'; @@ -28,10 +16,24 @@ import 'package:fluffychat/pangea/utils/add_to_space.dart'; import 'package:fluffychat/pangea/utils/chat_list_handle_space_tap.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; +import 'package:fluffychat/pangea/widgets/subscription/subscription_snackbar.dart'; 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'; +// Flutter imports: +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'; @@ -39,9 +41,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, @@ -449,6 +448,7 @@ class ChatListController extends State //#Pangea StreamSubscription? classStream; StreamSubscription? _invitedSpaceSubscription; + StreamSubscription? _subscriptionStatusStream; //Pangea# @override @@ -506,6 +506,14 @@ class ChatListController extends State } } }); + + _subscriptionStatusStream = pangeaController + .subscriptionController.subscriptionStream.stream + .listen((event) { + if (mounted) { + showSubscribedSnackbar(context); + } + }); //Pangea# super.initState(); @@ -519,6 +527,7 @@ class ChatListController extends State //#Pangea classStream?.cancel(); _invitedSpaceSubscription?.cancel(); + _subscriptionStatusStream?.cancel(); //Pangea# scrollController.removeListener(_onScroll); super.dispose(); diff --git a/lib/pangea/controllers/subscription_controller.dart b/lib/pangea/controllers/subscription_controller.dart index 1ade5895a..7f9fde149 100644 --- a/lib/pangea/controllers/subscription_controller.dart +++ b/lib/pangea/controllers/subscription_controller.dart @@ -2,17 +2,8 @@ import 'dart:async'; import 'dart:convert'; -// Flutter imports: -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - // Package imports: import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:http/http.dart'; -import 'package:purchases_flutter/purchases_flutter.dart'; -import 'package:url_launcher/url_launcher_string.dart'; - // Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/base_controller.dart'; @@ -26,6 +17,13 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/pangea/widgets/subscription/subscription_paywall.dart'; import 'package:fluffychat/utils/platform_infos.dart'; +// Flutter imports: +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:http/http.dart'; +import 'package:purchases_flutter/purchases_flutter.dart'; +import 'package:url_launcher/url_launcher_string.dart'; class SubscriptionController extends BaseController { late PangeaController _pangeaController; @@ -33,6 +31,7 @@ class SubscriptionController extends BaseController { //convert this logic to use completer bool initialized = false; + final StreamController subscriptionStream = StreamController.broadcast(); SubscriptionController(PangeaController pangeaController) : super() { _pangeaController = pangeaController; @@ -68,7 +67,13 @@ class SubscriptionController extends BaseController { if (!kIsWeb) { Purchases.addCustomerInfoUpdateListener( - (CustomerInfo info) => updateCustomerInfo(), + (CustomerInfo info) async { + final bool wasSubscribed = isSubscribed; + await updateCustomerInfo(); + if (!wasSubscribed && isSubscribed) { + subscriptionStream.add(true); + } + }, ); } setState(); @@ -91,8 +96,10 @@ class SubscriptionController extends BaseController { setState(); } - Future showPaywall(BuildContext context, - [bool forceShow = false]) async { + Future showPaywall( + BuildContext context, [ + bool forceShow = false, + ]) async { try { if (!initialized) { await initialize(); @@ -160,8 +167,10 @@ class SubscriptionController extends BaseController { } void submitSubscriptionChange( - SubscriptionDetails? selectedSubscription, BuildContext context, - {bool isPromo = false}) async { + SubscriptionDetails? selectedSubscription, + BuildContext context, { + bool isPromo = false, + }) async { if (selectedSubscription != null) { if (kIsWeb) { if (selectedSubscription.duration == null) { @@ -191,7 +200,9 @@ class SubscriptionController extends BaseController { } try { GoogleAnalytics.beginPurchaseSubscription( - selectedSubscription, context); + selectedSubscription, + context, + ); await Purchases.purchasePackage(selectedSubscription.package!); GoogleAnalytics.updateUserSubscriptionStatus(true); } catch (err) { diff --git a/lib/pangea/pages/settings_subscription/settings_subscription.dart b/lib/pangea/pages/settings_subscription/settings_subscription.dart index ddd67ff87..5c62491ea 100644 --- a/lib/pangea/pages/settings_subscription/settings_subscription.dart +++ b/lib/pangea/pages/settings_subscription/settings_subscription.dart @@ -1,12 +1,6 @@ // Dart imports: import 'dart:async'; -// Flutter imports: -import 'package:flutter/material.dart'; - -// Package imports: -import 'package:url_launcher/url_launcher_string.dart'; - // Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/config/environment.dart'; @@ -14,10 +8,16 @@ import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscription_view.dart'; import 'package:fluffychat/pangea/utils/subscription_app_id.dart'; +import 'package:fluffychat/pangea/widgets/subscription/subscription_snackbar.dart'; import 'package:fluffychat/widgets/matrix.dart'; +// Flutter imports: +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; +// Package imports: +import 'package:url_launcher/url_launcher_string.dart'; class SubscriptionManagement extends StatefulWidget { - const SubscriptionManagement({Key? key}) : super(key: key); + const SubscriptionManagement({super.key}); @override SubscriptionManagementController createState() => @@ -28,6 +28,7 @@ class SubscriptionManagementController extends State { final PangeaController pangeaController = MatrixState.pangeaController; SubscriptionDetails? selectedSubscription; late StreamSubscription _settingsSubscription; + StreamSubscription? _subscriptionStatusStream; @override void initState() { @@ -44,6 +45,7 @@ class SubscriptionManagementController extends State { void dispose() { super.dispose(); _settingsSubscription.cancel(); + _subscriptionStatusStream?.cancel(); } bool get currentSubscriptionAvailable => @@ -120,6 +122,12 @@ class SubscriptionManagementController extends State { @override Widget build(BuildContext context) { + _subscriptionStatusStream ??= pangeaController + .subscriptionController.subscriptionStream.stream + .listen((_) { + showSubscribedSnackbar(context); + context.go('/rooms'); + }); return SettingsSubscriptionView(this); } } diff --git a/lib/pangea/widgets/subscription/subscription_options.dart b/lib/pangea/widgets/subscription/subscription_options.dart index 5c3343930..a4c388059 100644 --- a/lib/pangea/widgets/subscription/subscription_options.dart +++ b/lib/pangea/widgets/subscription/subscription_options.dart @@ -1,13 +1,11 @@ // Flutter imports: -import 'package:flutter/material.dart'; - -// Package imports: -import 'package:flutter_gen/gen_l10n/l10n.dart'; - // Project imports: import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/controllers/subscription_controller.dart'; +import 'package:flutter/material.dart'; +// Package imports: +import 'package:flutter_gen/gen_l10n/l10n.dart'; class SubscriptionOptions extends StatelessWidget { final PangeaController pangeaController; @@ -46,10 +44,10 @@ class SubscriptionCard extends StatelessWidget { final PangeaController pangeaController; const SubscriptionCard({ - Key? key, + super.key, required this.subscription, required this.pangeaController, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -83,10 +81,14 @@ class SubscriptionCard extends StatelessWidget { OutlinedButton( onPressed: () { pangeaController.subscriptionController - .submitSubscriptionChange(subscription, context); + .submitSubscriptionChange( + subscription, + context, + ); + Navigator.of(context).pop(); }, child: Text(L10n.of(context)!.subscribe), - ) + ), ], ), ), diff --git a/lib/pangea/widgets/subscription/subscription_snackbar.dart b/lib/pangea/widgets/subscription/subscription_snackbar.dart new file mode 100644 index 000000000..46283a8be --- /dev/null +++ b/lib/pangea/widgets/subscription/subscription_snackbar.dart @@ -0,0 +1,34 @@ +import 'package:fluffychat/config/app_config.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; + +void showSubscribedSnackbar(BuildContext context) { + final Widget text = RichText( + text: TextSpan( + children: [ + TextSpan( + text: L10n.of(context)!.successfullySubscribed, + style: TextStyle( + color: Theme.of(context).brightness == Brightness.light + ? Colors.white + : Colors.black, + ), + ), + const TextSpan(text: " "), + TextSpan( + text: L10n.of(context)!.clickToManageSubscription, + style: const TextStyle(color: AppConfig.primaryColor), + recognizer: TapGestureRecognizer() + ..onTap = () => context.go('/rooms/settings/subscription'), + ), + ], + ), + ); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: text, + ), + ); +} diff --git a/needed-translations.txt b/needed-translations.txt index 0aa15d865..daf4e7b9c 100644 --- a/needed-translations.txt +++ b/needed-translations.txt @@ -755,7 +755,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "bn": [ @@ -1519,7 +1521,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "bo": [ @@ -2283,7 +2287,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "ca": [ @@ -3042,7 +3048,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "cs": [ @@ -3801,7 +3809,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "de": [ @@ -4560,7 +4570,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "el": [ @@ -5324,7 +5336,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "eo": [ @@ -6083,7 +6097,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "es": [ @@ -6106,7 +6122,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "et": [ @@ -6865,7 +6883,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "eu": [ @@ -7624,7 +7644,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "fa": [ @@ -8383,7 +8405,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "fi": [ @@ -9142,7 +9166,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "fr": [ @@ -9901,7 +9927,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "ga": [ @@ -10660,7 +10688,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "gl": [ @@ -11419,7 +11449,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "he": [ @@ -12178,7 +12210,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "hi": [ @@ -12942,7 +12976,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "hr": [ @@ -13701,7 +13737,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "hu": [ @@ -14460,7 +14498,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "id": [ @@ -15219,7 +15259,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "ie": [ @@ -15980,7 +16022,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "it": [ @@ -16739,7 +16783,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "ja": [ @@ -17498,7 +17544,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "ko": [ @@ -18257,7 +18305,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "lt": [ @@ -19016,7 +19066,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "lv": [ @@ -19780,7 +19832,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "nb": [ @@ -20539,7 +20593,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "nl": [ @@ -21298,7 +21354,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "pl": [ @@ -22057,7 +22115,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "pt": [ @@ -22821,7 +22881,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "pt_BR": [ @@ -23580,7 +23642,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "pt_PT": [ @@ -24339,7 +24403,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "ro": [ @@ -25098,7 +25164,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "ru": [ @@ -25857,7 +25925,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "sk": [ @@ -26617,7 +26687,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "sl": [ @@ -27379,7 +27451,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "sr": [ @@ -28138,7 +28212,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "sv": [ @@ -28897,7 +28973,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "ta": [ @@ -29661,7 +29739,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "th": [ @@ -30425,7 +30505,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "tr": [ @@ -31184,7 +31266,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "uk": [ @@ -31943,7 +32027,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "vi": [ @@ -32705,7 +32791,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "zh": [ @@ -33464,7 +33552,9 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ], "zh_Hant": [ @@ -34223,6 +34313,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "successfullySubscribed", + "clickToManageSubscription" ] }