mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-16 19:26:12 -04:00
feat(device-settings): Link AAP-unavailable card to compatibility tracker
This commit is contained in:
@@ -146,6 +146,7 @@ fun DeviceSettingsScreenHost(
|
|||||||
onShowPopUpOnConnectionChange = { vm.setShowPopUpOnConnection(it) },
|
onShowPopUpOnConnectionChange = { vm.setShowPopUpOnConnection(it) },
|
||||||
onFixMonitorMode = { vm.setMonitorModeAutomatic() },
|
onFixMonitorMode = { vm.setMonitorModeAutomatic() },
|
||||||
onOpenIssueTracker = { vm.openIssueTracker() },
|
onOpenIssueTracker = { vm.openIssueTracker() },
|
||||||
|
onOpenAapTracker = { vm.openAapCompatibilityTracker() },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,6 +182,7 @@ fun DeviceSettingsScreen(
|
|||||||
onShowPopUpOnConnectionChange: (Boolean) -> Unit = {},
|
onShowPopUpOnConnectionChange: (Boolean) -> Unit = {},
|
||||||
onFixMonitorMode: () -> Unit = {},
|
onFixMonitorMode: () -> Unit = {},
|
||||||
onOpenIssueTracker: () -> Unit = {},
|
onOpenIssueTracker: () -> Unit = {},
|
||||||
|
onOpenAapTracker: () -> Unit = {},
|
||||||
) {
|
) {
|
||||||
val device = state.device
|
val device = state.device
|
||||||
val features = device?.model?.features
|
val features = device?.model?.features
|
||||||
@@ -336,7 +338,7 @@ fun DeviceSettingsScreen(
|
|||||||
if (state.isClassicallyConnected) {
|
if (state.isClassicallyConnected) {
|
||||||
// Device is connected for audio but AAP isn't available — show passive info
|
// Device is connected for audio but AAP isn't available — show passive info
|
||||||
item("aap_unavailable_info") {
|
item("aap_unavailable_info") {
|
||||||
AapUnavailableCard()
|
AapUnavailableCard(onOpenTracker = onOpenAapTracker)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Device is nearby but not connected — prompt user to connect
|
// Device is nearby but not connected — prompt user to connect
|
||||||
|
|||||||
@@ -431,6 +431,10 @@ class DeviceSettingsViewModel @Inject constructor(
|
|||||||
webpageTool.open("https://github.com/d4rken-org/capod/issues")
|
webpageTool.open("https://github.com/d4rken-org/capod/issues")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun openAapCompatibilityTracker() {
|
||||||
|
webpageTool.open("https://github.com/d4rken-org/capod/issues/538")
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val TAG = logTag("DeviceSettings", "VM")
|
private val TAG = logTag("DeviceSettings", "VM")
|
||||||
private const val OFF_BIT = 0x01
|
private const val OFF_BIT = 0x01
|
||||||
|
|||||||
+12
-1
@@ -9,7 +9,9 @@ import androidx.compose.material3.CardDefaults
|
|||||||
import androidx.compose.material3.ElevatedCard
|
import androidx.compose.material3.ElevatedCard
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.material3.TextButton
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -18,7 +20,9 @@ import eu.darken.capod.common.compose.Preview2
|
|||||||
import eu.darken.capod.common.compose.PreviewWrapper
|
import eu.darken.capod.common.compose.PreviewWrapper
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun AapUnavailableCard() {
|
internal fun AapUnavailableCard(
|
||||||
|
onOpenTracker: () -> Unit = {},
|
||||||
|
) {
|
||||||
ElevatedCard(
|
ElevatedCard(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
@@ -36,6 +40,13 @@ internal fun AapUnavailableCard() {
|
|||||||
style = MaterialTheme.typography.bodyMedium,
|
style = MaterialTheme.typography.bodyMedium,
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
)
|
)
|
||||||
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
TextButton(
|
||||||
|
onClick = onOpenTracker,
|
||||||
|
modifier = Modifier.align(Alignment.End),
|
||||||
|
) {
|
||||||
|
Text(stringResource(R.string.device_settings_aap_unavailable_action))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -469,6 +469,7 @@
|
|||||||
<string name="device_settings_not_connected_open_settings_action">Open Bluetooth Settings</string>
|
<string name="device_settings_not_connected_open_settings_action">Open Bluetooth Settings</string>
|
||||||
<string name="device_settings_aap_unavailable_label">Advanced settings unavailable</string>
|
<string name="device_settings_aap_unavailable_label">Advanced settings unavailable</string>
|
||||||
<string name="device_settings_aap_unavailable_description">Advanced AirPods settings require a Bluetooth feature that is not available on this phone. This may be resolved by a future Android update from your device manufacturer.</string>
|
<string name="device_settings_aap_unavailable_description">Advanced AirPods settings require a Bluetooth feature that is not available on this phone. This may be resolved by a future Android update from your device manufacturer.</string>
|
||||||
|
<string name="device_settings_aap_unavailable_action">View compatibility tracker</string>
|
||||||
<string name="device_settings_category_sound_label">Sound</string>
|
<string name="device_settings_category_sound_label">Sound</string>
|
||||||
<string name="device_settings_category_controls_label">Controls</string>
|
<string name="device_settings_category_controls_label">Controls</string>
|
||||||
<string name="device_settings_nc_one_airpod_label">ANC with one pod</string>
|
<string name="device_settings_nc_one_airpod_label">ANC with one pod</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user