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", "use_amoled_dark_theme": "Use AMOLED (Pitch Black) dark theme",
"normalize_audio": "Normalize audio", "normalize_audio": "Normalize audio",
"change_cover": "Change cover", "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 @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
final UserPreferences preferences = ref.watch(userPreferencesProvider); final preferences = ref.watch(userPreferencesProvider);
final auth = ref.watch(AuthenticationNotifier.provider); final auth = ref.watch(AuthenticationNotifier.provider);
final theme = Theme.of(context); final theme = Theme.of(context);
final mediaQuery = MediaQuery.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; bool checkUpdate;
AudioQuality audioQuality; AudioQuality audioQuality;
SpotubeColor accentColorScheme; late SpotubeColor accentColorScheme;
bool albumColorSync; bool albumColorSync;
String downloadLocation; String downloadLocation;
@ -78,10 +78,9 @@ class UserPreferences extends PersistedChangeNotifier {
UserPreferences( UserPreferences(
this.ref, { this.ref, {
required this.recommendationMarket, this.recommendationMarket = Market.US,
required this.themeMode, this.themeMode = ThemeMode.system,
required this.layoutMode, this.layoutMode = LayoutMode.adaptive,
required this.accentColorScheme,
this.albumColorSync = true, this.albumColorSync = true,
this.saveTrackLyrics = false, this.saveTrackLyrics = false,
this.checkUpdate = true, this.checkUpdate = true,
@ -97,7 +96,10 @@ class UserPreferences extends PersistedChangeNotifier {
this.systemTitleBar = false, this.systemTitleBar = false,
this.amoledDarkTheme = false, this.amoledDarkTheme = false,
this.normalizeAudio = true, this.normalizeAudio = true,
SpotubeColor? accentColorScheme,
}) : super() { }) : super() {
this.accentColorScheme =
accentColorScheme ?? SpotubeColor(Colors.blue.value, name: "Blue");
if (downloadLocation.isEmpty && !kIsWeb) { if (downloadLocation.isEmpty && !kIsWeb) {
_getDefaultDownloadDirectory().then( _getDefaultDownloadDirectory().then(
(value) { (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) { void setThemeMode(ThemeMode mode) {
themeMode = mode; themeMode = mode;
notifyListeners(); notifyListeners();
@ -372,11 +396,5 @@ class UserPreferences extends PersistedChangeNotifier {
} }
final userPreferencesProvider = ChangeNotifierProvider( final userPreferencesProvider = ChangeNotifierProvider(
(ref) => UserPreferences( (ref) => UserPreferences(ref),
ref,
accentColorScheme: SpotubeColor(Colors.blue.value, name: "Blue"),
recommendationMarket: Market.US,
themeMode: ThemeMode.system,
layoutMode: LayoutMode.adaptive,
),
); );

View File

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