use adaptive theme for toggling
This commit is contained in:
parent
ec95293ff8
commit
0525f6b910
3 changed files with 41 additions and 25 deletions
38
lib/app.dart
38
lib/app.dart
|
@ -1,3 +1,4 @@
|
|||
import 'package:adaptive_theme/adaptive_theme.dart';
|
||||
import 'package:background_fetch/background_fetch.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
|
@ -139,23 +140,26 @@ class _EnteAppState extends State<EnteApp> with WidgetsBindingObserver {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
title: "ente",
|
||||
themeMode: ThemeMode.system,
|
||||
theme: lightThemeData,
|
||||
darkTheme: darkThemeData,
|
||||
home: EnteApp._homeWidget,
|
||||
debugShowCheckedModeBanner: false,
|
||||
navigatorKey: Network.instance.getAlice().getNavigatorKey(),
|
||||
builder: EasyLoading.init(),
|
||||
supportedLocales: L10n.all,
|
||||
localizationsDelegates: const [
|
||||
AppLocalizations.delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
);
|
||||
return AdaptiveTheme(
|
||||
light: lightThemeData,
|
||||
dark: darkThemeData,
|
||||
initial: AdaptiveThemeMode.dark,
|
||||
builder: (lightTheme, dartTheme) => MaterialApp(
|
||||
title: "ente",
|
||||
theme: lightTheme,
|
||||
darkTheme: dartTheme,
|
||||
home: EnteApp._homeWidget,
|
||||
debugShowCheckedModeBanner: false,
|
||||
navigatorKey: Network.instance.getAlice().getNavigatorKey(),
|
||||
builder: EasyLoading.init(),
|
||||
supportedLocales: L10n.all,
|
||||
localizationsDelegates: const [
|
||||
AppLocalizations.delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
));
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
import 'dart:io';
|
||||
import 'dart:isolate';
|
||||
|
||||
import 'package:adaptive_theme/adaptive_theme.dart';
|
||||
import 'package:background_fetch/background_fetch.dart';
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
@ -37,6 +38,7 @@ import 'package:super_logging/super_logging.dart';
|
|||
final _logger = Logger("main");
|
||||
|
||||
bool _isProcessRunning = false;
|
||||
AdaptiveThemeMode _savedThemeMode;
|
||||
const kLastBGTaskHeartBeatTime = "bg_task_hb_time";
|
||||
const kLastFGTaskHeartBeatTime = "fg_task_hb_time";
|
||||
const kHeartBeatFrequency = Duration(seconds: 1);
|
||||
|
@ -108,6 +110,7 @@ void _headlessTaskHandler(HeadlessTask task) {
|
|||
Future<void> _init(bool isBackground) async {
|
||||
_isProcessRunning = true;
|
||||
_logger.info("Initializing...");
|
||||
_savedThemeMode = await AdaptiveTheme.getThemeMode();
|
||||
_scheduleHeartBeat(isBackground);
|
||||
if (isBackground) {
|
||||
AppLifecycleService.instance.onAppInBackground();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:adaptive_theme/adaptive_theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
|
@ -6,16 +7,24 @@ class ThemeSwitchWidget extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Switch(
|
||||
value: true,
|
||||
activeColor: Colors.black,
|
||||
return Switch.adaptive(
|
||||
value: Theme.of(context).colorScheme.onSurface == Colors.black,
|
||||
activeColor: Theme.of(context).colorScheme.onSurface,
|
||||
activeTrackColor: Theme.of(context).colorScheme.onBackground,
|
||||
inactiveTrackColor: Theme.of(context).colorScheme.onSurface,
|
||||
inactiveThumbColor: Theme.of(context).colorScheme.primary,
|
||||
hoverColor: Theme.of(context).colorScheme.onSurface,
|
||||
onChanged: (bool value) {
|
||||
print(value);
|
||||
if (value) {
|
||||
AdaptiveTheme.of(context).setLight();
|
||||
} else {
|
||||
AdaptiveTheme.of(context).setDark();
|
||||
}
|
||||
},
|
||||
activeThumbImage: new NetworkImage(
|
||||
'https://cdn0.iconfinder.com/data/icons/multimedia-solid-30px/30/moon_dark_mode_night-512.png'),
|
||||
inactiveThumbImage: new NetworkImage(
|
||||
'https://cdn0.iconfinder.com/data/icons/multimedia-solid-30px/30/moon_dark_mode_night-512.png'),
|
||||
// activeThumbImage: new NetworkImage(
|
||||
// 'https://cdn0.iconfinder.com/data/icons/multimedia-solid-30px/30/moon_dark_mode_night-512.png'),
|
||||
// inactiveThumbImage: new NetworkImage(
|
||||
// 'https://cdn0.iconfinder.com/data/icons/multimedia-solid-30px/30/moon_dark_mode_night-512.png'),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue