Improved EquipmentProfilesListTile statuses visualization

This commit is contained in:
Vadim 2023-07-21 11:59:08 +02:00
parent 88ec733596
commit 99eebff9a4

View file

@ -1,8 +1,8 @@
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:lightmeter/environment.dart';
import 'package:lightmeter/generated/l10n.dart';
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/screen_equipment_profile.dart';
import 'package:lightmeter/utils/inherited_generics.dart';
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
@ -11,18 +11,25 @@ class EquipmentProfilesListTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
final paidStatus = IAPProducts.productOf(context, IAPProductType.paidFeatures)?.status;
log(paidStatus.toString());
return ListTile(
leading: const Icon(Icons.camera),
title: Text(S.of(context).equipmentProfiles),
onTap: () {
if (context.get<Environment>().buildType == BuildType.dev ||
IAPProducts.isPurchased(context, IAPProductType.paidFeatures)) {
Navigator.of(context).push<EquipmentProfile>(
MaterialPageRoute(builder: (_) => const EquipmentProfilesScreen()),
);
} else {
IAPProductsProvider.of(context).buy(IAPProductType.paidFeatures);
}
onTap: switch (paidStatus) {
IAPProductStatus.purchased => () {
Navigator.of(context).push<EquipmentProfile>(
MaterialPageRoute(builder: (_) => const EquipmentProfilesScreen()),
);
},
IAPProductStatus.purchasable => () {
IAPProductsProvider.of(context).buy(IAPProductType.paidFeatures);
},
_ => null,
},
trailing: switch (paidStatus) {
IAPProductStatus.purchasable => const Icon(Icons.lock),
_ => null,
},
);
}