mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 01:45:55 +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/utils.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:dynamic_theme/dynamic_theme.dart';
|
||||
|
||||
import 'screens/githostsetup_screens.dart';
|
||||
import 'screens/onboarding_screens.dart';
|
||||
@ -111,6 +112,32 @@ class JournalApp extends StatelessWidget {
|
||||
|
||||
@override
|
||||
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 initialRoute = '/';
|
||||
@ -121,13 +148,7 @@ class JournalApp extends StatelessWidget {
|
||||
return MaterialApp(
|
||||
key: ValueKey("App"),
|
||||
title: 'GitJournal',
|
||||
theme: ThemeData(
|
||||
brightness: Brightness.light,
|
||||
primaryColor: Color(0xFF66bb6a),
|
||||
primaryColorLight: Color(0xFF98ee99),
|
||||
primaryColorDark: Color(0xFF338a3e),
|
||||
accentColor: Color(0xff6d4c41),
|
||||
),
|
||||
theme: themeData,
|
||||
navigatorObservers: <NavigatorObserver>[JournalApp.observer],
|
||||
initialRoute: initialRoute,
|
||||
routes: {
|
||||
|
@ -3,6 +3,7 @@ import 'package:journal/settings.dart';
|
||||
import 'package:journal/utils.dart';
|
||||
|
||||
import 'package:preferences/preferences.dart';
|
||||
import 'package:dynamic_theme/dynamic_theme.dart';
|
||||
|
||||
class SettingsScreen extends StatelessWidget {
|
||||
@override
|
||||
@ -143,6 +144,24 @@ class SettingsListState extends State<SettingsList> {
|
||||
|
||||
return PreferencePage([
|
||||
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(
|
||||
'Font Size',
|
||||
'font_size',
|
||||
|
@ -99,6 +99,13 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
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:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -26,6 +26,7 @@ dependencies:
|
||||
auto_size_text: ^2.0.1
|
||||
fimber: ^0.3.0
|
||||
preferences: ^4.0.0
|
||||
dynamic_theme: ^1.0.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_launcher_icons: "^0.7.2"
|
||||
|
Reference in New Issue
Block a user