From 8dc7a97c430bef25fbfbaf2380a924ec7831cf17 Mon Sep 17 00:00:00 2001 From: Kavish Devar Date: Fri, 26 Sep 2025 14:03:47 +0530 Subject: [PATCH] android: update usages for toggle --- android/app/build.gradle.kts | 9 +- android/app/libs/backdrop-debug.aar | Bin 0 -> 109112 bytes android/app/libs/backdrop-release.aar | Bin 0 -> 103294 bytes .../librepods/composables/AudioSettings.kt | 8 +- .../composables/AutomaticConnectionSwitch.kt | 182 ------ .../composables/ConnectionSettings.kt | 23 +- .../composables/EarDetectionSwitch.kt | 173 ------ .../composables/LoudSoundReductionSwitch.kt | 169 ------ .../composables/PersonalizedVolumeSwitch.kt | 163 ----- .../composables/SinglePodANCSwitch.kt | 151 ----- .../librepods/composables/StyledSwitch.kt | 218 ++++++- .../librepods/composables/StyledToggle.kt | 245 +++++++- .../composables/VolumeControlSwitch.kt | 150 ----- .../screens/AccessibilitySettingsScreen.kt | 568 ++++++++---------- .../librepods/screens/HeadTrackingScreen.kt | 3 +- .../screens/HearingAidAdjustmentsScreen.kt | 6 +- .../librepods/screens/HearingAidScreen.kt | 18 +- .../screens/TransparencySettingsScreen.kt | 13 +- android/app/src/main/res/values/strings.xml | 6 +- 19 files changed, 724 insertions(+), 1381 deletions(-) create mode 100644 android/app/libs/backdrop-debug.aar create mode 100644 android/app/libs/backdrop-release.aar delete mode 100644 android/app/src/main/java/me/kavishdevar/librepods/composables/AutomaticConnectionSwitch.kt delete mode 100644 android/app/src/main/java/me/kavishdevar/librepods/composables/EarDetectionSwitch.kt delete mode 100644 android/app/src/main/java/me/kavishdevar/librepods/composables/LoudSoundReductionSwitch.kt delete mode 100644 android/app/src/main/java/me/kavishdevar/librepods/composables/PersonalizedVolumeSwitch.kt delete mode 100644 android/app/src/main/java/me/kavishdevar/librepods/composables/SinglePodANCSwitch.kt delete mode 100644 android/app/src/main/java/me/kavishdevar/librepods/composables/VolumeControlSwitch.kt diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 2e7067e..07a253a 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -62,8 +62,11 @@ dependencies { implementation(libs.haze) implementation(libs.haze.materials) implementation(libs.androidx.dynamicanimation) - implementation(libs.androidx.compose.foundation.layout) - compileOnly(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar")))) - implementation(fileTree(mapOf("dir" to "lib", "include" to listOf("*.aar")))) debugImplementation(libs.androidx.compose.ui.tooling) + implementation(libs.androidx.compose.foundation.layout) + // compileOnly(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar")))) + // implementation(fileTree(mapOf("dir" to "lib", "include" to listOf("*.aar")))) + compileOnly(files("libs/libxposed-api-100.aar")) + debugImplementation(files("libs/backdrop-debug.aar")) + releaseImplementation(files("libs/backdrop-release.aar")) } diff --git a/android/app/libs/backdrop-debug.aar b/android/app/libs/backdrop-debug.aar new file mode 100644 index 0000000000000000000000000000000000000000..d8d5bff72349c2436a89444a4e0fdb2aaf0fd8dc GIT binary patch literal 109112 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 literal 0 HcmV?d00001 diff --git a/android/app/libs/backdrop-release.aar b/android/app/libs/backdrop-release.aar new file mode 100644 index 0000000000000000000000000000000000000000..306297bdaccf99790fcb1236582a6a86efd9e72d GIT binary patch literal 103294 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 =zV@SU#{Thd?`San@ z7AMy4RBBUH>N?&vd;`%^mRx!401AwDAnt&46{R$my3%a4 z1$4+#F`pjp;^|ta_>p)dSkf#FInJR;wq|^ICYyf7AERpKd8_dGYDQ=F&;ctKAxWbs z%&wSaNd>k%2AIEGu?TGyxdml~{ZzR%xRje8_Y6ZLeio*MEq}B*zC$)*)nlZZ&U-%o z_9G@ZBiP!plwiGpPg(DNGnv$YsU$iJOvb5j^tLO7v=IWTGP!!&*U}1`;URJe&2J|s zxH%HEaW6*)kh!IuEq$?+Hmo+M`5ac-CFU1QoKydbyTz6azw-`zSidn%>uiLEZ* zZhOE{3XzWz346E{M(;NrfRY#IxUyxnBpecE`VGUJ6--bi&Nw}U0X9qR_=h%lIxQ9) zFUG6?rgNmrcFt>a#8W%gd$HmXNO<2&@SGuc;Yhglk0Pw<5%>w)M9|tIa^dKWX~k!! zS8AuHwLg!+?Ycsq6XQGcbHSHe16jT_S_f#odw`DK{JMR@bbVHIWrM?9wAM$B<-&tS zS_T#A5CT0rD4SQ4B^WtJ7eEeQ#)3*^^OKCu#Z3DHJzhgcmaTFcEDA0!9You>Ld%vy z(OrEi#SDaDzzJ2*fMWN!>W?{K)h@U^3`~l ztbq~om5YdVz8VmQvCxLd)67dH%qp4NRqIt_vu4%QhAI@hDMCM`KhO;jxABt(IlnJc z>wMt_3O_vV68i$vM~D&euWhf1>{RR^x^ZiI?>PmEK@~!KgOdsv3Lc!9&m5t3fl11b zZc)R4q;-Z7FkOEb>ECKVm}X!`!t$>)e^_|08FsENly8T;i+6%%UNzTc;09IoibL|j z>F(7ar*LO=RAFZ8lH;I<4()(0jJTOiKB=iiu*~7>txcz;KX4!!uk^X1&wdX?TYz47?`h7mr(+NOl#A! z&Rb$RUAP3BA|>sq3?uIjIM=0B&mh5%fvaJmr(VC)_79L*_6rA_Q5ANX1KZrlrbKFpg-DyGinrT{#EV)+J* zvqolzc8fI}bdj0{4k~gBgX>vc?}9j|Ur^wMwq5>(3;)eXe&?fVa4i9^FM_IHihBoN zfrGgFvs23Qot}Hq{=l(QBn$G6|C7JBV~i>O&h_mbp1zn6<;Q_lf%S>cr~2c?bJ}I} zL0}hWl4r6jP7N4Wn|`1B!(-_=Wmm5Zq>&Ha&W0@v5lIUXc0G8KLyy9}dN}4h!a07w zz#XHtzpuiv)T{QpeK_V4;oOIWOX8O){@;u{m8+eZ+k3N*pFK9iwYL|paag{AJ2eC4 zaIjduBMz)0!~>ck#vylbM{qsnFQ5a2*!*T`lT5*V6StHhC?NxIer7MQ1GW!eBTNx{ zwQ#K1X4W6@aDFCfBZek*tXb1_aYo1k*l>~98D~QQ`N2le11up&aI{$3*y=1*#+p+O z2m{(7u5d6SfA%m!_~00sIxGBd7IOT)3I90=GQQ)h+QEW=P*H$@F#g|zpq#y_rI{tb z>3_{#ue7XPbk)$mrcGJg2{^`FGLmF}+Af5!*RqU(1XB<<$t|$QmCPmy>*Q@tZjvp? zn(b#vSt#ZIRaNSxfr5&FQWh&#EiR^7E+`ATdDgiL?$MhNs3G@#p3ZimXd9Cy+?_wt zPWOIV^Un2o+BVPindbLAGLSF;tAp@EwTL1c5iay@7UgCu6B92iKlHHBlkRY=URq0v z8V)h`I{(}BlX!QhTFxpTn1Y31OR!lj5k`-!Sja^hji5?FKEv*btg93s>BaFs+ilNp@42F zL##JY%Jubd#)EUBFS*D2MZw@|-dKIPm&DGG5;;2C8^&Ja?t

