From 41cf68855292425b2af70cebe115e20831a64dec Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Wed, 15 Nov 2023 08:37:45 +0530 Subject: [PATCH] Hide free sub validity if bf deal is active --- lib/ui/payment/store_subscription_page.dart | 7 ++++++- lib/ui/payment/stripe_subscription_page.dart | 5 ++++- lib/ui/payment/subscription_common_widgets.dart | 11 +++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/ui/payment/store_subscription_page.dart b/lib/ui/payment/store_subscription_page.dart index b4f3e064d..d9a95f684 100644 --- a/lib/ui/payment/store_subscription_page.dart +++ b/lib/ui/payment/store_subscription_page.dart @@ -240,7 +240,12 @@ class _StoreSubscriptionPageState extends State { } if (_hasActiveSubscription) { - widgets.add(ValidityWidget(currentSubscription: _currentSubscription)); + widgets.add( + ValidityWidget( + currentSubscription: _currentSubscription, + bonusData: _userDetails.bonusData, + ), + ); } if (_currentSubscription!.productID == freeProductID) { diff --git a/lib/ui/payment/stripe_subscription_page.dart b/lib/ui/payment/stripe_subscription_page.dart index 367356ead..506e597da 100644 --- a/lib/ui/payment/stripe_subscription_page.dart +++ b/lib/ui/payment/stripe_subscription_page.dart @@ -211,7 +211,10 @@ class _StripeSubscriptionPageState extends State { widgets.add(_showSubscriptionToggle()); if (_hasActiveSubscription) { - widgets.add(ValidityWidget(currentSubscription: _currentSubscription)); + widgets.add(ValidityWidget( + currentSubscription: _currentSubscription, + bonusData: _userDetails.bonusData, + )); } if (_currentSubscription!.productID == freeProductID) { diff --git a/lib/ui/payment/subscription_common_widgets.dart b/lib/ui/payment/subscription_common_widgets.dart index ab37276d5..f2b8fe23f 100644 --- a/lib/ui/payment/subscription_common_widgets.dart +++ b/lib/ui/payment/subscription_common_widgets.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import "package:intl/intl.dart"; import 'package:photos/ente_theme_data.dart'; import "package:photos/generated/l10n.dart"; +import "package:photos/models/api/storage_bonus/bonus.dart"; import 'package:photos/models/subscription.dart'; import "package:photos/services/update_service.dart"; import "package:photos/theme/ente_theme.dart"; @@ -87,21 +88,27 @@ class _SubscriptionHeaderWidgetState extends State { class ValidityWidget extends StatelessWidget { final Subscription? currentSubscription; + final BonusData? bonusData; - const ValidityWidget({Key? key, this.currentSubscription}) : super(key: key); + const ValidityWidget({Key? key, this.currentSubscription, this.bonusData}) + : super(key: key); @override Widget build(BuildContext context) { if (currentSubscription == null) { return const SizedBox.shrink(); } + final bool isFreeTrialSub = currentSubscription!.productID == freeProductID; + if (isFreeTrialSub && (bonusData?.getAddOnBonuses().isNotEmpty ?? false)) { + return const SizedBox.shrink(); + } final endDate = DateFormat.yMMMd(Localizations.localeOf(context).languageCode).format( DateTime.fromMicrosecondsSinceEpoch(currentSubscription!.expiryTime), ); var message = S.of(context).renewsOn(endDate); - if (currentSubscription!.productID == freeProductID) { + if (isFreeTrialSub) { message = UpdateService.instance.isPlayStoreFlavor() ? S.of(context).playStoreFreeTrialValidTill(endDate) : S.of(context).freeTrialValidTill(endDate);