Make Cached playlist optional (#11)
This commit is contained in:
parent
fe95805f98
commit
48e8055f21
3 changed files with 51 additions and 32 deletions
|
@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue