added systemNavigationBarColor to blend with bottom navbar

This commit is contained in:
dstark5
2023-09-12 00:21:50 -07:00
parent 0825857231
commit 7f3e255259
2 changed files with 25 additions and 12 deletions

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'dart:io' show Platform; import 'dart:io' show Platform;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:google_nav_bar/google_nav_bar.dart'; import 'package:google_nav_bar/google_nav_bar.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart';
@ -14,11 +15,11 @@ import 'package:openlib/services/files.dart'
show moveFilesToAndroidInternalStorage; show moveFilesToAndroidInternalStorage;
import 'package:openlib/state/state.dart' import 'package:openlib/state/state.dart'
show show
selectedIndexProvider, selectedIndexProvider,
themeModeProvider, themeModeProvider,
openPdfWithExternalAppProvider, openPdfWithExternalAppProvider,
openEpubWithExternalAppProvider, openEpubWithExternalAppProvider,
dbProvider; dbProvider;
void main() async { void main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
@ -32,11 +33,15 @@ void main() async {
MyLibraryDb dataBase = MyLibraryDb(dbInstance: initDb); MyLibraryDb dataBase = MyLibraryDb(dbInstance: initDb);
bool isDarkMode = await dataBase.getPreference('darkMode'); bool isDarkMode = await dataBase.getPreference('darkMode');
bool openPdfwithExternalapp = bool openPdfwithExternalapp =
await dataBase.getPreference('openPdfwithExternalApp'); await dataBase.getPreference('openPdfwithExternalApp');
bool openEpubwithExternalapp = bool openEpubwithExternalapp =
await dataBase.getPreference('openEpubwithExternalApp'); await dataBase.getPreference('openEpubwithExternalApp');
if (Platform.isAndroid) { if (Platform.isAndroid) {
//[SystemChrome] Also change colors in settings page Theme colors if any change
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
systemNavigationBarColor:
isDarkMode ? Colors.black : Colors.grey.shade200));
await moveFilesToAndroidInternalStorage(); await moveFilesToAndroidInternalStorage();
} }
@ -45,7 +50,7 @@ void main() async {
overrides: [ overrides: [
dbProvider.overrideWithValue(dataBase), dbProvider.overrideWithValue(dataBase),
themeModeProvider.overrideWith( themeModeProvider.overrideWith(
(ref) => isDarkMode ? ThemeMode.dark : ThemeMode.light), (ref) => isDarkMode ? ThemeMode.dark : ThemeMode.light),
openPdfWithExternalAppProvider openPdfWithExternalAppProvider
.overrideWith((ref) => openPdfwithExternalapp), .overrideWith((ref) => openPdfwithExternalapp),
openEpubWithExternalAppProvider openEpubWithExternalAppProvider
@ -110,7 +115,7 @@ class _HomePageState extends ConsumerState<HomePage> {
bottomNavigationBar: SafeArea( bottomNavigationBar: SafeArea(
child: GNav( child: GNav(
rippleColor: Colors.redAccent, rippleColor: Colors.redAccent,
backgroundColor: isDarkMode ? Colors.black : Colors.grey.shade300, backgroundColor: isDarkMode ? Colors.black : Colors.grey.shade200,
haptic: true, haptic: true,
tabBorderRadius: 50, tabBorderRadius: 50,
tabActiveBorder: Border.all( tabActiveBorder: Border.all(
@ -129,7 +134,7 @@ class _HomePageState extends ConsumerState<HomePage> {
GButton( GButton(
icon: Icons.trending_up, icon: Icons.trending_up,
text: 'Trending', text: 'Trending',
iconColor: isDarkMode ? Colors.white : Colors.black, iconColor: isDarkMode ? Colors.white : Colors.black,
textStyle: const TextStyle( textStyle: const TextStyle(
fontWeight: FontWeight.w900, fontWeight: FontWeight.w900,
color: Colors.white, color: Colors.white,

View File

@ -1,4 +1,6 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:openlib/ui/components/page_title_widget.dart'; import 'package:openlib/ui/components/page_title_widget.dart';
@ -42,6 +44,12 @@ class SettingsPage extends ConsumerWidget {
ref.read(themeModeProvider.notifier).state = ref.read(themeModeProvider.notifier).state =
value == true ? ThemeMode.dark : ThemeMode.light; value == true ? ThemeMode.dark : ThemeMode.light;
ref.read(dbProvider).savePreference('darkMode', value); ref.read(dbProvider).savePreference('darkMode', value);
if (Platform.isAndroid) {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
systemNavigationBarColor:
value ? Colors.black : Colors.grey.shade200));
}
}, },
) )
], ],