diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/HomeScreen.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/HomeScreen.kt index 61437e3..6105fa2 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/HomeScreen.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/HomeScreen.kt @@ -321,39 +321,41 @@ fun HomeScreen() { } } - item { - Box( - modifier = Modifier - .padding(all = 8.dp) - .clickable( - indication = rememberRipple(bounded = true), - interactionSource = remember { MutableInteractionSource() }, - onClick = { - builtInPlaylistRoute(BuiltInPlaylist.Cached) - } + if (preferences.isCachedPlaylistShown) { + item { + Box( + modifier = Modifier + .padding(all = 8.dp) + .clickable( + indication = rememberRipple(bounded = true), + interactionSource = remember { MutableInteractionSource() }, + onClick = { + builtInPlaylistRoute(BuiltInPlaylist.Cached) + } + ) + .background(colorPalette.lightBackground) + .size(108.dp) + ) { + Image( + painter = painterResource(R.drawable.download), + contentDescription = null, + colorFilter = ColorFilter.tint(colorPalette.blue), + modifier = Modifier + .align(Alignment.Center) + .size(24.dp) ) - .background(colorPalette.lightBackground) - .size(108.dp) - ) { - Image( - painter = painterResource(R.drawable.download), - contentDescription = null, - colorFilter = ColorFilter.tint(colorPalette.blue), - modifier = Modifier - .align(Alignment.Center) - .size(24.dp) - ) - BasicText( - text = "Cached", - style = typography.xxs.semiBold, - maxLines = 2, - overflow = TextOverflow.Ellipsis, - modifier = Modifier - .fillMaxWidth() - .align(Alignment.BottomStart) - .padding(horizontal = 8.dp, vertical = 4.dp) - ) + BasicText( + text = "Cached", + style = typography.xxs.semiBold, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.BottomStart) + .padding(horizontal = 8.dp, vertical = 4.dp) + ) + } } } diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/settings/AppearanceSettingsScreen.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/settings/AppearanceSettingsScreen.kt index 1a3751f..29ffd1b 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/settings/AppearanceSettingsScreen.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/screens/settings/AppearanceSettingsScreen.kt @@ -96,7 +96,18 @@ fun AppearanceSettingsScreen() { preferences.thumbnailRoundness = it } ) + + SettingsEntryGroupText(title = "OTHER") + + SwitchSettingEntry( + title = "Cached playlist", + text = "Display a playlist whose songs can be played offline", + isChecked = preferences.isCachedPlaylistShown, + onCheckedChange = { + preferences.isCachedPlaylistShown = it + } + ) } } } -} \ No newline at end of file +} diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/utils/Preferences.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/utils/Preferences.kt index 88a95bb..7a4fb35 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/utils/Preferences.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/utils/Preferences.kt @@ -26,6 +26,7 @@ class Preferences( initialVolumeNormalization: Boolean, initialPersistentQueue: Boolean, initialIsInvincibilityEnabled: Boolean, + initialIsCachedPlaylistShown: Boolean, ) { constructor(preferences: SharedPreferences) : this( edit = { action: SharedPreferences.Editor.() -> Unit -> @@ -44,6 +45,7 @@ class Preferences( initialVolumeNormalization = preferences.getBoolean(Keys.volumeNormalization, false), initialPersistentQueue = preferences.getBoolean(Keys.persistentQueue, false), initialIsInvincibilityEnabled = preferences.getBoolean(Keys.isInvincibilityEnabled, false), + initialIsCachedPlaylistShown = preferences.getBoolean(Keys.isCachedPlaylistShown, false), ) var isFirstLaunch = initialIsFirstLaunch @@ -85,6 +87,9 @@ class Preferences( var isInvincibilityEnabled = initialIsInvincibilityEnabled set(value) = edit { putBoolean(Keys.isInvincibilityEnabled, value) } + var isCachedPlaylistShown = initialIsCachedPlaylistShown + set(value) = edit { putBoolean(Keys.isCachedPlaylistShown, value) } + object Keys { const val isFirstLaunch = "isFirstLaunch" const val songSortOrder = "songSortOrder" @@ -99,6 +104,7 @@ class Preferences( const val volumeNormalization = "volumeNormalization" const val persistentQueue = "persistentQueue" const val isInvincibilityEnabled = "isInvincibilityEnabled" + const val isCachedPlaylistShown = "isCachedPlaylistShown" } companion object {