android: remove duplicate assets & add stem controls for airpods4anc

This commit is contained in:
Kavish Devar
2026-04-03 22:24:37 +05:30
parent 08484e055d
commit e3b1f4f93b

View File

@@ -18,8 +18,6 @@
package me.kavishdevar.librepods.utils package me.kavishdevar.librepods.utils
import me.kavishdevar.librepods.utils.AACPManager
import me.kavishdevar.librepods.utils.ATTManager
import me.kavishdevar.librepods.R import me.kavishdevar.librepods.R
open class AirPodsBase( open class AirPodsBase(
@@ -52,33 +50,48 @@ enum class Capability {
class AirPods: AirPodsBase( class AirPods: AirPodsBase(
modelNumber = listOf("A1523", "A1722"), modelNumber = listOf("A1523", "A1722"),
name = "AirPods 1", name = "AirPods 1",
budCaseRes = R.drawable.airpods_1, // budCaseRes = R.drawable.airpods_1
budsRes = R.drawable.airpods_1_buds, budCaseRes = R.drawable.airpods_pro_2,
leftBudsRes = R.drawable.airpods_1_left, // budsRes = R.drawable.airpods_1_buds
rightBudsRes = R.drawable.airpods_1_right, budsRes = R.drawable.airpods_pro_2_buds,
caseRes = R.drawable.airpods_1_case, // leftBudsRes = R.drawable.airpods_1_left
leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_1_right
rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_1_case
caseRes = R.drawable.airpods_pro_2_case,
capabilities = emptySet() capabilities = emptySet()
) )
class AirPods2: AirPodsBase( class AirPods2: AirPodsBase(
modelNumber = listOf("A2032", "A2031"), modelNumber = listOf("A2032", "A2031"),
name = "AirPods 2", name = "AirPods 2",
budCaseRes = R.drawable.airpods_2, // budCaseRes = R.drawable.airpods_2
budsRes = R.drawable.airpods_2_buds, budCaseRes = R.drawable.airpods_pro_2,
leftBudsRes = R.drawable.airpods_2_left, // budsRes = R.drawable.airpods_2_buds
rightBudsRes = R.drawable.airpods_2_right, budsRes = R.drawable.airpods_pro_2_buds,
caseRes = R.drawable.airpods_2_case, // leftBudsRes = R.drawable.airpods_2_left
leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_2_right
rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_2_case
caseRes = R.drawable.airpods_pro_2_case,
capabilities = emptySet() capabilities = emptySet()
) )
class AirPods3: AirPodsBase( class AirPods3: AirPodsBase(
modelNumber = listOf("A2565", "A2564"), modelNumber = listOf("A2565", "A2564"),
name = "AirPods 3", name = "AirPods 3",
budCaseRes = R.drawable.airpods_3, // budCaseRes = R.drawable.airpods_3
budsRes = R.drawable.airpods_3_buds, budCaseRes = R.drawable.airpods_pro_2,
leftBudsRes = R.drawable.airpods_3_left, // budsRes = R.drawable.airpods_3_buds
rightBudsRes = R.drawable.airpods_3_right, budsRes = R.drawable.airpods_pro_2_buds,
caseRes = R.drawable.airpods_3_case, // leftBudsRes = R.drawable.airpods_3_left
leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_3_right
rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_3_case
caseRes = R.drawable.airpods_pro_2_case,
capabilities = setOf( capabilities = setOf(
Capability.HEAD_GESTURES Capability.HEAD_GESTURES
) )
@@ -87,11 +100,16 @@ class AirPods3: AirPodsBase(
class AirPods4: AirPodsBase( class AirPods4: AirPodsBase(
modelNumber = listOf("A3053", "A3050", "A3054"), modelNumber = listOf("A3053", "A3050", "A3054"),
name = "AirPods 4", name = "AirPods 4",
budCaseRes = R.drawable.airpods_4, // budCaseRes = R.drawable.airpods_4
budsRes = R.drawable.airpods_4_buds, budCaseRes = R.drawable.airpods_pro_2,
leftBudsRes = R.drawable.airpods_4_left, // budsRes = R.drawable.airpods_4_buds
rightBudsRes = R.drawable.airpods_4_right, budsRes = R.drawable.airpods_pro_2_buds,
caseRes = R.drawable.airpods_4_case, // leftBudsRes = R.drawable.airpods_4_left
leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_4_right
rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_4_case
caseRes = R.drawable.airpods_pro_2_case,
capabilities = setOf( capabilities = setOf(
Capability.HEAD_GESTURES, Capability.HEAD_GESTURES,
Capability.SLEEP_DETECTION, Capability.SLEEP_DETECTION,
@@ -102,18 +120,24 @@ class AirPods4: AirPodsBase(
class AirPods4ANC: AirPodsBase( class AirPods4ANC: AirPodsBase(
modelNumber = listOf("A3056", "A3055", "A3057"), modelNumber = listOf("A3056", "A3055", "A3057"),
name = "AirPods 4 (ANC)", name = "AirPods 4 (ANC)",
budCaseRes = R.drawable.airpods_4, // budCaseRes = R.drawable.airpods_4
budsRes = R.drawable.airpods_4_buds, budCaseRes = R.drawable.airpods_pro_2,
leftBudsRes = R.drawable.airpods_4_left, // budsRes = R.drawable.airpods_4_buds
rightBudsRes = R.drawable.airpods_4_right, budsRes = R.drawable.airpods_pro_2_buds,
caseRes = R.drawable.airpods_4_case, // leftBudsRes = R.drawable.airpods_4_left
leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_4_right
rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_4_case
caseRes = R.drawable.airpods_pro_2_case,
capabilities = setOf( capabilities = setOf(
Capability.LISTENING_MODE, Capability.LISTENING_MODE,
Capability.CONVERSATION_AWARENESS, Capability.CONVERSATION_AWARENESS,
Capability.HEAD_GESTURES, Capability.HEAD_GESTURES,
Capability.ADAPTIVE_AUDIO, Capability.ADAPTIVE_AUDIO,
Capability.SLEEP_DETECTION, Capability.SLEEP_DETECTION,
Capability.ADAPTIVE_VOLUME Capability.ADAPTIVE_VOLUME,
Capability.STEM_CONFIG
) )
) )
@@ -121,11 +145,16 @@ class AirPodsPro1: AirPodsBase(
modelNumber = listOf("A2084", "A2083"), modelNumber = listOf("A2084", "A2083"),
name = "AirPods Pro 1", name = "AirPods Pro 1",
displayName = "AirPods Pro", displayName = "AirPods Pro",
budCaseRes = R.drawable.airpods_pro_1, // budCaseRes = R.drawable.airpods_pro_1
budsRes = R.drawable.airpods_pro_1_buds, budCaseRes = R.drawable.airpods_pro_2,
leftBudsRes = R.drawable.airpods_pro_1_left, // budsRes = R.drawable.airpods_pro_1_buds
rightBudsRes = R.drawable.airpods_pro_1_right, budsRes = R.drawable.airpods_pro_2_buds,
caseRes = R.drawable.airpods_pro_1_case, // leftBudsRes = R.drawable.airpods_pro_1_left
leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_pro_1_right
rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_pro_1_case
caseRes = R.drawable.airpods_pro_2_case,
capabilities = setOf( capabilities = setOf(
Capability.LISTENING_MODE Capability.LISTENING_MODE
) )
@@ -135,10 +164,15 @@ class AirPodsPro2Lightning: AirPodsBase(
modelNumber = listOf("A2931", "A2699", "A2698"), modelNumber = listOf("A2931", "A2699", "A2698"),
name = "AirPods Pro 2 with Magsafe Charging Case (Lightning)", name = "AirPods Pro 2 with Magsafe Charging Case (Lightning)",
displayName = "AirPods Pro", displayName = "AirPods Pro",
// budCaseRes = R.drawable.airpods_pro_2
budCaseRes = R.drawable.airpods_pro_2, budCaseRes = R.drawable.airpods_pro_2,
// budsRes = R.drawable.airpods_pro_2_buds
budsRes = R.drawable.airpods_pro_2_buds, budsRes = R.drawable.airpods_pro_2_buds,
// leftBudsRes = R.drawable.airpods_pro_2_left
leftBudsRes = R.drawable.airpods_pro_2_left, leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_pro_2_right
rightBudsRes = R.drawable.airpods_pro_2_right, rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_pro_2_case
caseRes = R.drawable.airpods_pro_2_case, caseRes = R.drawable.airpods_pro_2_case,
capabilities = setOf( capabilities = setOf(
Capability.LISTENING_MODE, Capability.LISTENING_MODE,
@@ -158,10 +192,15 @@ class AirPodsPro2USBC: AirPodsBase(
modelNumber = listOf("A3047", "A3048", "A3049"), modelNumber = listOf("A3047", "A3048", "A3049"),
name = "AirPods Pro 2 with Magsafe Charging Case (USB-C)", name = "AirPods Pro 2 with Magsafe Charging Case (USB-C)",
displayName = "AirPods Pro", displayName = "AirPods Pro",
// budCaseRes = R.drawable.airpods_pro_2
budCaseRes = R.drawable.airpods_pro_2, budCaseRes = R.drawable.airpods_pro_2,
// budsRes = R.drawable.airpods_pro_2_buds
budsRes = R.drawable.airpods_pro_2_buds, budsRes = R.drawable.airpods_pro_2_buds,
// leftBudsRes = R.drawable.airpods_pro_2_left
leftBudsRes = R.drawable.airpods_pro_2_left, leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_pro_2_right
rightBudsRes = R.drawable.airpods_pro_2_right, rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_pro_2_case
caseRes = R.drawable.airpods_pro_2_case, caseRes = R.drawable.airpods_pro_2_case,
capabilities = setOf( capabilities = setOf(
Capability.LISTENING_MODE, Capability.LISTENING_MODE,
@@ -181,11 +220,16 @@ class AirPodsPro3: AirPodsBase(
modelNumber = listOf("A3063", "A3064", "A3065"), modelNumber = listOf("A3063", "A3064", "A3065"),
name = "AirPods Pro 3", name = "AirPods Pro 3",
displayName = "AirPods Pro", displayName = "AirPods Pro",
budCaseRes = R.drawable.airpods_pro_3, // budCaseRes = R.drawable.airpods_pro_3
budsRes = R.drawable.airpods_pro_3_buds, budCaseRes = R.drawable.airpods_pro_2,
leftBudsRes = R.drawable.airpods_pro_3_left, // budsRes = R.drawable.airpods_pro_3_buds
rightBudsRes = R.drawable.airpods_pro_3_right, budsRes = R.drawable.airpods_pro_2_buds,
caseRes = R.drawable.airpods_pro_3_case, // leftBudsRes = R.drawable.airpods_pro_3_left
leftBudsRes = R.drawable.airpods_pro_2_left,
// rightBudsRes = R.drawable.airpods_pro_3_right
rightBudsRes = R.drawable.airpods_pro_2_right,
// caseRes = R.drawable.airpods_pro_3_case
caseRes = R.drawable.airpods_pro_2_case,
capabilities = setOf( capabilities = setOf(
Capability.LISTENING_MODE, Capability.LISTENING_MODE,
Capability.CONVERSATION_AWARENESS, Capability.CONVERSATION_AWARENESS,