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