Update theme data

This commit is contained in:
stonega 2021-10-06 18:47:43 +08:00
parent ad7541d2fc
commit b0d1639138
4 changed files with 88 additions and 74 deletions

View File

@ -75,8 +75,8 @@ class _PlaylistHomeState extends State<PlaylistHome> {
return AnnotatedRegion<SystemUiOverlayStyle>( return AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle( value: SystemUiOverlayStyle(
systemNavigationBarIconBrightness: systemNavigationBarIconBrightness:
Theme.of(context).accentColorBrightness, Theme.of(context).colorScheme.brightness,
statusBarIconBrightness: Theme.of(context).accentColorBrightness, statusBarIconBrightness: Theme.of(context).colorScheme.brightness,
systemNavigationBarColor: Theme.of(context).primaryColor, systemNavigationBarColor: Theme.of(context).primaryColor,
), ),
child: WillPopScope( child: WillPopScope(
@ -143,6 +143,9 @@ class _PlaylistHomeState extends State<PlaylistHome> {
playing playing
? audio.pauseAduio() ? audio.pauseAduio()
: audio.resumeAudio(); : audio.resumeAudio();
} else if (data.item1.isEmpty) {
Fluttertoast.showToast(
msg: 'Playlist is empty');
} else { } else {
context context
.read<AudioPlayerNotifier>() .read<AudioPlayerNotifier>()

View File

@ -2,7 +2,6 @@ import 'dart:math' as math;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:file_picker/file_picker.dart';
import '../state/audio_state.dart'; import '../state/audio_state.dart';
import '../type/episodebrief.dart'; import '../type/episodebrief.dart';

View File

@ -5,6 +5,7 @@ import 'dart:ui';
import 'package:connectivity/connectivity.dart'; import 'package:connectivity/connectivity.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:flutter_downloader/flutter_downloader.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
@ -18,43 +19,43 @@ import '../type/settings_backup.dart';
import 'download_state.dart'; import 'download_state.dart';
void callbackDispatcher() { void callbackDispatcher() {
Workmanager.executeTask((task, inputData) async { Workmanager.executeTask((task, inputData) async {
var dbHelper = DBHelper(); var dbHelper = DBHelper();
var podcastList = await dbHelper.getPodcastLocalAll(updateOnly: true); var podcastList = await dbHelper.getPodcastLocalAll(updateOnly: true);
//lastWork is a indicator for if the app was opened since last backgroundwork //lastWork is a indicator for if the app was opened since last backgroundwork
//if the app wes opend,then the old marked new episode would be marked not new. //if the app wes opend,then the old marked new episode would be marked not new.
var lastWorkStorage = KeyValueStorage(lastWorkKey); var lastWorkStorage = KeyValueStorage(lastWorkKey);
var lastWork = await lastWorkStorage.getInt(); var lastWork = await lastWorkStorage.getInt();
for (var podcastLocal in podcastList) { for (var podcastLocal in podcastList) {
await dbHelper.updatePodcastRss(podcastLocal, removeMark: lastWork); await dbHelper.updatePodcastRss(podcastLocal, removeMark: lastWork);
developer.log('Refresh ${podcastLocal.title}'); developer.log('Refresh ${podcastLocal.title}');
} }
await FlutterDownloader.initialize(); await FlutterDownloader.initialize();
var downloader = AutoDownloader(); var downloader = AutoDownloader();
var autoDownloadStorage = KeyValueStorage(autoDownloadNetworkKey); var autoDownloadStorage = KeyValueStorage(autoDownloadNetworkKey);
var autoDownloadNetwork = await autoDownloadStorage.getInt(); var autoDownloadNetwork = await autoDownloadStorage.getInt();
var result = await Connectivity().checkConnectivity(); var result = await Connectivity().checkConnectivity();
if (autoDownloadNetwork == 1) { if (autoDownloadNetwork == 1) {
var episodes = await dbHelper.getNewEpisodes('all'); var episodes = await dbHelper.getNewEpisodes('all');
// For safety // For safety
if (episodes.length < 100 && episodes.length > 0) { if (episodes.length < 100 && episodes.length > 0) {
downloader.bindBackgroundIsolate(); downloader.bindBackgroundIsolate();
await downloader.startTask(episodes); await downloader.startTask(episodes);
}
} else if (result == ConnectivityResult.wifi) {
var episodes = await dbHelper.getNewEpisodes('all');
//For safety
if (episodes.length < 100 && episodes.length > 0) {
downloader.bindBackgroundIsolate();
await downloader.startTask(episodes);
}
} }
await lastWorkStorage.saveInt(1); } else if (result == ConnectivityResult.wifi) {
var refreshstorage = KeyValueStorage(refreshdateKey); var episodes = await dbHelper.getNewEpisodes('all');
await refreshstorage.saveInt(DateTime.now().millisecondsSinceEpoch); //For safety
return Future.value(true); if (episodes.length < 100 && episodes.length > 0) {
}); downloader.bindBackgroundIsolate();
await downloader.startTask(episodes);
}
}
await lastWorkStorage.saveInt(1);
var refreshstorage = KeyValueStorage(refreshdateKey);
await refreshstorage.saveInt(DateTime.now().millisecondsSinceEpoch);
return Future.value(true);
});
} }
final showNotesFontStyles = <TextStyle>[ final showNotesFontStyles = <TextStyle>[
@ -139,42 +140,51 @@ class SettingState extends ChangeNotifier {
ThemeMode get theme => _theme; ThemeMode get theme => _theme;
ThemeData get lightTheme => ThemeData( ThemeData get lightTheme => ThemeData(
accentColorBrightness: Brightness.dark, colorScheme: ColorScheme.fromSwatch()
primaryColor: Colors.grey[100], .copyWith(brightness: Brightness.light, secondary: _accentSetColor),
primaryColorLight: Colors.white, primaryColor: Colors.grey[100],
primaryColorDark: Colors.grey[300], primaryColorLight: Colors.white,
dialogBackgroundColor: Colors.white, primaryColorDark: Colors.grey[300],
backgroundColor: Colors.grey[100], dialogBackgroundColor: Colors.white,
appBarTheme: AppBarTheme( backgroundColor: Colors.grey[100],
color: Colors.grey[100], appBarTheme: AppBarTheme(
elevation: 0, color: Colors.grey[100],
), elevation: 0,
textTheme: TextTheme( titleTextStyle: TextStyle(color: Colors.black),
bodyText2: TextStyle(fontSize: 15.0, fontWeight: FontWeight.normal), iconTheme: IconThemeData(color: Colors.black),
), systemOverlayStyle: SystemUiOverlayStyle.dark),
tabBarTheme: TabBarTheme( textTheme: TextTheme(
labelColor: Colors.black, bodyText2: TextStyle(fontSize: 15.0, fontWeight: FontWeight.normal),
unselectedLabelColor: Colors.grey[400], ),
), tabBarTheme: TabBarTheme(
accentColor: _accentSetColor, labelColor: Colors.black,
cursorColor: _accentSetColor, unselectedLabelColor: Colors.grey[400],
textSelectionHandleColor: _accentSetColor, ),
toggleableActiveColor: _accentSetColor, textSelectionTheme: TextSelectionThemeData(
buttonTheme: ButtonThemeData( cursorColor: _accentSetColor,
selectionHandleColor: _accentSetColor,
),
toggleableActiveColor: _accentSetColor,
buttonTheme: ButtonThemeData(
height: 32, height: 32,
hoverColor: _accentSetColor.withAlpha(70), hoverColor: _accentSetColor.withAlpha(70),
splashColor: _accentSetColor.withAlpha(70))); splashColor: _accentSetColor.withAlpha(70),
),
);
ThemeData get darkTheme => ThemeData.dark().copyWith( ThemeData get darkTheme => ThemeData.dark().copyWith(
accentColor: _accentSetColor, colorScheme: ColorScheme.fromSwatch()
primaryColorDark: Colors.grey[800], .copyWith(brightness: Brightness.dark, secondary: _accentSetColor),
scaffoldBackgroundColor: _realDark ? Colors.black87 : Color(0XFF212121), primaryColorDark: Colors.grey[800],
primaryColor: _realDark ? Colors.black : Color(0XFF1B1B1B), scaffoldBackgroundColor: _realDark ? Colors.black87 : Color(0XFF212121),
popupMenuTheme: PopupMenuThemeData() primaryColor: _realDark ? Colors.black : Color(0XFF1B1B1B),
.copyWith(color: _realDark ? Colors.grey[900] : null), popupMenuTheme: PopupMenuThemeData()
appBarTheme: AppBarTheme(elevation: 0), .copyWith(color: _realDark ? Colors.grey[900] : null),
buttonTheme: ButtonThemeData(height: 32), appBarTheme: AppBarTheme(
dialogBackgroundColor: _realDark ? Colors.grey[900] : null, elevation: 0, systemOverlayStyle: SystemUiOverlayStyle.light),
cursorColor: _accentSetColor); buttonTheme: ButtonThemeData(height: 32),
dialogBackgroundColor: _realDark ? Colors.grey[900] : null,
);
set setTheme(ThemeMode mode) { set setTheme(ThemeMode mode) {
_theme = mode; _theme = mode;
@ -558,8 +568,10 @@ class SettingState extends ChangeNotifier {
.getBool(defaultValue: false); .getBool(defaultValue: false);
final deleteAfterPlayed = await KeyValueStorage(deleteAfterPlayedKey) final deleteAfterPlayed = await KeyValueStorage(deleteAfterPlayedKey)
.getBool(defaultValue: false); .getBool(defaultValue: false);
final openPlaylistDefault = await _openPlaylistDefaultStorage.getBool(defaultValue: false); final openPlaylistDefault =
final openAllPodcastDefault = await _openAllPodcastDefaultStorage.getBool(defaultValue: false); await _openPlaylistDefaultStorage.getBool(defaultValue: false);
final openAllPodcastDefault =
await _openAllPodcastDefaultStorage.getBool(defaultValue: false);
return SettingsBackup( return SettingsBackup(
theme: theme, theme: theme,

View File

@ -9,7 +9,7 @@ import '../generated/l10n.dart';
extension ContextExtension on BuildContext { extension ContextExtension on BuildContext {
Color get primaryColor => Theme.of(this).primaryColor; Color get primaryColor => Theme.of(this).primaryColor;
Color get accentColor => Theme.of(this).accentColor; Color get accentColor => Theme.of(this).colorScheme.secondary;
Color get scaffoldBackgroundColor => Theme.of(this).scaffoldBackgroundColor; Color get scaffoldBackgroundColor => Theme.of(this).scaffoldBackgroundColor;
Color get primaryColorDark => Theme.of(this).primaryColorDark; Color get primaryColorDark => Theme.of(this).primaryColorDark;
Color get textColor => Theme.of(this).textTheme.bodyText1.color; Color get textColor => Theme.of(this).textTheme.bodyText1.color;