Skip to content

Commit 5eceef3

Browse files
committed
fix(android): notification buttons activate wrong quick preset
Rather than activating the quick preset assigned to slot 1, it was activating the first quick preset in the list retrieved from openscq30-lib.
1 parent ddaa086 commit 5eceef3

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

android/app/src/main/java/com/oppzippy/openscq30/features/soundcoredevice/service/DeviceService.kt

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class DeviceService : LifecycleService() {
6969
ACTION_UPDATE_WIDGET,
7070
)
7171

72-
const val INTENT_EXTRA_PRESET_ID = "com.oppzippy.openscq30.presetNumber"
72+
const val INTENT_EXTRA_PRESET_SLOT_INDEX = "com.oppzippy.openscq30.presetNumber"
7373
const val INTENT_EXTRA_SETTING_ID = "com.oppzippy.openscq30.settingId"
7474
const val INTENT_EXTRA_SETTING_VALUE = "com.oppzippy.openscq30.settingValue"
7575

@@ -118,19 +118,21 @@ class DeviceService : LifecycleService() {
118118
}
119119

120120
ACTION_QUICK_PRESET -> {
121-
val presetIndex = intent.getIntExtra(INTENT_EXTRA_PRESET_ID, 0)
121+
val presetIndex = intent.getIntExtra(INTENT_EXTRA_PRESET_SLOT_INDEX, Int.MIN_VALUE)
122+
if (presetIndex == Int.MIN_VALUE) {
123+
Log.e(TAG, "got ACTION_QUICK_PRESET, but INTENT_EXTRA_PRESET_SLOT_INDEX is not specified")
124+
return
125+
}
126+
val presetName = quickPresetNames.value.getOrNull(presetIndex) ?: return
122127
lifecycleScope.launch {
123128
connectionStatusFlow.value.let {
124129
if (it is ConnectionStatus.Connected) {
125130
val device = it.deviceManager.device
126131
session.quickPresetHandler().use { quickPresetHandler ->
127-
val quickPresets = quickPresetHandler.quickPresets(device)
128-
quickPresets.getOrNull(presetIndex)?.let { preset ->
129-
try {
130-
quickPresetHandler.activate(device, preset.name)
131-
} catch (ex: OpenScq30Exception) {
132-
Log.e(TAG, "error activating quick preset ${preset.name}", ex)
133-
}
132+
try {
133+
quickPresetHandler.activate(device, presetName)
134+
} catch (ex: OpenScq30Exception) {
135+
Log.e(TAG, "error activating quick preset $presetName", ex)
134136
}
135137
}
136138
}

android/app/src/main/java/com/oppzippy/openscq30/features/soundcoredevice/service/NotificationBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class NotificationBuilder @Inject constructor(private val context: Service) {
104104
Intent().apply {
105105
action = DeviceService.ACTION_QUICK_PRESET
106106
`package` = context.packageName
107-
putExtra(DeviceService.INTENT_EXTRA_PRESET_ID, presetId)
107+
putExtra(DeviceService.INTENT_EXTRA_PRESET_SLOT_INDEX, presetId)
108108
},
109109
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT,
110110
),

0 commit comments

Comments
 (0)