mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
feat(device-settings): Enable speculative feature flags for older models
Based on Apple's official documentation, enable features for models that support them per iOS but were previously excluded in CAPod: - Gen 1/2: microphone mode (auto/left/right) - Gen 3: press speed, press hold duration, tone volume, microphone mode - Gen 4 non-ANC: press speed, press hold duration, tone volume - Max original/USB-C: listening mode cycle, allow off option
This commit is contained in:
@@ -22,6 +22,7 @@ enum class PodModel(
|
||||
Features(
|
||||
hasDualPods = true,
|
||||
hasCase = true,
|
||||
hasMicrophoneMode = true,
|
||||
),
|
||||
modelNumbers = setOf("A1523", "A1722"), // L/R earphones
|
||||
leftPodIconRes = R.drawable.device_airpods_gen1_left,
|
||||
@@ -36,6 +37,7 @@ enum class PodModel(
|
||||
Features(
|
||||
hasDualPods = true,
|
||||
hasCase = true,
|
||||
hasMicrophoneMode = true,
|
||||
),
|
||||
modelNumbers = setOf("A2031", "A2032"), // L/R earphones
|
||||
leftPodIconRes = R.drawable.device_airpods_gen1_left,
|
||||
@@ -50,6 +52,10 @@ enum class PodModel(
|
||||
Features(
|
||||
hasDualPods = true,
|
||||
hasCase = true,
|
||||
hasPressSpeed = true,
|
||||
hasPressHoldDuration = true,
|
||||
hasToneVolume = true,
|
||||
hasMicrophoneMode = true,
|
||||
),
|
||||
modelNumbers = setOf("A2564", "A2565"), // L/R earphones
|
||||
leftPodIconRes = R.drawable.device_airpods_gen3_left,
|
||||
@@ -65,6 +71,9 @@ enum class PodModel(
|
||||
hasDualPods = true,
|
||||
hasCase = true,
|
||||
hasEarDetection = true,
|
||||
hasPressSpeed = true,
|
||||
hasPressHoldDuration = true,
|
||||
hasToneVolume = true,
|
||||
hasMicrophoneMode = true,
|
||||
hasEarDetectionToggle = true,
|
||||
hasSleepDetection = true,
|
||||
@@ -241,6 +250,8 @@ enum class PodModel(
|
||||
hasPressHoldDuration = true,
|
||||
hasToneVolume = true,
|
||||
hasEarDetectionToggle = true,
|
||||
hasListeningModeCycle = true,
|
||||
hasAllowOffOption = true,
|
||||
),
|
||||
modelNumbers = setOf("A2096"), // headphones
|
||||
),
|
||||
@@ -256,6 +267,8 @@ enum class PodModel(
|
||||
hasPressHoldDuration = true,
|
||||
hasToneVolume = true,
|
||||
hasEarDetectionToggle = true,
|
||||
hasListeningModeCycle = true,
|
||||
hasAllowOffOption = true,
|
||||
),
|
||||
modelNumbers = setOf("A3184"), // headphones
|
||||
),
|
||||
|
||||
+9
-4
@@ -316,25 +316,30 @@ class DefaultAapDeviceProfileNewSettingsTest : BaseAapSessionTest() {
|
||||
f.hasSleepDetection shouldBe false
|
||||
}
|
||||
|
||||
@Test fun `Gen 4 has mic, ear detection, sleep but no stem config`() {
|
||||
@Test fun `Gen 4 has mic, ear detection, sleep, press and tone but no stem config`() {
|
||||
val f = PodModel.AIRPODS_GEN4.features
|
||||
f.hasMicrophoneMode shouldBe true
|
||||
f.hasEarDetectionToggle shouldBe true
|
||||
f.hasPressSpeed shouldBe true
|
||||
f.hasPressHoldDuration shouldBe true
|
||||
f.hasToneVolume shouldBe true
|
||||
f.hasListeningModeCycle shouldBe false
|
||||
f.hasStemConfig shouldBe false
|
||||
f.hasSleepDetection shouldBe true
|
||||
}
|
||||
|
||||
@Test fun `Max has ear detection toggle only`() {
|
||||
@Test fun `Max has ear detection toggle and listening mode cycle`() {
|
||||
val f = PodModel.AIRPODS_MAX.features
|
||||
f.hasMicrophoneMode shouldBe false
|
||||
f.hasEarDetectionToggle shouldBe true
|
||||
f.hasListeningModeCycle shouldBe true
|
||||
f.hasAllowOffOption shouldBe true
|
||||
f.hasStemConfig shouldBe false
|
||||
}
|
||||
|
||||
@Test fun `Gen 1 has no new flags`() {
|
||||
@Test fun `Gen 1 has mic mode only`() {
|
||||
val f = PodModel.AIRPODS_GEN1.features
|
||||
f.hasMicrophoneMode shouldBe false
|
||||
f.hasMicrophoneMode shouldBe true
|
||||
f.hasEarDetectionToggle shouldBe false
|
||||
f.hasListeningModeCycle shouldBe false
|
||||
f.hasStemConfig shouldBe false
|
||||
|
||||
Reference in New Issue
Block a user