@@ -7,30 +7,41 @@ import 'package:flutter_uis/io/io.dart';
7
7
8
8
class UIUtils {
9
9
static SystemUiOverlayStyle getThemeStatusBar (
10
- BuildContext context, [
11
- Brightness forceBrightness,
12
- ]) {
10
+ BuildContext context, {
11
+ Brightness statusBarBrightness,
12
+ Brightness navBarBrightness,
13
+ }) {
13
14
final isDark = App .isDark (context);
14
- final brightness =
15
- forceBrightness ?? (isDark ? Brightness .light : Brightness .dark);
15
+ final brightness = isDark ? Brightness .light : Brightness .dark;
16
16
final base = brightness == Brightness .dark
17
17
? SystemUiOverlayStyle .light
18
18
: SystemUiOverlayStyle .dark;
19
19
20
20
if (Platform .isIOS) {
21
21
final brightness = (! isDark ? Brightness .light : Brightness .dark);
22
22
return base .copyWith (
23
- statusBarBrightness: brightness,
24
- statusBarIconBrightness: brightness,
25
- systemNavigationBarIconBrightness: brightness,
23
+ statusBarBrightness: statusBarBrightness ?? brightness,
24
+ statusBarIconBrightness: statusBarBrightness ?? brightness,
25
+ systemNavigationBarIconBrightness: statusBarBrightness ?? brightness,
26
26
);
27
27
} else {
28
+ final reverse = statusBarBrightness == Brightness .light
29
+ ? Brightness .dark
30
+ : Brightness .light;
31
+
32
+ Color systemNavigationBarColor = AppTheme .background;
33
+ Color systemNavigationBarDividerColor = AppTheme .background2;
34
+ if (navBarBrightness == Brightness .light) {
35
+ systemNavigationBarColor = AppTheme .dark;
36
+ systemNavigationBarDividerColor = AppTheme .background2Dark;
37
+ }
28
38
return (base .copyWith (
29
- statusBarBrightness: brightness,
30
- statusBarIconBrightness: brightness,
31
- systemNavigationBarIconBrightness: brightness,
32
- systemNavigationBarColor: AppTheme .background,
33
- systemNavigationBarDividerColor: AppTheme .background2,
39
+ statusBarBrightness: statusBarBrightness != null ? reverse : brightness,
40
+ statusBarIconBrightness:
41
+ statusBarBrightness != null ? reverse : brightness,
42
+ systemNavigationBarIconBrightness: navBarBrightness ?? brightness,
43
+ systemNavigationBarColor: systemNavigationBarColor,
44
+ systemNavigationBarDividerColor: systemNavigationBarDividerColor,
34
45
));
35
46
}
36
47
}
0 commit comments