diff --git a/lib/application.dart b/lib/application.dart index 2adfbd8..623ea4b 100644 --- a/lib/application.dart +++ b/lib/application.dart @@ -45,7 +45,7 @@ class Application extends StatelessWidget { routes: { "metering": (_) => const ReleaseNotesFlow(child: MeteringFlow()), "settings": (_) => const SettingsFlow(), - "proFeatures": (_) => const ProFeaturesScreen(), + "proFeatures": (_) => ProFeaturesScreen(), "timer": (context) => TimerFlow(args: ModalRoute.of(context)!.settings.arguments! as TimerFlowArgs), }, ), diff --git a/lib/data/models/app_feature.dart b/lib/data/models/app_feature.dart index 7cf74ff..f9be63a 100644 --- a/lib/data/models/app_feature.dart +++ b/lib/data/models/app_feature.dart @@ -13,6 +13,10 @@ enum AppFeature { timer, mainScreenCustomization; + static List get androidFeatures => values; + + static List get iosFeatures => values.where((f) => f != AppFeature.incidedntLightMetering).toList(); + String name(BuildContext context) { switch (this) { case AppFeature.reflectedLightMetering: diff --git a/lib/screens/pro_features/screen_pro_features.dart b/lib/screens/pro_features/screen_pro_features.dart index ac34fb9..718893b 100644 --- a/lib/screens/pro_features/screen_pro_features.dart +++ b/lib/screens/pro_features/screen_pro_features.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:lightmeter/data/models/app_feature.dart'; import 'package:lightmeter/generated/l10n.dart'; @@ -9,7 +11,9 @@ import 'package:lightmeter/utils/text_height.dart'; import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart'; class ProFeaturesScreen extends StatelessWidget { - const ProFeaturesScreen({super.key}); + final features = Platform.isAndroid ? AppFeature.androidFeatures : AppFeature.iosFeatures; + + ProFeaturesScreen({super.key}); @override Widget build(BuildContext context) { @@ -47,10 +51,8 @@ class ProFeaturesScreen extends StatelessWidget { ), const SliverToBoxAdapter(child: _FeaturesHeader()), SliverList.separated( - itemCount: AppFeature.values.length, - itemBuilder: (context, index) { - return _FeatureItem(feature: AppFeature.values[index]); - }, + itemCount: features.length, + itemBuilder: (_, index) => _FeatureItem(feature: features[index]), separatorBuilder: (_, __) => const Padding( padding: EdgeInsets.symmetric(horizontal: Dimens.paddingM), child: Divider(),