Hide free sub validity if bf deal is active

This commit is contained in:
Neeraj Gupta 2023-11-15 08:37:45 +05:30
parent fc43d1d22d
commit 41cf688552
3 changed files with 19 additions and 4 deletions

View file

@ -240,7 +240,12 @@ class _StoreSubscriptionPageState extends State<StoreSubscriptionPage> {
}
if (_hasActiveSubscription) {
widgets.add(ValidityWidget(currentSubscription: _currentSubscription));
widgets.add(
ValidityWidget(
currentSubscription: _currentSubscription,
bonusData: _userDetails.bonusData,
),
);
}
if (_currentSubscription!.productID == freeProductID) {

View file

@ -211,7 +211,10 @@ class _StripeSubscriptionPageState extends State<StripeSubscriptionPage> {
widgets.add(_showSubscriptionToggle());
if (_hasActiveSubscription) {
widgets.add(ValidityWidget(currentSubscription: _currentSubscription));
widgets.add(ValidityWidget(
currentSubscription: _currentSubscription,
bonusData: _userDetails.bonusData,
));
}
if (_currentSubscription!.productID == freeProductID) {

View file

@ -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<SubscriptionHeaderWidget> {
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);