mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-29 18:38:36 +08:00
Add a basic dark theme
It's not that pretty, but this adds the scaffolding.
This commit is contained in:
35
lib/app.dart
35
lib/app.dart
@ -12,6 +12,7 @@ import 'package:journal/settings.dart';
|
|||||||
import 'package:journal/state_container.dart';
|
import 'package:journal/state_container.dart';
|
||||||
import 'package:journal/utils.dart';
|
import 'package:journal/utils.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
import 'package:dynamic_theme/dynamic_theme.dart';
|
||||||
|
|
||||||
import 'screens/githostsetup_screens.dart';
|
import 'screens/githostsetup_screens.dart';
|
||||||
import 'screens/onboarding_screens.dart';
|
import 'screens/onboarding_screens.dart';
|
||||||
@ -111,6 +112,32 @@ class JournalApp extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
return DynamicTheme(
|
||||||
|
defaultBrightness: Brightness.light,
|
||||||
|
data: (brightness) {
|
||||||
|
if (brightness == Brightness.light) {
|
||||||
|
return ThemeData(
|
||||||
|
brightness: Brightness.light,
|
||||||
|
primaryColor: Color(0xFF66bb6a),
|
||||||
|
primaryColorLight: Color(0xFF98ee99),
|
||||||
|
primaryColorDark: Color(0xFF338a3e),
|
||||||
|
accentColor: Color(0xff6d4c41),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return ThemeData(
|
||||||
|
brightness: Brightness.dark,
|
||||||
|
primaryColor: Color(0xFF66bb6a),
|
||||||
|
primaryColorLight: Color(0xFF98ee99),
|
||||||
|
primaryColorDark: Color(0xFF338a3e),
|
||||||
|
accentColor: Color(0xff6d4c41),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
themedWidgetBuilder: buildApp,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
MaterialApp buildApp(BuildContext context, ThemeData themeData) {
|
||||||
var stateContainer = StateContainer.of(context);
|
var stateContainer = StateContainer.of(context);
|
||||||
|
|
||||||
var initialRoute = '/';
|
var initialRoute = '/';
|
||||||
@ -121,13 +148,7 @@ class JournalApp extends StatelessWidget {
|
|||||||
return MaterialApp(
|
return MaterialApp(
|
||||||
key: ValueKey("App"),
|
key: ValueKey("App"),
|
||||||
title: 'GitJournal',
|
title: 'GitJournal',
|
||||||
theme: ThemeData(
|
theme: themeData,
|
||||||
brightness: Brightness.light,
|
|
||||||
primaryColor: Color(0xFF66bb6a),
|
|
||||||
primaryColorLight: Color(0xFF98ee99),
|
|
||||||
primaryColorDark: Color(0xFF338a3e),
|
|
||||||
accentColor: Color(0xff6d4c41),
|
|
||||||
),
|
|
||||||
navigatorObservers: <NavigatorObserver>[JournalApp.observer],
|
navigatorObservers: <NavigatorObserver>[JournalApp.observer],
|
||||||
initialRoute: initialRoute,
|
initialRoute: initialRoute,
|
||||||
routes: {
|
routes: {
|
||||||
|
@ -3,6 +3,7 @@ import 'package:journal/settings.dart';
|
|||||||
import 'package:journal/utils.dart';
|
import 'package:journal/utils.dart';
|
||||||
|
|
||||||
import 'package:preferences/preferences.dart';
|
import 'package:preferences/preferences.dart';
|
||||||
|
import 'package:dynamic_theme/dynamic_theme.dart';
|
||||||
|
|
||||||
class SettingsScreen extends StatelessWidget {
|
class SettingsScreen extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
@ -143,6 +144,24 @@ class SettingsListState extends State<SettingsList> {
|
|||||||
|
|
||||||
return PreferencePage([
|
return PreferencePage([
|
||||||
PreferenceTitle('Display Settings'),
|
PreferenceTitle('Display Settings'),
|
||||||
|
DropdownPreference(
|
||||||
|
'Theme',
|
||||||
|
'theme',
|
||||||
|
defaultVal: "Light",
|
||||||
|
values: ["Light", "Dark"],
|
||||||
|
onChange: (newVal) {
|
||||||
|
var dynamicTheme = DynamicTheme.of(context);
|
||||||
|
switch (newVal) {
|
||||||
|
case "Dark":
|
||||||
|
dynamicTheme.setBrightness(Brightness.dark);
|
||||||
|
break;
|
||||||
|
case "Light":
|
||||||
|
case "default":
|
||||||
|
dynamicTheme.setBrightness(Brightness.light);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
DropdownPreference(
|
DropdownPreference(
|
||||||
'Font Size',
|
'Font Size',
|
||||||
'font_size',
|
'font_size',
|
||||||
|
@ -99,6 +99,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.0.5+1"
|
version: "0.0.5+1"
|
||||||
|
dynamic_theme:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: dynamic_theme
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.1"
|
||||||
file:
|
file:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -26,6 +26,7 @@ dependencies:
|
|||||||
auto_size_text: ^2.0.1
|
auto_size_text: ^2.0.1
|
||||||
fimber: ^0.3.0
|
fimber: ^0.3.0
|
||||||
preferences: ^4.0.0
|
preferences: ^4.0.0
|
||||||
|
dynamic_theme: ^1.0.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_launcher_icons: "^0.7.2"
|
flutter_launcher_icons: "^0.7.2"
|
||||||
|
Reference in New Issue
Block a user