feat: add restore default settings button

This commit is contained in:
Kingkor Roy Tirtho 2023-09-27 13:34:19 +06:00
parent 101c32523d
commit 94c386638f
4 changed files with 66 additions and 27 deletions

View File

@ -267,5 +267,6 @@
"use_amoled_dark_theme": "Use AMOLED (Pitch Black) dark theme",
"normalize_audio": "Normalize audio",
"change_cover": "Change cover",
"add_cover": "Add cover"
"add_cover": "Add cover",
"restore_defaults": "Restore defaults"
}

View File

@ -33,7 +33,7 @@ class SettingsPage extends HookConsumerWidget {
@override
Widget build(BuildContext context, ref) {
final UserPreferences preferences = ref.watch(userPreferencesProvider);
final preferences = ref.watch(userPreferencesProvider);
final auth = ref.watch(AuthenticationNotifier.provider);
final theme = Theme.of(context);
final mediaQuery = MediaQuery.of(context);
@ -602,6 +602,13 @@ class SettingsPage extends HookConsumerWidget {
)
],
),
Center(
child: FilledButton(
onPressed: preferences.reset,
child: Text(context.l10n.restore_defaults),
),
),
const SizedBox(height: 10),
],
),
),

View File

@ -47,7 +47,7 @@ class UserPreferences extends PersistedChangeNotifier {
bool checkUpdate;
AudioQuality audioQuality;
SpotubeColor accentColorScheme;
late SpotubeColor accentColorScheme;
bool albumColorSync;
String downloadLocation;
@ -78,10 +78,9 @@ class UserPreferences extends PersistedChangeNotifier {
UserPreferences(
this.ref, {
required this.recommendationMarket,
required this.themeMode,
required this.layoutMode,
required this.accentColorScheme,
this.recommendationMarket = Market.US,
this.themeMode = ThemeMode.system,
this.layoutMode = LayoutMode.adaptive,
this.albumColorSync = true,
this.saveTrackLyrics = false,
this.checkUpdate = true,
@ -97,7 +96,10 @@ class UserPreferences extends PersistedChangeNotifier {
this.systemTitleBar = false,
this.amoledDarkTheme = false,
this.normalizeAudio = true,
SpotubeColor? accentColorScheme,
}) : super() {
this.accentColorScheme =
accentColorScheme ?? SpotubeColor(Colors.blue.value, name: "Blue");
if (downloadLocation.isEmpty && !kIsWeb) {
_getDefaultDownloadDirectory().then(
(value) {
@ -107,6 +109,28 @@ class UserPreferences extends PersistedChangeNotifier {
}
}
void reset() {
setRecommendationMarket(Market.US);
setThemeMode(ThemeMode.system);
setLayoutMode(LayoutMode.adaptive);
setAlbumColorSync(true);
setSaveTrackLyrics(false);
setCheckUpdate(true);
setAudioQuality(AudioQuality.high);
setDownloadLocation("");
setCloseBehavior(CloseBehavior.close);
setShowSystemTrayIcon(true);
setLocale(const Locale("system", "system"));
setPipedInstance("https://pipedapi.kavin.rocks");
setSearchMode(SearchMode.youtube);
setSkipNonMusic(true);
setYoutubeApiType(YoutubeApiType.youtube);
setSystemTitleBar(false);
setAmoledDarkTheme(false);
setNormalizeAudio(true);
setAccentColorScheme(SpotubeColor(Colors.blue.value, name: "Blue"));
}
void setThemeMode(ThemeMode mode) {
themeMode = mode;
notifyListeners();
@ -372,11 +396,5 @@ class UserPreferences extends PersistedChangeNotifier {
}
final userPreferencesProvider = ChangeNotifierProvider(
(ref) => UserPreferences(
ref,
accentColorScheme: SpotubeColor(Colors.blue.value, name: "Blue"),
recommendationMarket: Market.US,
themeMode: ThemeMode.system,
layoutMode: LayoutMode.adaptive,
),
(ref) => UserPreferences(ref),
);

View File

@ -3,90 +3,103 @@
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"bn": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"ca": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"de": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"es": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"fr": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"hi": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"ja": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"pl": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"pt": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"ru": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"uk": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
],
"zh": [
"use_amoled_dark_theme",
"normalize_audio",
"change_cover",
"add_cover"
"add_cover",
"restore_defaults"
]
}