;5?)&{Qw8g905rp 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%0D8v}EqPQdd>vlz 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. - */ - -@file:OptIn(ExperimentalEncodingApi::class) - -package me.kavishdevar.librepods.composables - -import android.content.Context.MODE_PRIVATE -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import me.kavishdevar.librepods.R -import me.kavishdevar.librepods.services.ServiceManager -import me.kavishdevar.librepods.utils.AACPManager -import kotlin.io.encoding.ExperimentalEncodingApi - -@Composable -fun AutomaticConnectionSwitch() { - val sharedPreferences = LocalContext.current.getSharedPreferences("settings", MODE_PRIVATE) - val service = ServiceManager.getService()!! - - val sharedPreferenceKey = "automatic_connection_ctrl_cmd" - - val automaticConnectionEnabledValue = service.aacpManager.controlCommandStatusList.find { - it.identifier == AACPManager.Companion.ControlCommandIdentifiers.AUTOMATIC_CONNECTION_CONFIG - }?.value?.takeIf { it.isNotEmpty() }?.get(0) - - var automaticConnectionEnabled by remember { - mutableStateOf( - if (automaticConnectionEnabledValue != null) { - automaticConnectionEnabledValue == 1.toByte() - } else { - sharedPreferences.getBoolean(sharedPreferenceKey, false) - } - ) - } - - fun updateAutomaticConnection(enabled: Boolean) { - automaticConnectionEnabled = enabled - service.aacpManager.sendControlCommand( - AACPManager.Companion.ControlCommandIdentifiers.AUTOMATIC_CONNECTION_CONFIG.value, - enabled - ) - // todo: send other connected devices smartAudioRoutingDisabled or something, check packets again. - - sharedPreferences.edit() - .putBoolean(sharedPreferenceKey, enabled) - .apply() - } - - val automaticConnectionListener = object: AACPManager.ControlCommandListener { - override fun onControlCommandReceived(controlCommand: AACPManager.ControlCommand) { - if (controlCommand.identifier == AACPManager.Companion.ControlCommandIdentifiers.AUTOMATIC_CONNECTION_CONFIG.value) { - val newValue = controlCommand.value.takeIf { it.isNotEmpty() }?.get(0) - val enabled = newValue == 1.toByte() - automaticConnectionEnabled = enabled - - sharedPreferences.edit() - .putBoolean(sharedPreferenceKey, enabled) - .apply() - } - } - } - - LaunchedEffect(Unit) { - service.aacpManager.registerControlCommandListener( - AACPManager.Companion.ControlCommandIdentifiers.AUTOMATIC_CONNECTION_CONFIG, - automaticConnectionListener - ) - } - DisposableEffect(Unit) { - onDispose { - service.aacpManager.unregisterControlCommandListener( - AACPManager.Companion.ControlCommandIdentifiers.AUTOMATIC_CONNECTION_CONFIG, - automaticConnectionListener - ) - } - } - - val isDarkTheme = isSystemInDarkTheme() - val textColor = if (isDarkTheme) Color.White else Color.Black - - val isPressed = remember { mutableStateOf(false) } - - Row( - modifier = Modifier - .fillMaxWidth() - .background( - shape = RoundedCornerShape(14.dp), - color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent - ) - .padding(horizontal = 12.dp, vertical = 12.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - isPressed.value = true - tryAwaitRelease() - isPressed.value = false - } - ) - } - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updateAutomaticConnection(!automaticConnectionEnabled) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.automatically_connect), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.automatically_connect_description), - fontSize = 12.sp, - color = textColor.copy(0.6f), - lineHeight = 14.sp, - ) - } - StyledSwitch( - checked = automaticConnectionEnabled, - onCheckedChange = { - updateAutomaticConnection(it) - }, - ) - } -} - -@Preview -@Composable -fun AutomaticConnectionSwitchPreview() { - AutomaticConnectionSwitch() -} diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/ConnectionSettings.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/ConnectionSettings.kt index d0e386c..90106e4 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/ConnectionSettings.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/ConnectionSettings.kt @@ -30,9 +30,15 @@ import androidx.compose.material3.HorizontalDivider import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import kotlin.io.encoding.ExperimentalEncodingApi +import android.content.Context.MODE_PRIVATE +import me.kavishdevar.librepods.composables.StyledToggle +import me.kavishdevar.librepods.utils.AACPManager +import me.kavishdevar.librepods.R @Composable fun ConnectionSettings() { @@ -45,7 +51,13 @@ fun ConnectionSettings() { .background(backgroundColor, RoundedCornerShape(14.dp)) .padding(top = 2.dp) ) { - EarDetectionSwitch() + StyledToggle( + label = stringResource(R.string.ear_detection), + controlCommandIdentifier = AACPManager.Companion.ControlCommandIdentifiers.EAR_DETECTION_CONFIG, + sharedPreferenceKey = "automatic_ear_detection", + sharedPreferences = LocalContext.current.getSharedPreferences("settings", MODE_PRIVATE), + independent = false + ) HorizontalDivider( thickness = 1.5.dp, color = Color(0x40888888), @@ -53,7 +65,14 @@ fun ConnectionSettings() { .padding(start = 12.dp, end = 0.dp) ) - AutomaticConnectionSwitch() + StyledToggle( + label = stringResource(R.string.automatically_connect), + description = stringResource(R.string.automatically_connect_description), + controlCommandIdentifier = AACPManager.Companion.ControlCommandIdentifiers.AUTOMATIC_CONNECTION_CONFIG, + sharedPreferenceKey = "automatic_connection_ctrl_cmd", + sharedPreferences = LocalContext.current.getSharedPreferences("settings", MODE_PRIVATE), + independent = false + ) } } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/EarDetectionSwitch.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/EarDetectionSwitch.kt deleted file mode 100644 index 52eafc1..0000000 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/EarDetectionSwitch.kt +++ /dev/null @@ -1,173 +0,0 @@ -/* - * LibrePods - AirPods liberated from Apple’s ecosystem - * - * Copyright (C) 2025 LibrePods contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -@file:OptIn(ExperimentalEncodingApi::class) - -package me.kavishdevar.librepods.composables - -import android.content.Context.MODE_PRIVATE -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import me.kavishdevar.librepods.R -import me.kavishdevar.librepods.services.ServiceManager -import me.kavishdevar.librepods.utils.AACPManager -import kotlin.io.encoding.ExperimentalEncodingApi - -@Composable -fun EarDetectionSwitch() { - val sharedPreferences = LocalContext.current.getSharedPreferences("settings", MODE_PRIVATE) - val service = ServiceManager.getService()!! - - val sharedPreferenceKey = "automatic_ear_detection" - - val earDetectionEnabledValue = service.aacpManager.controlCommandStatusList.find { - it.identifier == AACPManager.Companion.ControlCommandIdentifiers.EAR_DETECTION_CONFIG - }?.value?.takeIf { it.isNotEmpty() }?.get(0) - - var earDetectionEnabled by remember { - mutableStateOf( - if (earDetectionEnabledValue != null) { - earDetectionEnabledValue == 1.toByte() - } else { - sharedPreferences.getBoolean(sharedPreferenceKey, false) - } - ) - } - - fun updateEarDetection(enabled: Boolean) { - earDetectionEnabled = enabled - service.aacpManager.sendControlCommand( - AACPManager.Companion.ControlCommandIdentifiers.EAR_DETECTION_CONFIG.value, - enabled - ) - service.setEarDetection(enabled) - - sharedPreferences.edit() - .putBoolean(sharedPreferenceKey, enabled) - .apply() - } - - val earDetectionListener = object: AACPManager.ControlCommandListener { - override fun onControlCommandReceived(controlCommand: AACPManager.ControlCommand) { - if (controlCommand.identifier == AACPManager.Companion.ControlCommandIdentifiers.EAR_DETECTION_CONFIG.value) { - val newValue = controlCommand.value.takeIf { it.isNotEmpty() }?.get(0) - val enabled = newValue == 1.toByte() - earDetectionEnabled = enabled - - sharedPreferences.edit() - .putBoolean(sharedPreferenceKey, enabled) - .apply() - } - } - } - - LaunchedEffect(Unit) { - service.aacpManager.registerControlCommandListener( - AACPManager.Companion.ControlCommandIdentifiers.EAR_DETECTION_CONFIG, - earDetectionListener - ) - } - DisposableEffect(Unit) { - onDispose { - service.aacpManager.unregisterControlCommandListener( - AACPManager.Companion.ControlCommandIdentifiers.EAR_DETECTION_CONFIG, - earDetectionListener - ) - } - } - - val isDarkTheme = isSystemInDarkTheme() - val textColor = if (isDarkTheme) Color.White else Color.Black - - val isPressed = remember { mutableStateOf(false) } - - Row( - modifier = Modifier - .fillMaxWidth() - .background( - shape = RoundedCornerShape(14.dp), - color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent - ) - .padding(horizontal = 12.dp, vertical = 12.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - isPressed.value = true - tryAwaitRelease() - isPressed.value = false - } - ) - } - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updateEarDetection(!earDetectionEnabled) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.ear_detection), - fontSize = 16.sp, - color = textColor - ) - } - StyledSwitch( - checked = earDetectionEnabled, - onCheckedChange = { - updateEarDetection(it) - } - ) - } -} - -@Preview -@Composable -fun EarDetectionSwitchPreview() { - EarDetectionSwitch() -} diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/LoudSoundReductionSwitch.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/LoudSoundReductionSwitch.kt deleted file mode 100644 index 5d31963..0000000 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/LoudSoundReductionSwitch.kt +++ /dev/null @@ -1,169 +0,0 @@ -/* - * LibrePods - AirPods liberated from Apple’s ecosystem - * - * Copyright (C) 2025 LibrePods contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -@file:OptIn(ExperimentalEncodingApi::class) - -package me.kavishdevar.librepods.composables - -import android.util.Log -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import kotlinx.coroutines.delay -import me.kavishdevar.librepods.R -import me.kavishdevar.librepods.services.ServiceManager -import me.kavishdevar.librepods.utils.ATTHandles -import kotlin.io.encoding.ExperimentalEncodingApi - -@Composable -fun LoudSoundReductionSwitch() { - var loudSoundReductionEnabled by remember { - mutableStateOf( - false - ) - } - val attManager = ServiceManager.getService()?.attManager ?: return - LaunchedEffect(Unit) { - attManager.enableNotifications(ATTHandles.LOUD_SOUND_REDUCTION) - - var parsed = false - for (attempt in 1..3) { - try { - val data = attManager.read(ATTHandles.LOUD_SOUND_REDUCTION) - loudSoundReductionEnabled = data[0].toInt() != 0 - Log.d("LoudSoundReduction", "Read attempt $attempt: enabled=${loudSoundReductionEnabled}") - parsed = true - break - } catch (e: Exception) { - Log.w("LoudSoundReduction", "Read attempt $attempt failed: ${e.message}") - } - delay(200) - } - if (!parsed) { - Log.d("LoudSoundReduction", "Failed to read loud sound reduction state after 3 attempts") - } - } - - LaunchedEffect(loudSoundReductionEnabled) { - if (attManager.socket?.isConnected != true) return@LaunchedEffect - attManager.write(ATTHandles.LOUD_SOUND_REDUCTION, if (loudSoundReductionEnabled) byteArrayOf(1) else byteArrayOf(0)) - } - - val loudSoundListener = remember { - object : (ByteArray) -> Unit { - override fun invoke(value: ByteArray) { - if (value.isNotEmpty()) { - loudSoundReductionEnabled = value[0].toInt() != 0 - Log.d("LoudSoundReduction", "Updated from notification: enabled=$loudSoundReductionEnabled") - } else { - Log.w("LoudSoundReduction", "Empty value in notification") - } - } - } - } - - LaunchedEffect(Unit) { - attManager.registerListener(ATTHandles.LOUD_SOUND_REDUCTION, loudSoundListener) - } - - DisposableEffect(Unit) { - onDispose { - attManager.unregisterListener(ATTHandles.LOUD_SOUND_REDUCTION, loudSoundListener) - } - } - - val isDarkTheme = isSystemInDarkTheme() - val textColor = if (isDarkTheme) Color.White else Color.Black - - val isPressed = remember { mutableStateOf(false) } - - Row( - modifier = Modifier - .fillMaxWidth() - .background( - shape = RoundedCornerShape(14.dp), - color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent - ) - .padding(horizontal = 12.dp, vertical = 12.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - isPressed.value = true - tryAwaitRelease() - isPressed.value = false - } - ) - } - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - loudSoundReductionEnabled = !loudSoundReductionEnabled - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.loud_sound_reduction), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.loud_sound_reduction_description), - fontSize = 12.sp, - color = textColor.copy(0.6f), - lineHeight = 14.sp, - ) - } - StyledSwitch( - checked = loudSoundReductionEnabled, - onCheckedChange = { - loudSoundReductionEnabled = it - }, - ) - } -} diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/PersonalizedVolumeSwitch.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/PersonalizedVolumeSwitch.kt deleted file mode 100644 index ef72c92..0000000 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/PersonalizedVolumeSwitch.kt +++ /dev/null @@ -1,163 +0,0 @@ - /* - * LibrePods - AirPods liberated from Apple’s ecosystem - * - * Copyright (C) 2025 LibrePods contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -@file:OptIn(ExperimentalEncodingApi::class) - -package me.kavishdevar.librepods.composables - -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import me.kavishdevar.librepods.R -import me.kavishdevar.librepods.services.ServiceManager -import me.kavishdevar.librepods.utils.AACPManager -import kotlin.io.encoding.ExperimentalEncodingApi - - @Composable -fun PersonalizedVolumeSwitch() { - val service = ServiceManager.getService()!! - - val adaptiveVolumeEnabledValue = service.aacpManager.controlCommandStatusList.find { - it.identifier == AACPManager.Companion.ControlCommandIdentifiers.ADAPTIVE_VOLUME_CONFIG - }?.value?.takeIf { it.isNotEmpty() }?.get(0) - - var adaptiveVolumeEnabled by remember { - mutableStateOf( - adaptiveVolumeEnabledValue == 1.toByte() - ) - } - - fun updatePersonalizedVolume(enabled: Boolean) { - adaptiveVolumeEnabled = enabled - service.aacpManager.sendControlCommand( - AACPManager.Companion.ControlCommandIdentifiers.ADAPTIVE_VOLUME_CONFIG.value, - enabled - ) - } - - val adaptiveVolumeListener = object: AACPManager.ControlCommandListener { - override fun onControlCommandReceived(controlCommand: AACPManager.ControlCommand) { - if (controlCommand.identifier == AACPManager.Companion.ControlCommandIdentifiers.ADAPTIVE_VOLUME_CONFIG.value) { - val newValue = controlCommand.value.takeIf { it.isNotEmpty() }?.get(0) - adaptiveVolumeEnabled = newValue == 1.toByte() - } - } - } - - LaunchedEffect(Unit) { - service.aacpManager.registerControlCommandListener( - AACPManager.Companion.ControlCommandIdentifiers.ADAPTIVE_VOLUME_CONFIG, - adaptiveVolumeListener - ) - } - DisposableEffect(Unit) { - onDispose { - service.aacpManager.unregisterControlCommandListener( - AACPManager.Companion.ControlCommandIdentifiers.ADAPTIVE_VOLUME_CONFIG, - adaptiveVolumeListener - ) - } - } - - val isDarkTheme = isSystemInDarkTheme() - val textColor = if (isDarkTheme) Color.White else Color.Black - - val isPressed = remember { mutableStateOf(false) } - - Row( - modifier = Modifier - .fillMaxWidth() - .background( - shape = RoundedCornerShape(14.dp), - color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent - ) - .padding(horizontal = 12.dp, vertical = 12.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - isPressed.value = true - tryAwaitRelease() - isPressed.value = false - } - ) - } - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updatePersonalizedVolume(!adaptiveVolumeEnabled) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.personalized_volume), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.personalized_volume_description), - fontSize = 12.sp, - color = textColor.copy(0.6f), - lineHeight = 14.sp, - ) - } - StyledSwitch( - checked = adaptiveVolumeEnabled, - onCheckedChange = { - updatePersonalizedVolume(it) - }, - ) - } -} - -@Preview -@Composable -fun PersonalizedVolumeSwitchPreview() { - PersonalizedVolumeSwitch() -} diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/SinglePodANCSwitch.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/SinglePodANCSwitch.kt deleted file mode 100644 index 4818bf8..0000000 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/SinglePodANCSwitch.kt +++ /dev/null @@ -1,151 +0,0 @@ -/* - * LibrePods - AirPods liberated from Apple’s ecosystem - * - * Copyright (C) 2025 LibrePods contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -@file:OptIn(ExperimentalEncodingApi::class) - -package me.kavishdevar.librepods.composables - -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import me.kavishdevar.librepods.services.ServiceManager -import me.kavishdevar.librepods.utils.AACPManager -import kotlin.io.encoding.ExperimentalEncodingApi - -@Composable -fun SinglePodANCSwitch() { - val service = ServiceManager.getService()!! - val singleANCEnabledValue = service.aacpManager.controlCommandStatusList.find { - it.identifier == AACPManager.Companion.ControlCommandIdentifiers.ONE_BUD_ANC_MODE - }?.value?.takeIf { it.isNotEmpty() }?.get(0) - var singleANCEnabled by remember { - mutableStateOf( - singleANCEnabledValue == 1.toByte() - ) - } - val listener = object : AACPManager.ControlCommandListener { - override fun onControlCommandReceived(controlCommand: AACPManager.ControlCommand) { - if (controlCommand.identifier == AACPManager.Companion.ControlCommandIdentifiers.ONE_BUD_ANC_MODE.value) { - val newValue = controlCommand.value.takeIf { it.isNotEmpty() }?.get(0) - singleANCEnabled = newValue == 1.toByte() - } - } - } - LaunchedEffect(Unit) { - service.aacpManager.registerControlCommandListener(AACPManager.Companion.ControlCommandIdentifiers.ONE_BUD_ANC_MODE, listener) - } - DisposableEffect(Unit) { - onDispose { - service.aacpManager.unregisterControlCommandListener(AACPManager.Companion.ControlCommandIdentifiers.ONE_BUD_ANC_MODE, listener) - } - } - - fun updateSingleEnabled(enabled: Boolean) { - singleANCEnabled = enabled - service.aacpManager.sendControlCommand( - AACPManager.Companion.ControlCommandIdentifiers.ONE_BUD_ANC_MODE.value, - enabled - ) - } - - val isDarkTheme = isSystemInDarkTheme() - val textColor = if (isDarkTheme) Color.White else Color.Black - - val isPressed = remember { mutableStateOf(false) } - - Row( - modifier = Modifier - .fillMaxWidth() - .background( - shape = RoundedCornerShape(14.dp), - color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent - ) - .padding(horizontal = 12.dp, vertical = 12.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - isPressed.value = true - tryAwaitRelease() - isPressed.value = false - } - ) - } - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updateSingleEnabled(!singleANCEnabled) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(end = 4.dp) - ) { - Text( - text = "Noise Cancellation with Single AirPod", - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = "Allow AirPods to be put in noise cancellation mode when only one AirPods is in your ear.", - fontSize = 12.sp, - color = textColor.copy(0.6f), - lineHeight = 14.sp, - ) - } - StyledSwitch( - checked = singleANCEnabled, - onCheckedChange = { - updateSingleEnabled(it) - }, - ) - } -} - -@Preview -@Composable -fun SinglePodANCSwitchPreview() { - SinglePodANCSwitch() -} diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledSwitch.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledSwitch.kt index 5b01cc5..4786c0f 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledSwitch.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledSwitch.kt @@ -18,26 +18,58 @@ package me.kavishdevar.librepods.composables -import androidx.compose.animation.core.animateDpAsState +import android.content.res.Configuration +import androidx.compose.animation.Animatable +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.FastOutSlowInEasing +import androidx.compose.animation.core.spring +import androidx.compose.animation.core.tween import androidx.compose.foundation.background -import androidx.compose.foundation.clickable +import androidx.compose.foundation.gestures.Orientation +import androidx.compose.foundation.gestures.draggable +import androidx.compose.foundation.gestures.rememberDraggableState import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width -import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.BlendMode +import androidx.compose.ui.graphics.BlurEffect import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.TileMode +import androidx.compose.ui.graphics.drawOutline +import androidx.compose.ui.graphics.drawscope.translate +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.graphics.layer.CompositingStrategy +import androidx.compose.ui.graphics.layer.drawLayer +import androidx.compose.ui.graphics.rememberGraphicsLayer +import androidx.compose.ui.layout.onSizeChanged +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.compose.ui.util.fastCoerceIn +import androidx.compose.ui.util.lerp +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberCombinedBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop +import com.kyant.backdrop.drawBackdrop +import com.kyant.backdrop.effects.refractionWithDispersion +import com.kyant.backdrop.highlight.Highlight +import com.kyant.backdrop.shadow.Shadow +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch @Composable fun StyledSwitch( @@ -47,42 +79,172 @@ fun StyledSwitch( ) { val isDarkTheme = isSystemInDarkTheme() - val thumbColor = Color.White - val trackColor = if (enabled) ( - if (isDarkTheme) { - if (checked) Color(0xFF34C759) else Color(0xFF5B5B5E) - } else { - if (checked) Color(0xFF34C759) else Color(0xFFD1D1D6) - } - ) else { - if (isDarkTheme) Color(0xFF5B5B5E) else Color(0xFFD1D1D6) + val onColor = if (enabled) Color(0xFF34C759) else if (isDarkTheme) Color(0xFF5B5B5E) else Color(0xFFD1D1D6) + val offColor = if (enabled) if (isDarkTheme) Color(0xFF5B5B5E) else Color(0xFFD1D1D6) else if (isDarkTheme) Color(0xFF5B5B5E) else Color(0xFFD1D1D6) + + val trackWidth = 70.dp + val trackHeight = 31.dp + val thumbHeight = 27.dp + val thumbWidth = 36.dp + + val backdrop = rememberLayerBackdrop() + val switchBackdrop = rememberLayerBackdrop() + val fraction by remember { + derivedStateOf { if (checked) 1f else 0f } } + val animatedFraction = remember { Animatable(fraction) } + val trackWidthPx = remember { mutableFloatStateOf(0f) } + val density = LocalDensity.current + val animationScope = rememberCoroutineScope() + val progressAnimationSpec = spring(0.5f, 300f, 0.001f) + val colorAnimationSpec = tween(300, easing = FastOutSlowInEasing) + val progressAnimation = remember { Animatable(0f) } + val innerShadowLayer = rememberGraphicsLayer().apply { + compositingStrategy = CompositingStrategy.Offscreen + } + val animatedTrackColor = remember { Animatable(if (checked) onColor else offColor) } - - val thumbOffsetX by animateDpAsState(targetValue = if (checked) 20.dp else 0.dp, label = "Test") + LaunchedEffect(checked) { + val targetColor = if (checked) onColor else offColor + animatedTrackColor.animateTo(targetColor, colorAnimationSpec) + val targetFrac = if (checked) 1f else 0f + animatedFraction.animateTo(targetFrac, progressAnimationSpec) + } Box( modifier = Modifier - .width(51.dp) - .height(31.dp) - .clip(RoundedCornerShape(15.dp)) - .background(trackColor) // Dynamic track background - .padding(horizontal = 3.dp), + .width(trackWidth) + .height(trackHeight), contentAlignment = Alignment.CenterStart ) { Box( modifier = Modifier - .offset(x = thumbOffsetX) - .size(27.dp) - .clip(CircleShape) - .background(thumbColor) - .clickable { if (enabled) onCheckedChange(!checked) } + .layerBackdrop(switchBackdrop) + .clip(RoundedCornerShape(trackHeight / 2)) + .background(animatedTrackColor.value) + .width(trackWidth) + .height(trackHeight) + .onSizeChanged { trackWidthPx.floatValue = it.width.toFloat() } + ) + + Box( + modifier = Modifier + .padding(horizontal = 2.dp) + .graphicsLayer { + translationX = animatedFraction.value * (trackWidthPx.floatValue - with(density) { thumbWidth.toPx() + 4.dp.toPx() }) + } + .then(if (enabled) Modifier.draggable( + rememberDraggableState { delta -> + if (trackWidthPx.floatValue > 0f) { + val newFraction = (animatedFraction.value + delta / trackWidthPx.floatValue).fastCoerceIn(0f, 1f) + animationScope.launch { + animatedFraction.snapTo(newFraction) + } + val newChecked = newFraction >= 0.5f + if (newChecked != checked) { + onCheckedChange(newChecked) + } + } + }, + Orientation.Horizontal, + startDragImmediately = true, + onDragStarted = { + animationScope.launch { + progressAnimation.animateTo(1f, progressAnimationSpec) + } + }, + onDragStopped = { + animationScope.launch { + progressAnimation.animateTo(0f, progressAnimationSpec) + val snappedFraction = if (animatedFraction.value >= 0.5f) 1f else 0f + animatedFraction.animateTo(snappedFraction, progressAnimationSpec) + onCheckedChange(snappedFraction >= 0.5f) + } + } + ) else Modifier) + .drawBackdrop( + rememberCombinedBackdrop(backdrop, switchBackdrop), + { RoundedCornerShape(thumbHeight / 2) }, + highlight = { + val progress = progressAnimation.value + Highlight.AmbientDefault.copy(alpha = progress) + }, + shadow = { + Shadow( + radius = 4f.dp, + color = Color.Black.copy(0.05f) + ) + }, + layer = { + val progress = progressAnimation.value + val scale = lerp(1f, 2f, progress) + scaleX = scale + scaleY = scale + }, + onDrawSurface = { + val progress = progressAnimation.value.fastCoerceIn(0f, 1f) + + val shape = RoundedCornerShape(thumbHeight / 2) + val outline = shape.createOutline(size, layoutDirection, this) + val innerShadowOffset = 4f.dp.toPx() + val innerShadowBlurRadius = 4f.dp.toPx() + + innerShadowLayer.alpha = progress + innerShadowLayer.renderEffect = + BlurEffect( + innerShadowBlurRadius, + innerShadowBlurRadius, + TileMode.Decal + ) + innerShadowLayer.record { + drawOutline(outline, Color.Black.copy(0.2f)) + translate(0f, innerShadowOffset) { + drawOutline( + outline, + Color.Transparent, + blendMode = BlendMode.Clear + ) + } + } + drawLayer(innerShadowLayer) + + drawRect(Color.White.copy(1f - progress)) + }, + effects = { + refractionWithDispersion(6f.dp.toPx(), size.height / 2f) + } + ) + .width(thumbWidth) + .height(thumbHeight) ) } } -@Preview +@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES) @Composable fun StyledSwitchPreview() { - StyledSwitch(checked = true, onCheckedChange = {}) + val isDarkTheme = isSystemInDarkTheme() + val backgroundColor = if (isDarkTheme) Color(0xFF000000) else Color(0xFFF2F2F7) + Box( + modifier = Modifier + .background(backgroundColor) + .width(100.dp) + .height(100.dp), + contentAlignment = Alignment.Center + ) { + val checked = remember { mutableStateOf(true) } + StyledSwitch( + checked = checked.value, + onCheckedChange = { + checked.value = it + }, + enabled = true + ) + LaunchedEffect(Unit) { + delay(1000) + checked.value = false + delay(1000) + checked.value = true + } + } } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledToggle.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledToggle.kt index 896c4a3..99567b9 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledToggle.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledToggle.kt @@ -59,9 +59,11 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.content.edit +import kotlinx.coroutines.delay import me.kavishdevar.librepods.R import me.kavishdevar.librepods.services.ServiceManager import me.kavishdevar.librepods.utils.AACPManager +import me.kavishdevar.librepods.utils.ATTHandles import kotlin.io.encoding.ExperimentalEncodingApi @Composable @@ -72,7 +74,8 @@ fun StyledToggle( checkedState: MutableState = remember { mutableStateOf(false) } , sharedPreferenceKey: String? = null, sharedPreferences: SharedPreferences? = null, - independent: Boolean = true + independent: Boolean = true, + onCheckedChange: ((Boolean) -> Unit)? = null, ) { val isDarkTheme = isSystemInDarkTheme() val textColor = if (isDarkTheme) Color.White else Color.Black @@ -88,6 +91,7 @@ fun StyledToggle( } sharedPreferences.edit { putBoolean(sharedPreferenceKey, checked) } } + onCheckedChange?.invoke(checked) } if (independent) { @@ -100,7 +104,7 @@ fun StyledToggle( fontWeight = FontWeight.Light, color = textColor.copy(alpha = 0.6f) ), - modifier = Modifier.padding(8.dp, bottom = 2.dp) + modifier = Modifier.padding(8.dp, bottom = 4.dp) ) } Box( @@ -232,7 +236,10 @@ fun StyledToggle( label: String, description: String? = null, controlCommandIdentifier: AACPManager.Companion.ControlCommandIdentifiers, - independent: Boolean = true + independent: Boolean = true, + sharedPreferenceKey: String? = null, + sharedPreferences: SharedPreferences? = null, + onCheckedChange: ((Boolean) -> Unit)? = null, ) { val service = ServiceManager.getService() ?: return val isDarkTheme = isSystemInDarkTheme() @@ -243,9 +250,19 @@ fun StyledToggle( var checked by remember { mutableStateOf(checkedValue == 1.toByte()) } var backgroundColor by remember { mutableStateOf(if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) } val animatedBackgroundColor by animateColorAsState(targetValue = backgroundColor, animationSpec = tween(durationMillis = 500)) - + if (sharedPreferenceKey != null && sharedPreferences != null) { + checked = sharedPreferences.getBoolean(sharedPreferenceKey, checked) + } fun cb() { service.aacpManager.sendControlCommand(identifier = controlCommandIdentifier.value, value = checked) + if (sharedPreferences != null) { + if (sharedPreferenceKey == null) { + Log.e("StyledToggle", "SharedPreferenceKey is null but SharedPreferences is provided.") + return + } + sharedPreferences.edit { putBoolean(sharedPreferenceKey, checked) } + } + onCheckedChange?.invoke(checked) } val listener = remember { @@ -277,7 +294,225 @@ fun StyledToggle( fontWeight = FontWeight.Light, color = textColor.copy(alpha = 0.6f) ), - modifier = Modifier.padding(8.dp, bottom = 2.dp) + modifier = Modifier.padding(8.dp, bottom = 4.dp) + ) + } + Box( + modifier = Modifier + .background(animatedBackgroundColor, RoundedCornerShape(14.dp)) + .pointerInput(Unit) { + detectTapGestures( + onPress = { + backgroundColor = + if (isDarkTheme) Color(0x40888888) else Color(0x40D9D9D9) + tryAwaitRelease() + backgroundColor = + if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) + }, + onTap = { + checked = !checked + cb() + } + ) + } + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .height(55.dp) + .padding(horizontal = 12.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = label, + modifier = Modifier.weight(1f), + style = TextStyle( + fontSize = 16.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + fontWeight = FontWeight.Normal, + color = textColor + ) + ) + StyledSwitch( + checked = checked, + onCheckedChange = { + checked = it + cb() + } + ) + } + } + if (description != null) { + Spacer(modifier = Modifier.height(8.dp)) + Box( + modifier = Modifier + .padding(horizontal = 8.dp) + .background(if (isDarkTheme) Color(0xFF000000) else Color(0xFFF2F2F7)) + ) { + Text( + text = description, + style = TextStyle( + fontSize = 12.sp, + fontWeight = FontWeight.Light, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ) + ) + } + } + } + } else { + val isPressed = remember { mutableStateOf(false) } + Row( + modifier = Modifier + .fillMaxWidth() + .background( + shape = RoundedCornerShape(14.dp), + color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent + ) + .padding(horizontal = 12.dp, vertical = 12.dp) + .pointerInput(Unit) { + detectTapGestures( + onPress = { + isPressed.value = true + tryAwaitRelease() + isPressed.value = false + } + ) + } + .clickable( + indication = null, + interactionSource = remember { MutableInteractionSource() } + ) { + checked = !checked + cb() + }, + verticalAlignment = Alignment.CenterVertically + ) { + Column( + modifier = Modifier + .weight(1f) + .padding(end = 4.dp) + ) { + Text( + text = label, + fontSize = 16.sp, + color = textColor + ) + Spacer(modifier = Modifier.height(4.dp)) + if (description != null) { + Text( + text = description, + fontSize = 12.sp, + color = textColor.copy(0.6f), + lineHeight = 14.sp, + ) + } + } + StyledSwitch( + checked = checked, + onCheckedChange = { + checked = it + cb() + } + ) + } + } +} + +@Composable +fun StyledToggle( + title: String? = null, + label: String, + description: String? = null, + attHandle: ATTHandles, + independent: Boolean = true, + sharedPreferenceKey: String? = null, + sharedPreferences: SharedPreferences? = null, + onCheckedChange: ((Boolean) -> Unit)? = null, +) { + val attManager = ServiceManager.getService()?.attManager ?: return + val isDarkTheme = isSystemInDarkTheme() + val textColor = if (isDarkTheme) Color.White else Color.Black + var checked by remember { mutableStateOf(false) } + var backgroundColor by remember { mutableStateOf(if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) } + val animatedBackgroundColor by animateColorAsState(targetValue = backgroundColor, animationSpec = tween(durationMillis = 500)) + + LaunchedEffect(Unit) { + attManager.enableNotifications(attHandle) + + var parsed = false + for (attempt in 1..3) { + try { + val data = attManager.read(attHandle) + checked = data[0].toInt() != 0 + Log.d("StyledToggle", "Read attempt $attempt for $label: enabled=$checked") + parsed = true + break + } catch (e: Exception) { + Log.w("StyledToggle", "Read attempt $attempt for $label failed: ${e.message}") + } + delay(200) + } + if (!parsed) { + Log.d("StyledToggle", "Failed to read state for $label after 3 attempts") + } + } + + if (sharedPreferenceKey != null && sharedPreferences != null) { + checked = sharedPreferences.getBoolean(sharedPreferenceKey, checked) + } + + fun cb() { + if (sharedPreferences != null) { + if (sharedPreferenceKey == null) { + Log.e("StyledToggle", "SharedPreferenceKey is null but SharedPreferences is provided.") + return + } + sharedPreferences.edit { putBoolean(sharedPreferenceKey, checked) } + } + onCheckedChange?.invoke(checked) + } + + LaunchedEffect(checked) { + if (attManager.socket?.isConnected != true) return@LaunchedEffect + attManager.write(attHandle, if (checked) byteArrayOf(1) else byteArrayOf(0)) + } + + val listener = remember { + object : (ByteArray) -> Unit { + override fun invoke(value: ByteArray) { + if (value.isNotEmpty()) { + checked = value[0].toInt() != 0 + Log.d("StyledToggle", "Updated from notification for $label: enabled=$checked") + } else { + Log.w("StyledToggle", "Empty value in notification for $label") + } + } + } + } + + LaunchedEffect(Unit) { + attManager.registerListener(attHandle, listener) + } + + DisposableEffect(Unit) { + onDispose { + attManager.unregisterListener(attHandle, listener) + } + } + + if (independent) { + Column(modifier = Modifier.padding(vertical = 8.dp)) { + if (title != null) { + Text( + text = title, + style = TextStyle( + fontSize = 14.sp, + fontWeight = FontWeight.Light, + color = textColor.copy(alpha = 0.6f) + ), + modifier = Modifier.padding(8.dp, bottom = 4.dp) ) } Box( diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/VolumeControlSwitch.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/VolumeControlSwitch.kt deleted file mode 100644 index 1c8b622..0000000 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/VolumeControlSwitch.kt +++ /dev/null @@ -1,150 +0,0 @@ -/* - * LibrePods - AirPods liberated from Apple’s ecosystem - * - * Copyright (C) 2025 LibrePods contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -@file:OptIn(ExperimentalEncodingApi::class) - -package me.kavishdevar.librepods.composables - -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import me.kavishdevar.librepods.services.ServiceManager -import me.kavishdevar.librepods.utils.AACPManager -import kotlin.io.encoding.ExperimentalEncodingApi - -@Composable -fun VolumeControlSwitch() { - val service = ServiceManager.getService()!! - val volumeControlEnabledValue = service.aacpManager.controlCommandStatusList.find { - it.identifier == AACPManager.Companion.ControlCommandIdentifiers.VOLUME_SWIPE_MODE - }?.value?.takeIf { it.isNotEmpty() }?.get(0) - var volumeControlEnabled by remember { - mutableStateOf( - volumeControlEnabledValue == 1.toByte() - ) - } - val listener = object : AACPManager.ControlCommandListener { - override fun onControlCommandReceived(controlCommand: AACPManager.ControlCommand) { - if (controlCommand.identifier == AACPManager.Companion.ControlCommandIdentifiers.VOLUME_SWIPE_MODE.value) { - val newValue = controlCommand.value.takeIf { it.isNotEmpty() }?.get(0) - volumeControlEnabled = newValue == 1.toByte() - } - } - } - LaunchedEffect(Unit) { - service.aacpManager.registerControlCommandListener(AACPManager.Companion.ControlCommandIdentifiers.VOLUME_SWIPE_MODE, listener) - } - DisposableEffect(Unit) { - onDispose { - service.aacpManager.unregisterControlCommandListener(AACPManager.Companion.ControlCommandIdentifiers.VOLUME_SWIPE_MODE, listener) - } - } - fun updateVolumeControlEnabled(enabled: Boolean) { - volumeControlEnabled = enabled - service.aacpManager.sendControlCommand( - AACPManager.Companion.ControlCommandIdentifiers.VOLUME_SWIPE_MODE.value, - enabled - ) - } - - val isDarkTheme = isSystemInDarkTheme() - val textColor = if (isDarkTheme) Color.White else Color.Black - - val isPressed = remember { mutableStateOf(false) } - - Row( - modifier = Modifier - .fillMaxWidth() - .background( - shape = RoundedCornerShape(14.dp), - color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent - ) - .padding(horizontal = 12.dp, vertical = 12.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - isPressed.value = true - tryAwaitRelease() - isPressed.value = false - } - ) - } - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updateVolumeControlEnabled(!volumeControlEnabled) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(end = 4.dp) - ) { - Text( - text = "Volume Control", - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = "Adjust the volume by swiping up or down on the sensor located on the AirPods Pro stem.", - fontSize = 12.sp, - color = textColor.copy(0.6f), - lineHeight = 14.sp, - ) - } - StyledSwitch( - checked = volumeControlEnabled, - onCheckedChange = { - updateVolumeControlEnabled(it) - }, - ) - } -} - -@Preview -@Composable -fun VolumeControlSwitchPreview() { - VolumeControlSwitch() -} diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/AccessibilitySettingsScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/AccessibilitySettingsScreen.kt index d5615c3..1e8a1c0 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/AccessibilitySettingsScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/AccessibilitySettingsScreen.kt @@ -62,6 +62,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.scale import androidx.compose.ui.draw.shadow import androidx.compose.ui.geometry.Offset @@ -87,17 +88,15 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.delay import kotlinx.coroutines.launch import me.kavishdevar.librepods.R -import me.kavishdevar.librepods.composables.LoudSoundReductionSwitch import me.kavishdevar.librepods.composables.NavigationButton -import me.kavishdevar.librepods.composables.SinglePodANCSwitch import me.kavishdevar.librepods.composables.StyledDropdown import me.kavishdevar.librepods.composables.StyledIconButton import me.kavishdevar.librepods.composables.StyledScaffold import me.kavishdevar.librepods.composables.StyledSlider -import me.kavishdevar.librepods.composables.StyledSwitch -import me.kavishdevar.librepods.composables.VolumeControlSwitch +import me.kavishdevar.librepods.composables.StyledToggle import me.kavishdevar.librepods.services.ServiceManager import me.kavishdevar.librepods.utils.AACPManager +import me.kavishdevar.librepods.utils.ATTHandles import me.kavishdevar.librepods.utils.RadareOffsetFinder import kotlin.io.encoding.ExperimentalEncodingApi @@ -334,8 +333,67 @@ fun AccessibilitySettingsScreen(navController: NavController) { } } + DropdownMenuComponent( + label = stringResource(R.string.press_speed), + description = stringResource(R.string.press_speed_description), + options = pressSpeedOptions.values.toList(), + selectedOption = selectedPressSpeed?: "Default", + onOptionSelected = { newValue -> + selectedPressSpeed = newValue + aacpManager?.sendControlCommand( + identifier = AACPManager.Companion.ControlCommandIdentifiers.DOUBLE_CLICK_INTERVAL.value, + value = pressSpeedOptions.filterValues { it == newValue }.keys.firstOrNull() + ?: 0.toByte() + ) + }, + textColor = textColor, + hazeState = hazeState, + independent = true + ) + + DropdownMenuComponent( + label = stringResource(R.string.press_and_hold_duration), + description = stringResource(R.string.press_and_hold_duration_description), + options = pressAndHoldDurationOptions.values.toList(), + selectedOption = selectedPressAndHoldDuration?: "Default", + onOptionSelected = { newValue -> + selectedPressAndHoldDuration = newValue + aacpManager?.sendControlCommand( + identifier = AACPManager.Companion.ControlCommandIdentifiers.CLICK_HOLD_INTERVAL.value, + value = pressAndHoldDurationOptions.filterValues { it == newValue }.keys.firstOrNull() + ?: 0.toByte() + ) + }, + textColor = textColor, + hazeState = hazeState, + independent = true + ) + + StyledToggle( + title = stringResource(R.string.noise_control).uppercase(), + label = stringResource(R.string.noise_cancellation_single_airpod), + description = stringResource(R.string.noise_cancellation_single_airpod_description), + controlCommandIdentifier = AACPManager.Companion.ControlCommandIdentifiers.ONE_BUD_ANC_MODE, + independent = true, + ) + + StyledToggle( + label = stringResource(R.string.loud_sound_reduction), + description = stringResource(R.string.loud_sound_reduction_description), + attHandle = ATTHandles.LOUD_SOUND_REDUCTION + ) + + if (!hearingAidEnabled.value&& isSdpOffsetAvailable.value) { + NavigationButton( + to = "transparency_customization", + name = stringResource(R.string.customize_transparency_mode), + navController = navController + ) + } + StyledSlider( label = stringResource(R.string.tone_volume).uppercase(), + description = stringResource(R.string.tone_volume_description), mutableFloatState = toneVolumeValue, onValueChange = { toneVolumeValue.floatValue = it @@ -347,114 +405,25 @@ fun AccessibilitySettingsScreen(navController: NavController) { independent = true ) - Column( - modifier = Modifier - .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) - .padding(top = 2.dp), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.SpaceBetween - ) { - SinglePodANCSwitch() - HorizontalDivider( - thickness = 1.5.dp, - color = Color(0x40888888), - modifier = Modifier.padding(start = 12.dp, end = 0.dp) - ) - - VolumeControlSwitch() - HorizontalDivider( - thickness = 1.5.dp, - color = Color(0x40888888), - modifier = Modifier.padding(start = 12.dp, end = 0.dp) - ) - - LoudSoundReductionSwitch() - HorizontalDivider( - thickness = 1.5.dp, - color = Color(0x40888888), - modifier = Modifier.padding(start = 12.dp, end = 0.dp) - ) - - DropdownMenuComponent( - label = stringResource(R.string.press_speed), - options = listOf( - stringResource(R.string.default_option), - stringResource(R.string.slower), - stringResource(R.string.slowest) - ), - selectedOption = selectedPressSpeed.toString(), - onOptionSelected = { newValue -> - selectedPressSpeed = newValue - aacpManager?.sendControlCommand( - identifier = AACPManager.Companion.ControlCommandIdentifiers.DOUBLE_CLICK_INTERVAL.value, - value = pressSpeedOptions.filterValues { it == newValue }.keys.firstOrNull() - ?: 0.toByte() - ) - }, - textColor = textColor, - hazeState = hazeState - ) - HorizontalDivider( - thickness = 1.5.dp, - color = Color(0x40888888), - modifier = Modifier.padding(start = 12.dp, end = 0.dp) - ) - - DropdownMenuComponent( - label = stringResource(R.string.press_and_hold_duration), - options = listOf( - stringResource(R.string.default_option), - stringResource(R.string.slower), - stringResource(R.string.slowest) - ), - selectedOption = selectedPressAndHoldDuration.toString(), - onOptionSelected = { newValue -> - selectedPressAndHoldDuration = newValue - aacpManager?.sendControlCommand( - identifier = AACPManager.Companion.ControlCommandIdentifiers.CLICK_HOLD_INTERVAL.value, - value = pressAndHoldDurationOptions.filterValues { it == newValue }.keys.firstOrNull() - ?: 0.toByte() - ) - }, - textColor = textColor, - hazeState = hazeState - ) - HorizontalDivider( - thickness = 1.5.dp, - color = Color(0x40888888), - modifier = Modifier.padding(start = 12.dp, end = 0.dp) - ) - - DropdownMenuComponent( - label = stringResource(R.string.volume_swipe_speed), - options = listOf( - stringResource(R.string.default_option), - stringResource(R.string.longer), - stringResource(R.string.longest) - ), - selectedOption = selectedVolumeSwipeSpeed.toString(), - onOptionSelected = { newValue -> - selectedVolumeSwipeSpeed = newValue - aacpManager?.sendControlCommand( - identifier = AACPManager.Companion.ControlCommandIdentifiers.VOLUME_SWIPE_INTERVAL.value, - value = volumeSwipeSpeedOptions.filterValues { it == newValue }.keys.firstOrNull() - ?: 1.toByte() - ) - }, - textColor = textColor, - hazeState = hazeState - ) - } + DropdownMenuComponent( + label = stringResource(R.string.volume_swipe_speed), + description = stringResource(R.string.volume_swipe_speed_description), + options = volumeSwipeSpeedOptions.values.toList(), + selectedOption = selectedVolumeSwipeSpeed?: "Default", + onOptionSelected = { newValue -> + selectedVolumeSwipeSpeed = newValue + aacpManager?.sendControlCommand( + identifier = AACPManager.Companion.ControlCommandIdentifiers.VOLUME_SWIPE_INTERVAL.value, + value = volumeSwipeSpeedOptions.filterValues { it == newValue }.keys.firstOrNull() + ?: 1.toByte() + ) + }, + textColor = textColor, + hazeState = hazeState, + independent = true + ) if (!hearingAidEnabled.value&& isSdpOffsetAvailable.value) { - NavigationButton( - to = "transparency_customization", - name = stringResource(R.string.customize_transparency_mode), - navController = navController - ) - - Spacer(modifier = Modifier.height(2.dp)) Text( text = stringResource(R.string.apply_eq_to).uppercase(), style = TextStyle( @@ -680,113 +649,6 @@ fun AccessibilitySettingsScreen(navController: NavController) { } } - -@Composable -fun AccessibilityToggle( - text: String, - mutableState: MutableState, - independent: Boolean = false, - description: String? = null, - title: String? = null -) { - val isDarkTheme = isSystemInDarkTheme() - var backgroundColor by remember { - mutableStateOf( - if (isDarkTheme) Color(0xFF1C1C1E) else Color( - 0xFFFFFFFF - ) - ) - } - val animatedBackgroundColor by animateColorAsState( - targetValue = backgroundColor, - animationSpec = tween(durationMillis = 500) - ) - val textColor = if (isDarkTheme) Color.White else Color.Black - val cornerShape = if (independent) RoundedCornerShape(14.dp) else RoundedCornerShape(0.dp) - - Column( - modifier = Modifier - .padding(vertical = 8.dp) - ) { - if (title != null) { - Text( - text = title, - style = TextStyle( - fontSize = 14.sp, - fontWeight = FontWeight.Light, - color = textColor.copy(alpha = 0.6f), - fontFamily = FontFamily(Font(R.font.sf_pro)) - ), - modifier = Modifier.padding(8.dp, bottom = 2.dp) - ) - Spacer(modifier = Modifier.height(4.dp)) - } - Box( - modifier = Modifier - .background(animatedBackgroundColor, cornerShape) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - backgroundColor = - if (isDarkTheme) Color(0x40888888) else Color(0x40D9D9D9) - tryAwaitRelease() - backgroundColor = - if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) - }, - onTap = { - mutableState.value = !mutableState.value - } - ) - }, - ) - { - val rowHeight = if (independent) 55.dp else 50.dp - val rowPadding = if (independent) 12.dp else 4.dp - Row( - modifier = Modifier - .fillMaxWidth() - .height(rowHeight) - .padding(horizontal = rowPadding), - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = text, - modifier = Modifier.weight(1f), - fontSize = 16.sp, - color = textColor - ) - StyledSwitch( - checked = mutableState.value, - onCheckedChange = { - mutableState.value = it - }, - ) - } - } - if (description != null) { - Spacer(modifier = Modifier.height(8.dp)) - Box ( // for some reason, haze and backdrop don't work for uncontained text - modifier = Modifier - .fillMaxWidth() - .background(if (isDarkTheme) Color(0xFF000000) else Color(0xFFF2F2F7), cornerShape) - ) { - Text( - text = description, - style = TextStyle( - fontSize = 12.sp, - fontWeight = FontWeight.Light, - color = (if (isSystemInDarkTheme()) Color.White else Color.Black).copy(alpha = 0.6f), - fontFamily = FontFamily(Font(R.font.sf_pro)) - ), - // modifier = Modifier - // .padding(horizontal = 8.dp) - ) - } - } - } -} - - @ExperimentalHazeMaterialsApi @Composable private fun DropdownMenuComponent( @@ -797,6 +659,7 @@ private fun DropdownMenuComponent( textColor: Color, hazeState: HazeState, description: String? = null, + independent: Boolean = true ) { val density = LocalDensity.current val itemHeightPx = with(density) { 48.dp.toPx() } @@ -808,125 +671,164 @@ private fun DropdownMenuComponent( var parentHoveredIndex by remember { mutableStateOf(null) } var parentDragActive by remember { mutableStateOf(false) } - Row( - modifier = Modifier - .fillMaxWidth() - .padding(start = 12.dp, end = 12.dp) - .height(55.dp) - .pointerInput(Unit) { - detectTapGestures { offset -> - val now = System.currentTimeMillis() - if (expanded) { - expanded = false - lastDismissTime = now - } else { - if (now - lastDismissTime > 250L) { - touchOffset = offset - expanded = true - } - } - } - } - .pointerInput(Unit) { - detectDragGesturesAfterLongPress( - onDragStart = { offset -> - val now = System.currentTimeMillis() - touchOffset = offset - if (!expanded && now - lastDismissTime > 250L) { - expanded = true - } - lastDismissTime = now - parentDragActive = true - parentHoveredIndex = 0 - }, - onDrag = { change, _ -> - val current = change.position - val touch = touchOffset ?: current - val posInPopupY = current.y - touch.y - val idx = (posInPopupY / itemHeightPx).toInt() - parentHoveredIndex = idx - }, - onDragEnd = { - parentDragActive = false - parentHoveredIndex?.let { idx -> - if (idx in options.indices) { - onOptionSelected(options[idx]) - expanded = false - lastDismissTime = System.currentTimeMillis() - } - } - parentHoveredIndex = null - }, - onDragCancel = { - parentDragActive = false - parentHoveredIndex = null - } - ) - }, - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = label, - fontSize = 16.sp, - color = textColor, - modifier = Modifier.padding(bottom = 4.dp) - ) - Box( - modifier = Modifier.onGloballyPositioned { coordinates -> - boxPosition = coordinates.positionInParent() - } - ) { - Row( - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = selectedOption, - fontSize = 16.sp, - color = textColor.copy(alpha = 0.8f) - ) - Icon( - Icons.Default.KeyboardArrowDown, - contentDescription = null, - modifier = Modifier.size(18.dp), - tint = textColor.copy(alpha = 0.6f) - ) - } - - StyledDropdown( - expanded = expanded, - onDismissRequest = { - expanded = false - lastDismissTime = System.currentTimeMillis() - }, - options = options, - selectedOption = selectedOption, - touchOffset = touchOffset, - boxPosition = boxPosition, - externalHoveredIndex = parentHoveredIndex, - externalDragActive = parentDragActive, - onOptionSelected = { option -> - onOptionSelected(option) - expanded = false - }, - hazeState = hazeState - ) - } - Box( + Column(modifier = Modifier.fillMaxWidth()){ + Column( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 8.dp) - .background(if (isSystemInDarkTheme()) Color(0xFF000000) else Color(0xFFF2F2F7)) - ){ - Text( - text = description ?: "", - style = TextStyle( - fontSize = 12.sp, - fontWeight = FontWeight.Light, - color = (if (isSystemInDarkTheme()) Color.White else Color.Black).copy(alpha = 0.6f), - fontFamily = FontFamily(Font(R.font.sf_pro)) + .then( + if (independent) { + if (description != null) { + Modifier.padding(top = 8.dp, bottom = 4.dp) + } else { + Modifier.padding(vertical = 8.dp) + } + } else Modifier ) - ) + .background( + if (independent) (if (isSystemInDarkTheme()) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) else Color.Transparent, + if (independent) RoundedCornerShape(14.dp) else RoundedCornerShape(0.dp) + ) + .clip(if (independent) RoundedCornerShape(14.dp) else RoundedCornerShape(0.dp)) + ){ + Row( + modifier = Modifier + .fillMaxWidth() + .padding(start = 12.dp, end = 12.dp) + .height(55.dp) + .pointerInput(Unit) { + detectTapGestures { offset -> + val now = System.currentTimeMillis() + if (expanded) { + expanded = false + lastDismissTime = now + } else { + if (now - lastDismissTime > 250L) { + touchOffset = offset + expanded = true + } + } + } + } + .pointerInput(Unit) { + detectDragGesturesAfterLongPress( + onDragStart = { offset -> + val now = System.currentTimeMillis() + touchOffset = offset + if (!expanded && now - lastDismissTime > 250L) { + expanded = true + } + lastDismissTime = now + parentDragActive = true + parentHoveredIndex = 0 + }, + onDrag = { change, _ -> + val current = change.position + val touch = touchOffset ?: current + val posInPopupY = current.y - touch.y + val idx = (posInPopupY / itemHeightPx).toInt() + parentHoveredIndex = idx + }, + onDragEnd = { + parentDragActive = false + parentHoveredIndex?.let { idx -> + if (idx in options.indices) { + onOptionSelected(options[idx]) + expanded = false + lastDismissTime = System.currentTimeMillis() + } + } + parentHoveredIndex = null + }, + onDragCancel = { + parentDragActive = false + parentHoveredIndex = null + } + ) + }, + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Column( + modifier = Modifier.weight(1f) + ){ + Text( + text = label, + fontSize = 16.sp, + color = textColor, + modifier = Modifier.padding(bottom = 4.dp) + ) + if (!independent && description != null){ + Text( + text = description, + style = TextStyle( + fontSize = 12.sp, + fontWeight = FontWeight.Light, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier.padding(bottom = 2.dp) + ) + } + } + Box( + modifier = Modifier.onGloballyPositioned { coordinates -> + boxPosition = coordinates.positionInParent() + } + ) { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = selectedOption, + fontSize = 16.sp, + color = textColor.copy(alpha = 0.8f) + ) + Icon( + Icons.Default.KeyboardArrowDown, + contentDescription = null, + modifier = Modifier.size(18.dp), + tint = textColor.copy(alpha = 0.6f) + ) + } + + StyledDropdown( + expanded = expanded, + onDismissRequest = { + expanded = false + lastDismissTime = System.currentTimeMillis() + }, + options = options, + selectedOption = selectedOption, + touchOffset = touchOffset, + boxPosition = boxPosition, + externalHoveredIndex = parentHoveredIndex, + externalDragActive = parentDragActive, + onOptionSelected = { option -> + onOptionSelected(option) + expanded = false + }, + hazeState = hazeState + ) + } + } + } + if (independent && description != null){ + Box( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 8.dp) + .background(if (isSystemInDarkTheme()) Color(0xFF000000) else Color(0xFFF2F2F7)) + ){ + Text( + text = description, + style = TextStyle( + fontSize = 12.sp, + fontWeight = FontWeight.Light, + color = (if (isSystemInDarkTheme()) Color.White else Color.Black).copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ) + ) + } } } } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/HeadTrackingScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/HeadTrackingScreen.kt index f4621d8..ad71bb4 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/HeadTrackingScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/HeadTrackingScreen.kt @@ -168,7 +168,8 @@ fun HeadTrackingScreen(navController: NavController) { label = "Head Gestures", sharedPreferences = sharedPreferences, sharedPreferenceKey = "head_gestures", - ) + ) + Spacer(modifier = Modifier.height(2.dp)) Text( stringResource(R.string.head_gestures_details), diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/HearingAidAdjustmentsScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/HearingAidAdjustmentsScreen.kt index 1b26564..6c642a5 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/HearingAidAdjustmentsScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/HearingAidAdjustmentsScreen.kt @@ -337,9 +337,9 @@ fun HearingAidAdjustmentsScreen(@Suppress("unused") navController: NavController independent = true, ) - AccessibilityToggle( - text = stringResource(R.string.conversation_boost), - mutableState = conversationBoostEnabled, + StyledToggle( + label = stringResource(R.string.conversation_boost), + checkedState = conversationBoostEnabled, independent = true, description = stringResource(R.string.conversation_boost_description) ) diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/HearingAidScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/HearingAidScreen.kt index d14fc94..106ea48 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/HearingAidScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/HearingAidScreen.kt @@ -246,13 +246,13 @@ fun HearingAidScreen(navController: NavController) { modifier = Modifier.padding(horizontal = 8.dp) ) Spacer(modifier = Modifier.height(16.dp)) - - AccessibilityToggle( - text = stringResource(R.string.media_assist), - mutableState = mediaAssistEnabled, + + StyledToggle( + title = stringResource(R.string.media_assist).uppercase(), + label = stringResource(R.string.media_assist), + checkedState = mediaAssistEnabled, independent = true, - description = stringResource(R.string.media_assist_description), - title = stringResource(R.string.media_assist).uppercase() + description = stringResource(R.string.media_assist_description) ) Spacer(modifier = Modifier.height(8.dp)) @@ -377,10 +377,8 @@ fun HearingAidScreen(navController: NavController) { try { val data = attManager.read(ATTHandles.TRANSPARENCY) val parsed = parseTransparencySettingsResponse(data) - if (parsed != null) { - val disabledSettings = parsed.copy(enabled = false) - sendTransparencySettings(attManager, disabledSettings) - } + val disabledSettings = parsed.copy(enabled = false) + sendTransparencySettings(attManager, disabledSettings) } catch (e: Exception) { Log.e(TAG, "Error disabling transparency: ${e.message}") } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/TransparencySettingsScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/TransparencySettingsScreen.kt index 565039e..a0a8855 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/TransparencySettingsScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/TransparencySettingsScreen.kt @@ -66,6 +66,7 @@ import me.kavishdevar.librepods.R import me.kavishdevar.librepods.composables.StyledIconButton import me.kavishdevar.librepods.composables.StyledScaffold import me.kavishdevar.librepods.composables.StyledSlider +import me.kavishdevar.librepods.composables.StyledToggle import me.kavishdevar.librepods.services.ServiceManager import me.kavishdevar.librepods.utils.ATTHandles import me.kavishdevar.librepods.utils.RadareOffsetFinder @@ -288,9 +289,9 @@ fun TransparencySettingsScreen(navController: NavController) { // Only show transparency mode section if SDP offset is available if (isSdpOffsetAvailable.value) { - AccessibilityToggle( - text = stringResource(R.string.transparency_mode), - mutableState = enabled, + StyledToggle( + label = stringResource(R.string.transparency_mode), + checkedState = enabled, independent = true, description = stringResource(R.string.customize_transparency_mode_description) ) @@ -344,9 +345,9 @@ fun TransparencySettingsScreen(navController: NavController) { independent = true, ) - AccessibilityToggle( - text = stringResource(R.string.conversation_boost), - mutableState = conversationBoostEnabled, + StyledToggle( + label = stringResource(R.string.conversation_boost), + checkedState = conversationBoostEnabled, independent = true, description = stringResource(R.string.conversation_boost_description) ) diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index b89fbf9..2c49987 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -6,6 +6,7 @@ See your AirPods battery status right from your home screen! Accessibility Tone Volume + Adjust the tone volume of sound effects played by AirPods. Audio Adaptive Audio Customize Adaptive Audio @@ -28,7 +29,7 @@ Personalized Volume Adjusts the volume of media in response to your environment. Noise Cancellation with Single AirPod - Allow AirPods to be put in noise cancellation mode when only one AirPods is in your ear. + Allow AirPods to be put in noise cancellation mode when only one AirPod is in your ear. Volume Control Adjust the volume by swiping up or down on the sensor located on the AirPods Pro stem. AirPods not connected @@ -107,8 +108,11 @@ Transparency Mode Customize Transparency Mode Press Speed + Adjust the speed required to press two or three times on your AirPods. Press and Hold Duration + Adjust the duration required to press and hold on your AirPods Volume Swipe Speed + To prevent unintended volume adjustments, select preferred wait time between swipes. Equalizer Apply EQ to Phone