Add Brightness Util to check for platform before increasing brightness (#1096)

Omar Hatem committed Sep 22, 2023 at 17:53 UTC 95ea8257282afa6e26ab4f9e0e726ea158e3bbcc
4 files changed +42 -50
lib/src/screens/receive/anonpay_receive_page.dart
+9 -16
@@ -10,7 +10,7 @@ import 'package:cake_wallet/src/screens/receive/widgets/anonpay_status_section.d
10 import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
11 import 'package:cake_wallet/src/screens/receive/widgets/copy_link_item.dart';
12 import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
13 -import 'package:device_display_brightness/device_display_brightness.dart';
13 +import 'package:cake_wallet/utils/brightness_util.dart';
14 import 'package:flutter/material.dart';
15 import 'package:qr_flutter/qr_flutter.dart' as qr;
16 import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
@@ -82,8 +82,7 @@ class AnonPayReceivePage extends BasePage {
82
83 @override
84 Widget Function(BuildContext, Widget) get rootWrapper =>
85 - (BuildContext context, Widget scaffold) =>
86 - GradientBackground(scaffold: scaffold);
85 + (BuildContext context, Widget scaffold) => GradientBackground(scaffold: scaffold);
86
87 @override
88 Widget body(BuildContext context) {
@@ -101,19 +100,13 @@ class AnonPayReceivePage extends BasePage {
100 ),
101 child: GestureDetector(
102 onTap: () async {
104 - final double brightness = await DeviceDisplayBrightness.getBrightness();
105 -
106 - // ignore: unawaited_futures
107 - DeviceDisplayBrightness.setBrightness(1.0);
108 - await Navigator.pushNamed(
109 - context,
110 - Routes.fullscreenQR,
111 - arguments: QrViewData(data: invoiceInfo.clearnetUrl,
112 - version: qr.QrVersions.auto,
113 - )
114 - );
115 - // ignore: unawaited_futures
116 - DeviceDisplayBrightness.setBrightness(brightness);
103 + BrightnessUtil.changeBrightnessForFunction(() async {
104 + await Navigator.pushNamed(context, Routes.fullscreenQR,
105 + arguments: QrViewData(
106 + data: invoiceInfo.clearnetUrl,
107 + version: qr.QrVersions.auto,
108 + ));
109 + });
110 },
111 child: Hero(
112 tag: Key(invoiceInfo.clearnetUrl),
lib/src/screens/receive/widgets/qr_widget.dart
+2 -22
@@ -3,10 +3,9 @@ import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
3 import 'package:cake_wallet/routes.dart';
4 import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
5 import 'package:cake_wallet/src/screens/receive/widgets/currency_input_field.dart';
6 -import 'package:cake_wallet/utils/device_info.dart';
6 +import 'package:cake_wallet/utils/brightness_util.dart';
7 import 'package:cake_wallet/utils/show_bar.dart';
8 import 'package:cake_wallet/utils/show_pop_up.dart';
9 -import 'package:device_display_brightness/device_display_brightness.dart';
9 import 'package:flutter/material.dart';
10 import 'package:flutter/services.dart';
11 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -64,7 +63,7 @@ class QRWidget extends StatelessWidget {
63 flex: 5,
64 child: GestureDetector(
65 onTap: () {
67 - changeBrightnessForRoute(
66 + BrightnessUtil.changeBrightnessForFunction(
67 () async {
68 await Navigator.pushNamed(context, Routes.fullscreenQR,
69 arguments: QrViewData(
@@ -178,23 +177,4 @@ class QRWidget extends StatelessWidget {
177 // update amount if currency changed
178 addressListViewModel.changeAmount(amountController.text);
179 }
181 -
182 - Future<void> changeBrightnessForRoute(Future<void> Function() navigation) async {
183 - // if not mobile, just navigate
184 - if (!DeviceInfo.instance.isMobile) {
185 - navigation();
186 - return;
187 - }
188 -
189 - // Get the current brightness:
190 - final brightness = await DeviceDisplayBrightness.getBrightness();
191 -
192 - // ignore: unawaited_futures
193 - DeviceDisplayBrightness.setBrightness(1.0);
194 -
195 - await navigation();
196 -
197 - // ignore: unawaited_futures
198 - DeviceDisplayBrightness.setBrightness(brightness);
199 - }
180 }
lib/src/screens/wallet_keys/wallet_keys_page.dart
+8 -12
@@ -5,10 +5,10 @@ import 'package:cake_wallet/src/widgets/list_row.dart';
5 import 'package:cake_wallet/src/widgets/section_divider.dart';
6 import 'package:cake_wallet/generated/i18n.dart';
7 import 'package:cake_wallet/routes.dart';
8 +import 'package:cake_wallet/utils/brightness_util.dart';
9 import 'package:cake_wallet/utils/clipboard_util.dart';
10 import 'package:cake_wallet/utils/show_bar.dart';
11 import 'package:cake_wallet/view_model/wallet_keys_view_model.dart';
11 -import 'package:device_display_brightness/device_display_brightness.dart';
12 import 'package:flutter/material.dart';
13 import 'package:flutter/services.dart';
14 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -26,19 +26,15 @@ class WalletKeysPage extends BasePage {
26 @override
27 Widget trailing(BuildContext context) => IconButton(
28 onPressed: () async {
29 - // Get the current brightness:
30 - final double brightness = await DeviceDisplayBrightness.getBrightness();
29 final url = await walletKeysViewModel.url;
30
33 - // ignore: unawaited_futures
34 - DeviceDisplayBrightness.setBrightness(1.0);
35 - await Navigator.pushNamed(
36 - context,
37 - Routes.fullscreenQR,
38 - arguments: QrViewData(data: url.toString(), version: QrVersions.auto),
39 - );
40 - // ignore: unawaited_futures
41 - DeviceDisplayBrightness.setBrightness(brightness);
31 + BrightnessUtil.changeBrightnessForFunction(() async {
32 + await Navigator.pushNamed(
33 + context,
34 + Routes.fullscreenQR,
35 + arguments: QrViewData(data: url.toString(), version: QrVersions.auto),
36 + );
37 + });
38 },
39 splashColor: Colors.transparent,
40 highlightColor: Colors.transparent,
lib/utils/brightness_util.dart new
+23
@@ -0,0 +1,23 @@
1 +import 'package:cake_wallet/utils/device_info.dart';
2 +import 'package:device_display_brightness/device_display_brightness.dart';
3 +
4 +class BrightnessUtil {
5 + static Future<void> changeBrightnessForFunction(Future<void> Function() func) async {
6 + // if not mobile, just navigate
7 + if (!DeviceInfo.instance.isMobile) {
8 + func();
9 + return;
10 + }
11 +
12 + // Get the current brightness:
13 + final brightness = await DeviceDisplayBrightness.getBrightness();
14 +
15 + // ignore: unawaited_futures
16 + DeviceDisplayBrightness.setBrightness(1.0);
17 +
18 + await func();
19 +
20 + // ignore: unawaited_futures
21 + DeviceDisplayBrightness.setBrightness(brightness);
22 + }
23 +}
\ No newline at end of file