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>
+1 -5
View File
@@ -49,11 +49,7 @@
new-instance v1, Landroid/graphics/drawable/ColorDrawable;
sget v2, Lcom/aspiro/wamp/R$color;->green:I
invoke-virtual {v0, v2}, Landroid/content/Context;->getColor(I)I
move-result v2
const v2, __RL_SWIPE_TO_QUEUE_COLOR__
invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;-><init>(I)V
@@ -108,7 +108,7 @@
:exposure_ready
invoke-virtual {v7, v9, v1, v10, v4}, Landroid/graphics/Canvas;->clipRect(FFFF)Z
iget v11, v5, Lradiant/swipe/ComposeSwipeState;->green:I
iget v11, v5, Lradiant/swipe/ComposeSwipeState;->backgroundColor:I
invoke-virtual {v7, v11}, Landroid/graphics/Canvas;->drawColor(I)V
@@ -33,7 +33,7 @@
.field icon:Landroid/graphics/drawable/Drawable;
.field green:I
.field backgroundColor:I
# direct methods
@@ -606,13 +606,9 @@
:load_resources
iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context;
sget v1, Lcom/aspiro/wamp/R$color;->green:I
const v1, __RL_SWIPE_TO_QUEUE_COLOR__
invoke-virtual {v0, v1}, Landroid/content/Context;->getColor(I)I
move-result v1
iput v1, p0, Lradiant/swipe/ComposeSwipeState;->green:I
iput v1, p0, Lradiant/swipe/ComposeSwipeState;->backgroundColor:I
sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I
+7
View File
@@ -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"
}
]
},