From cac6118aec5f22c34eefb884cd409a39183a79cc Mon Sep 17 00:00:00 2001 From: Vadim <44135514+vodemn@users.noreply.github.com> Date: Tue, 23 Jul 2024 20:57:20 +0200 Subject: [PATCH] separated android & ios features --- lib/application.dart | 2 +- lib/data/models/app_feature.dart | 4 ++++ lib/screens/pro_features/screen_pro_features.dart | 12 +++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) 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(),