From ada0ca14727fad4dd98a8fb0b1e1f5a6cd7987ac Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Tue, 28 Jan 2025 21:42:16 +0600 Subject: [PATCH] chore: remove obsolete appearance customization --- lib/main.dart | 17 ---- lib/pages/settings/sections/appearance.dart | 32 +++---- .../audio_player/audio_player_streams.dart | 28 ------ lib/provider/palette_provider.dart | 4 - .../user_preferences_provider.dart | 12 ++- lib/themes/theme.dart | 86 ------------------- 6 files changed, 21 insertions(+), 158 deletions(-) delete mode 100644 lib/provider/palette_provider.dart delete mode 100644 lib/themes/theme.dart diff --git a/lib/main.dart b/lib/main.dart index bbf161c5..e0b6e370 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -133,10 +133,6 @@ class Spotube extends HookConsumerWidget { final locale = ref.watch(userPreferencesProvider.select((s) => s.locale)); final accentMaterialColor = ref.watch(userPreferencesProvider.select((s) => s.accentColorScheme)); - // final isAmoledTheme = - // ref.watch(userPreferencesProvider.select((s) => s.amoledDarkTheme)); - // final paletteColor = - // ref.watch(paletteProvider.select((s) => s?.dominantColor?.color)); final router = ref.watch(routerProvider); final hasTouchSupport = useHasTouch(); @@ -166,19 +162,6 @@ class Spotube extends HookConsumerWidget { }; }, []); - // final lightTheme = useMemoized( - // () => theme(paletteColor ?? accentMaterialColor, Brightness.light, false), - // [paletteColor, accentMaterialColor], - // ); - // final darkTheme = useMemoized( - // () => theme( - // paletteColor ?? accentMaterialColor, - // Brightness.dark, - // isAmoledTheme, - // ), - // [paletteColor, accentMaterialColor, isAmoledTheme], - // ); - return ShadcnApp.router( supportedLocales: L10n.all, locale: locale.languageCode == "system" ? null : locale, diff --git a/lib/pages/settings/sections/appearance.dart b/lib/pages/settings/sections/appearance.dart index 55a8f1ef..88f39a25 100644 --- a/lib/pages/settings/sections/appearance.dart +++ b/lib/pages/settings/sections/appearance.dart @@ -79,14 +79,14 @@ class SettingsAppearanceSection extends HookConsumerWidget { } }, ), - ListTile( - leading: const Icon(SpotubeIcons.amoled), - title: Text(context.l10n.use_amoled_mode), - subtitle: Text(context.l10n.pitch_dark_theme), - trailing: Switch( - value: preferences.amoledDarkTheme, - onChanged: preferencesNotifier.setAmoledDarkTheme, - )), + // ListTile( + // leading: const Icon(SpotubeIcons.amoled), + // title: Text(context.l10n.use_amoled_mode), + // subtitle: Text(context.l10n.pitch_dark_theme), + // trailing: Switch( + // value: preferences.amoledDarkTheme, + // onChanged: preferencesNotifier.setAmoledDarkTheme, + // )), ListTile( leading: const Icon(SpotubeIcons.palette), title: Text(context.l10n.accent_color), @@ -102,14 +102,14 @@ class SettingsAppearanceSection extends HookConsumerWidget { ), onTap: pickColorScheme(), ), - ListTile( - leading: const Icon(SpotubeIcons.colorSync), - title: Text(context.l10n.sync_album_color), - subtitle: Text(context.l10n.sync_album_color_description), - trailing: Switch( - value: preferences.albumColorSync, - onChanged: preferencesNotifier.setAlbumColorSync, - )), + // ListTile( + // leading: const Icon(SpotubeIcons.colorSync), + // title: Text(context.l10n.sync_album_color), + // subtitle: Text(context.l10n.sync_album_color_description), + // trailing: Switch( + // value: preferences.albumColorSync, + // onChanged: preferencesNotifier.setAlbumColorSync, + // )), ]; if (isGettingStarted) { diff --git a/lib/provider/audio_player/audio_player_streams.dart b/lib/provider/audio_player/audio_player_streams.dart index e52b6109..880f643f 100644 --- a/lib/provider/audio_player/audio_player_streams.dart +++ b/lib/provider/audio_player/audio_player_streams.dart @@ -1,15 +1,11 @@ import 'dart:async'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:palette_generator/palette_generator.dart'; -import 'package:spotube/components/image/universal_image.dart'; -import 'package:spotube/extensions/image.dart'; import 'package:spotube/models/local_track.dart'; import 'package:spotube/provider/audio_player/audio_player.dart'; import 'package:spotube/provider/audio_player/state.dart'; import 'package:spotube/provider/discord_provider.dart'; import 'package:spotube/provider/history/history.dart'; -import 'package:spotube/provider/palette_provider.dart'; import 'package:spotube/provider/skip_segments/skip_segments.dart'; import 'package:spotube/provider/scrobbler/scrobbler.dart'; import 'package:spotube/provider/server/sourced_track.dart'; @@ -48,36 +44,12 @@ class AudioPlayerStreamListeners { PlaybackHistoryActions get history => ref.read(playbackHistoryActionsProvider); - Future updatePalette() async { - final palette = ref.read(paletteProvider); - if (!preferences.albumColorSync) { - if (palette != null) ref.read(paletteProvider.notifier).state = null; - return; - } - return Future.microtask(() async { - final activeTrack = ref.read(audioPlayerProvider).activeTrack; - if (activeTrack == null) return; - - final palette = await PaletteGenerator.fromImageProvider( - UniversalImage.imageProvider( - (activeTrack.album?.images).asUrlString( - placeholder: ImagePlaceholder.albumArt, - ), - height: 50, - width: 50, - ), - ); - ref.read(paletteProvider.notifier).state = palette; - }); - } - StreamSubscription subscribeToPlaylist() { return audioPlayer.playlistStream.listen((mpvPlaylist) { try { if (audioPlayerState.activeTrack == null) return; notificationService.addTrack(audioPlayerState.activeTrack!); discord.updatePresence(audioPlayerState.activeTrack!); - updatePalette(); } catch (e, stack) { AppLogger.reportError(e, stack); } diff --git a/lib/provider/palette_provider.dart b/lib/provider/palette_provider.dart deleted file mode 100644 index 8f0e9e29..00000000 --- a/lib/provider/palette_provider.dart +++ /dev/null @@ -1,4 +0,0 @@ -import 'package:palette_generator/palette_generator.dart'; -import 'package:flutter_riverpod/flutter_riverpod.dart'; - -final paletteProvider = StateProvider((ref) => null); diff --git a/lib/provider/user_preferences/user_preferences_provider.dart b/lib/provider/user_preferences/user_preferences_provider.dart index 0f9efce1..eeb712e1 100644 --- a/lib/provider/user_preferences/user_preferences_provider.dart +++ b/lib/provider/user_preferences/user_preferences_provider.dart @@ -7,9 +7,7 @@ import 'package:shadcn_flutter/shadcn_flutter.dart' hide join; import 'package:spotify/spotify.dart'; import 'package:spotube/models/database/database.dart'; import 'package:spotube/modules/settings/color_scheme_picker_dialog.dart'; -import 'package:spotube/provider/audio_player/audio_player_streams.dart'; import 'package:spotube/provider/database/database.dart'; -import 'package:spotube/provider/palette_provider.dart'; import 'package:spotube/services/audio_player/audio_player.dart'; import 'package:spotube/services/logger/logger.dart'; import 'package:spotube/services/sourced_track/enums.dart'; @@ -144,11 +142,11 @@ class UserPreferencesNotifier extends Notifier { void setAlbumColorSync(bool sync) { setData(PreferencesTableCompanion(albumColorSync: Value(sync))); - if (!sync) { - ref.read(paletteProvider.notifier).state = null; - } else { - ref.read(audioPlayerStreamListenersProvider).updatePalette(); - } + // if (!sync) { + // ref.read(paletteProvider.notifier).state = null; + // } else { + // ref.read(audioPlayerStreamListenersProvider).updatePalette(); + // } } void setCheckUpdate(bool check) { diff --git a/lib/themes/theme.dart b/lib/themes/theme.dart deleted file mode 100644 index 485e5af7..00000000 --- a/lib/themes/theme.dart +++ /dev/null @@ -1,86 +0,0 @@ -import 'package:flutter/material.dart'; - -ThemeData theme(Color seed, Brightness brightness, bool isAmoled) { - final scheme = ColorScheme.fromSeed( - seedColor: seed, - shadow: Colors.black12, - surface: isAmoled ? Colors.black : null, - brightness: brightness, - ); - return ThemeData( - useMaterial3: true, - colorScheme: scheme, - listTileTheme: ListTileThemeData( - horizontalTitleGap: 5, - iconColor: scheme.onSurface, - ), - appBarTheme: const AppBarTheme( - surfaceTintColor: Colors.transparent, - scrolledUnderElevation: 0, - shadowColor: Colors.transparent, - elevation: 0, - ), - inputDecorationTheme: InputDecorationTheme( - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(15), - ), - ), - iconTheme: IconThemeData(size: 16, color: scheme.onSurface), - navigationBarTheme: const NavigationBarThemeData( - labelBehavior: NavigationDestinationLabelBehavior.alwaysHide, - height: 50, - iconTheme: WidgetStatePropertyAll( - IconThemeData(size: 18), - ), - ), - tabBarTheme: TabBarTheme( - indicatorSize: TabBarIndicatorSize.tab, - labelStyle: const TextStyle(fontWeight: FontWeight.w600), - labelColor: scheme.primary, - dividerColor: Colors.transparent, - indicator: BoxDecoration( - color: scheme.secondaryContainer, - borderRadius: BorderRadius.circular(15), - ), - ), - popupMenuTheme: PopupMenuThemeData( - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), - color: scheme.surface, - elevation: 4, - labelTextStyle: WidgetStatePropertyAll( - TextStyle(color: scheme.onSurface), - ), - ), - snackBarTheme: SnackBarThemeData( - behavior: SnackBarBehavior.floating, - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), - backgroundColor: scheme.onSurface, - contentTextStyle: TextStyle(color: scheme.surface), - ), - sliderTheme: SliderThemeData(overlayShape: SliderComponentShape.noOverlay), - searchBarTheme: SearchBarThemeData( - textStyle: const WidgetStatePropertyAll(TextStyle(fontSize: 15)), - constraints: const BoxConstraints(maxWidth: double.infinity), - padding: const WidgetStatePropertyAll(EdgeInsets.all(8)), - backgroundColor: WidgetStatePropertyAll( - Color.lerp( - scheme.surfaceContainerHighest, - scheme.surface, - brightness == Brightness.light ? .9 : .7, - ), - ), - elevation: const WidgetStatePropertyAll(0), - shape: WidgetStatePropertyAll( - RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - ), - ), - ), - scrollbarTheme: const ScrollbarThemeData( - thickness: WidgetStatePropertyAll(14), - ), - checkboxTheme: CheckboxThemeData( - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), - ), - ); -}