feat(swipe to queue): custom swipe bg color

This commit is contained in:
Se7en-dev committed 2026-08-20 23:43:24 +02:00
1 parent 4504b8d1ab
commit 47fe539e76
8 files changed
+42 -19

No files matched your search

@@ -489,6 +489,13 @@
],
"defaultIndex": 0,
"token": "RL_SWIPE_TO_QUEUE_DIRECTION"
},
{
"type": "color",
"key": "background_color",
"title": "Background Color",
"default": -14749031,
"token": "RL_SWIPE_TO_QUEUE_COLOR"
}
]
},
@@ -212,6 +212,7 @@ fun PatchAdvancedOptionsSheet(
is OptionSpec.Color -> ColorOptionRow(
title = option.title,
color = state.color(patch, option),
defaultColor = option.default,
onColorChange = { state.setColor(patch, option, it) },
)
}
@@ -455,17 +456,24 @@ private fun ChoiceOptionRow(
private fun ColorOptionRow(
title: String,
color: Int,
defaultColor: Int,
onColorChange: (Int) -> Unit,
) {
var showPicker by rememberSaveable { mutableStateOf(false) }
val selectedColor = color.withOpaqueAlpha()
val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha()
val opaqueDefault = defaultColor.withOpaqueAlpha()
val defaultLabel = if (opaqueDefault == TIDAL_GREEN) {
stringResource(R.string.patch_color_green)
} else {
stringResource(R.string.patch_waze_color_waze_default)
}
val presets = listOf(
stringResource(R.string.patch_waze_color_waze_default),
defaultLabel,
stringResource(R.string.patch_waze_color_tidal_cyan),
stringResource(R.string.patch_waze_color_material_you),
)
val presetColors = listOf(WAZE_DEFAULT, TIDAL_CYAN, materialYouColor)
val presetColors = listOf(opaqueDefault, TIDAL_CYAN, materialYouColor)
val selectedPreset = presetColors.indexOf(selectedColor)
Column(
@@ -628,7 +636,7 @@ private fun formatSliderValue(option: OptionSpec.Slider, value: Float): String {
}
private const val OPAQUE_ALPHA = -0x1000000
private const val WAZE_DEFAULT = -16747037 // #ff0075e3
private const val TIDAL_GREEN = -14749031 // #ff1ef299
private const val TIDAL_CYAN = -14549268 // #ff21feec
private fun Int.withOpaqueAlpha(): Int = (this and 0x00FFFFFF) or OPAQUE_ALPHA
@@ -218,6 +218,7 @@ fun PatchAdvancedOptionsSheet(
is OptionSpec.Color -> ColorOptionRow(
title = option.title,
color = state.color(patch, option),
defaultColor = option.default,
onColorChange = { state.setColor(patch, option, it) },
)
}
@@ -437,17 +438,24 @@ private fun ChoiceOptionRow(
private fun ColorOptionRow(
title: String,
color: Int,
defaultColor: Int,
onColorChange: (Int) -> Unit,
) {
var showPicker by rememberSaveable { mutableStateOf(false) }
val selectedColor = color.withOpaqueAlpha()
val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha()
val opaqueDefault = defaultColor.withOpaqueAlpha()
val defaultLabel = if (opaqueDefault == TIDAL_GREEN) {
stringResource(R.string.patch_color_green)
} else {
stringResource(R.string.patch_waze_color_waze_default)
}
val presets = listOf(
stringResource(R.string.patch_waze_color_waze_default),
defaultLabel,
stringResource(R.string.patch_waze_color_tidal_cyan),
stringResource(R.string.patch_waze_color_material_you),
)
val presetColors = listOf(WAZE_DEFAULT, TIDAL_CYAN, materialYouColor)
val presetColors = listOf(opaqueDefault, TIDAL_CYAN, materialYouColor)
val selectedPreset = presetColors.indexOf(selectedColor)
Column(
@@ -588,7 +596,7 @@ private fun formatSliderValue(option: OptionSpec.Slider, value: Float): String {
}
private const val OPAQUE_ALPHA = -0x1000000
private const val WAZE_DEFAULT = -16747037 // #ff0075e3
private const val TIDAL_GREEN = -14749031 // #ff1ef299
private const val TIDAL_CYAN = -14549268 // #ff21feec
private fun Int.withOpaqueAlpha(): Int = (this and 0x00FFFFFF) or OPAQUE_ALPHA
@@ -305,6 +305,7 @@
<string name="patch_waze_browse_root_title">Media Menu</string>
<string name="patch_waze_accent_color_title">Accent Color</string>
<string name="patch_waze_color_waze_default">Waze Default</string>
<string name="patch_color_green">Green</string>
<string name="patch_waze_color_tidal_cyan">TIDAL Cyan</string>
<string name="patch_waze_color_material_you">Material You</string>
<string name="patch_waze_root_auto">Auto Menu</string>