From 655e3ff5129db2e9983beee2faf5d43a7faccc81 Mon Sep 17 00:00:00 2001 From: Vadim <44135514+vodemn@users.noreply.github.com> Date: Sat, 9 Aug 2025 19:32:21 +0200 Subject: [PATCH] made Pro badge smaller --- integration_test/purchases_test.dart | 4 +- lib/runner.dart | 2 +- .../widget_container_camera.dart | 3 +- .../lightmeter_pro/widget_lightmeter_pro.dart | 27 ----------- .../widget_badge_lightmeter_pro.dart | 45 +++++++++++++++++++ .../widget_container_readings.dart | 4 +- 6 files changed, 52 insertions(+), 33 deletions(-) delete mode 100644 lib/screens/metering/components/shared/readings_container/components/lightmeter_pro/widget_lightmeter_pro.dart create mode 100644 lib/screens/metering/components/shared/readings_container/components/lightmeter_pro_badge/widget_badge_lightmeter_pro.dart diff --git a/integration_test/purchases_test.dart b/integration_test/purchases_test.dart index e54c0d5..99f27ac 100644 --- a/integration_test/purchases_test.dart +++ b/integration_test/purchases_test.dart @@ -10,7 +10,7 @@ import 'package:lightmeter/screens/metering/components/shared/readings_container import 'package:lightmeter/screens/metering/components/shared/readings_container/components/extreme_exposure_pairs_container/widget_container_extreme_exposure_pairs.dart'; import 'package:lightmeter/screens/metering/components/shared/readings_container/components/film_picker/widget_picker_film.dart'; import 'package:lightmeter/screens/metering/components/shared/readings_container/components/iso_picker/widget_picker_iso.dart'; -import 'package:lightmeter/screens/metering/components/shared/readings_container/components/lightmeter_pro/widget_lightmeter_pro.dart'; +import 'package:lightmeter/screens/metering/components/shared/readings_container/components/lightmeter_pro_badge/widget_badge_lightmeter_pro.dart'; import 'package:lightmeter/screens/metering/components/shared/readings_container/components/nd_picker/widget_picker_nd.dart'; import 'package:lightmeter/screens/settings/components/shared/disable/widget_disable.dart'; import 'package:lightmeter/screens/settings/screen_settings.dart'; @@ -77,7 +77,7 @@ void testPurchases(String description) { } void _expectProMeteringScreen({required bool enabled}) { - expect(find.byType(LightmeterProAnimatedDialog), !enabled ? findsOneWidget : findsNothing); + expect(find.byType(LightmeterProBadge), !enabled ? findsOneWidget : findsNothing); expect(find.byType(EquipmentProfilePicker), enabled ? findsOneWidget : findsNothing); expect(find.byType(ExtremeExposurePairsContainer), findsOneWidget); expect(find.byType(FilmPicker), enabled ? findsOneWidget : findsNothing); diff --git a/lib/runner.dart b/lib/runner.dart index 16f7255..0cde502 100644 --- a/lib/runner.dart +++ b/lib/runner.dart @@ -26,7 +26,7 @@ Future runLightmeterApp(Environment env) async { runApp( env.buildType == BuildType.dev ? IAPProducts( - isPro: true, + isPro: false, child: application, ) : IAPProductsProvider(child: application), diff --git a/lib/screens/metering/components/camera_container/widget_container_camera.dart b/lib/screens/metering/components/camera_container/widget_container_camera.dart index 0ce3190..8dd55ef 100644 --- a/lib/screens/metering/components/camera_container/widget_container_camera.dart +++ b/lib/screens/metering/components/camera_container/widget_container_camera.dart @@ -17,6 +17,7 @@ import 'package:lightmeter/screens/metering/components/camera_container/models/c import 'package:lightmeter/screens/metering/components/camera_container/state_container_camera.dart'; import 'package:lightmeter/screens/metering/components/shared/exposure_pairs_list/widget_list_exposure_pairs.dart'; import 'package:lightmeter/screens/metering/components/shared/metering_top_bar/widget_top_bar_metering.dart'; +import 'package:lightmeter/screens/metering/components/shared/readings_container/components/lightmeter_pro_badge/widget_badge_lightmeter_pro.dart'; import 'package:lightmeter/screens/metering/components/shared/readings_container/widget_container_readings.dart'; import 'package:lightmeter/utils/context_utils.dart'; import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart'; @@ -113,7 +114,7 @@ class CameraContainer extends StatelessWidget { double _meteringContainerHeight(BuildContext context) { double enabledFeaturesHeight = 0; if (!context.isPro && RemoteConfig.isEnabled(context, Feature.showUnlockProOnMainScreen)) { - enabledFeaturesHeight += Dimens.readingContainerSingleValueHeight; + enabledFeaturesHeight += LightmeterProBadge.height(context); enabledFeaturesHeight += Dimens.paddingS; } if (context.meteringFeature(MeteringScreenLayoutFeature.equipmentProfiles)) { diff --git a/lib/screens/metering/components/shared/readings_container/components/lightmeter_pro/widget_lightmeter_pro.dart b/lib/screens/metering/components/shared/readings_container/components/lightmeter_pro/widget_lightmeter_pro.dart deleted file mode 100644 index f1b77ff..0000000 --- a/lib/screens/metering/components/shared/readings_container/components/lightmeter_pro/widget_lightmeter_pro.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:lightmeter/generated/l10n.dart'; -import 'package:lightmeter/navigation/routes.dart'; -import 'package:lightmeter/screens/metering/components/shared/readings_container/components/shared/reading_value_container/widget_container_reading_value.dart'; - -class LightmeterProAnimatedDialog extends StatelessWidget { - const LightmeterProAnimatedDialog({super.key}); - - @override - Widget build(BuildContext context) { - return GestureDetector( - onTap: () { - Navigator.of(context).pushNamed(NavigationRoutes.proFeaturesScreen.name); - }, - child: ReadingValueContainer( - color: Theme.of(context).colorScheme.secondary, - textColor: Theme.of(context).colorScheme.onSecondary, - values: [ - ReadingValue( - label: S.of(context).proFeaturesTitle, - value: S.of(context).getPro, - ), - ], - ), - ); - } -} diff --git a/lib/screens/metering/components/shared/readings_container/components/lightmeter_pro_badge/widget_badge_lightmeter_pro.dart b/lib/screens/metering/components/shared/readings_container/components/lightmeter_pro_badge/widget_badge_lightmeter_pro.dart new file mode 100644 index 0000000..f26dde3 --- /dev/null +++ b/lib/screens/metering/components/shared/readings_container/components/lightmeter_pro_badge/widget_badge_lightmeter_pro.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import 'package:lightmeter/generated/l10n.dart'; +import 'package:lightmeter/navigation/routes.dart'; +import 'package:lightmeter/res/dimens.dart'; +import 'package:lightmeter/utils/text_height.dart'; + +class LightmeterProBadge extends StatelessWidget { + const LightmeterProBadge({super.key}); + + static double height(BuildContext context) { + if (Theme.of(context).textTheme.titleMedium?.lineHeight case final lineHeight?) { + return Dimens.paddingS * 2 + lineHeight; + } else { + return 40; + } + } + + @override + Widget build(BuildContext context) { + print(Dimens.paddingS * 2 + (Theme.of(context).textTheme.titleMedium?.lineHeight ?? 0.0)); + return GestureDetector( + onTap: () { + Navigator.of(context).pushNamed(NavigationRoutes.proFeaturesScreen.name); + }, + child: Container( + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(Dimens.borderRadiusM), + color: Theme.of(context).colorScheme.secondaryContainer, + ), + padding: const EdgeInsets.symmetric( + horizontal: Dimens.paddingM, + vertical: Dimens.paddingS, + ), + child: Text( + S.of(context).getPro, + style: Theme.of(context) + .textTheme + .titleMedium + ?.copyWith(color: Theme.of(context).colorScheme.onSecondaryContainer), + ), + ), + ); + } +} diff --git a/lib/screens/metering/components/shared/readings_container/widget_container_readings.dart b/lib/screens/metering/components/shared/readings_container/widget_container_readings.dart index f44857e..fe8c8b0 100644 --- a/lib/screens/metering/components/shared/readings_container/widget_container_readings.dart +++ b/lib/screens/metering/components/shared/readings_container/widget_container_readings.dart @@ -9,7 +9,7 @@ import 'package:lightmeter/screens/metering/components/shared/readings_container import 'package:lightmeter/screens/metering/components/shared/readings_container/components/extreme_exposure_pairs_container/widget_container_extreme_exposure_pairs.dart'; import 'package:lightmeter/screens/metering/components/shared/readings_container/components/film_picker/widget_picker_film.dart'; import 'package:lightmeter/screens/metering/components/shared/readings_container/components/iso_picker/widget_picker_iso.dart'; -import 'package:lightmeter/screens/metering/components/shared/readings_container/components/lightmeter_pro/widget_lightmeter_pro.dart'; +import 'package:lightmeter/screens/metering/components/shared/readings_container/components/lightmeter_pro_badge/widget_badge_lightmeter_pro.dart'; import 'package:lightmeter/screens/metering/components/shared/readings_container/components/nd_picker/widget_picker_nd.dart'; import 'package:lightmeter/utils/context_utils.dart'; import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart'; @@ -38,7 +38,7 @@ class ReadingsContainer extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.stretch, children: [ if (!context.isPro && RemoteConfig.isEnabled(context, Feature.showUnlockProOnMainScreen)) ...[ - const LightmeterProAnimatedDialog(), + const LightmeterProBadge(), const _InnerPadding(), ], if (context.meteringFeature(MeteringScreenLayoutFeature.equipmentProfiles)) ...[