From 08738a12938e53e11b5e12e3f364edaca36c6fe7 Mon Sep 17 00:00:00 2001 From: Kavish Devar Date: Sun, 28 Sep 2025 12:27:05 +0530 Subject: [PATCH] android: liquidglass, maybe? the switch and icon button took quite a while. i forgot the order of modifiers matters! --- android/app/libs/backdrop-debug.aar | Bin 109112 -> 108261 bytes android/app/libs/backdrop-release.aar | Bin 103294 -> 102401 bytes .../librepods/composables/AudioSettings.kt | 23 +- .../librepods/composables/BatteryIndicator.kt | 7 +- .../librepods/composables/BatteryView.kt | 4 +- .../composables/CallControlSettings.kt | 76 +- .../composables/ConfirmationDialog.kt | 27 +- .../composables/ConnectionSettings.kt | 13 +- .../composables/MicrophoneSettings.kt | 41 +- .../librepods/composables/NameField.kt | 154 -- .../librepods/composables/NavigationButton.kt | 128 +- .../composables/NoiseControlSettings.kt | 13 +- .../composables/PressAndHoldSettings.kt | 160 +- .../librepods/composables/StyledButton.kt | 8 +- .../librepods/composables/StyledDropdown.kt | 2 +- .../librepods/composables/StyledIconButton.kt | 25 +- .../librepods/composables/StyledSlider.kt | 209 ++- .../librepods/composables/StyledSwitch.kt | 77 +- .../librepods/composables/StyledToggle.kt | 174 ++- .../screens/AccessibilitySettingsScreen.kt | 70 +- .../screens/AdaptiveStrengthScreen.kt | 9 +- .../screens/AirPodsSettingsScreen.kt | 23 +- .../librepods/screens/AppSettingsScreen.kt | 1359 +++++------------ .../librepods/screens/DebugScreen.kt | 24 +- .../librepods/screens/HeadTrackingScreen.kt | 169 +- .../screens/HearingAidAdjustmentsScreen.kt | 18 +- .../librepods/screens/HearingAidScreen.kt | 171 +-- .../librepods/screens/Onboarding.kt | 7 +- .../screens/PressAndHoldSettingsScreen.kt | 123 +- .../librepods/screens/RenameScreen.kt | 34 +- .../screens/TransparencySettingsScreen.kt | 55 +- .../screens/TroubleshootingScreen.kt | 26 +- android/app/src/main/res/values/strings.xml | 8 +- 33 files changed, 1245 insertions(+), 1992 deletions(-) delete mode 100644 android/app/src/main/java/me/kavishdevar/librepods/composables/NameField.kt diff --git a/android/app/libs/backdrop-debug.aar b/android/app/libs/backdrop-debug.aar index d8d5bff72349c2436a89444a4e0fdb2aaf0fd8dc..2a687c71893781e74d50b75d7985f0fd9151ca72 100644 GIT binary patch literal 108261 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 literal 109112 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 diff --git a/android/app/libs/backdrop-release.aar b/android/app/libs/backdrop-release.aar index 306297bdaccf99790fcb1236582a6a86efd9e72d..6aad2de262c8e20047bdfbdc102a0ec19113ded0 100644 GIT binary patch literal 102401 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%0Aobkv;Y_9YE0_Yx8G-CpaE3XE!YX(O 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 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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 0 || case?.status != BatteryStatus.DISCONNECTED) { BatteryIndicator( diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/CallControlSettings.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/CallControlSettings.kt index 3a06981..e42b849 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/CallControlSettings.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/CallControlSettings.kt @@ -32,12 +32,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.KeyboardArrowDown import androidx.compose.material3.HorizontalDivider -import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect @@ -57,6 +53,8 @@ import androidx.compose.ui.layout.positionInParent import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -76,19 +74,19 @@ fun CallControlSettings(hazeState: HazeState) { val backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) Text( - text = stringResource(R.string.call_controls).uppercase(), + text = stringResource(R.string.call_controls), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f) ), - modifier = Modifier.padding(8.dp, bottom = 2.dp) + modifier = Modifier.padding(16.dp, bottom = 4.dp) ) Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) .padding(top = 2.dp) ) { val service = ServiceManager.getService()!! @@ -169,8 +167,8 @@ fun CallControlSettings(hazeState: HazeState) { Row( modifier = Modifier .fillMaxWidth() - .padding(start = 12.dp, end = 12.dp) - .height(50.dp), + .padding(horizontal = 16.dp) + .height(58.dp), horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically ) { @@ -187,17 +185,17 @@ fun CallControlSettings(hazeState: HazeState) { ) } HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888), modifier = Modifier - .padding(start = 12.dp, end = 0.dp) + .padding(horizontal = 12.dp) ) Row( modifier = Modifier .fillMaxWidth() - .padding(start = 12.dp, end = 12.dp) - .height(50.dp) + .padding(horizontal = 16.dp) + .height(58.dp) .pointerInput(Unit) { detectTapGestures { offset -> val now = System.currentTimeMillis() @@ -276,14 +274,21 @@ fun CallControlSettings(hazeState: HazeState) { ) { Text( text = singlePressAction, - fontSize = 16.sp, - color = textColor.copy(alpha = 0.8f) + style = TextStyle( + fontSize = 16.sp, + color = textColor.copy(alpha = 0.8f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ) ) - Icon( - Icons.Default.KeyboardArrowDown, - contentDescription = null, - modifier = Modifier.size(18.dp), - tint = textColor.copy(alpha = 0.6f) + Text( + text = "􀆏", + style = TextStyle( + fontSize = 16.sp, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier + .padding(start = 6.dp) ) } @@ -315,17 +320,17 @@ fun CallControlSettings(hazeState: HazeState) { } } HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888), modifier = Modifier - .padding(start = 12.dp, end = 0.dp) + .padding(horizontal = 12.dp) ) Row( modifier = Modifier .fillMaxWidth() - .padding(start = 12.dp, end = 12.dp) - .height(50.dp) + .padding(horizontal = 16.dp) + .height(58.dp) .pointerInput(Unit) { detectTapGestures { offset -> val now = System.currentTimeMillis() @@ -404,14 +409,21 @@ fun CallControlSettings(hazeState: HazeState) { ) { Text( text = doublePressAction, - fontSize = 16.sp, - color = textColor.copy(alpha = 0.8f) + style = TextStyle( + fontSize = 16.sp, + color = textColor.copy(alpha = 0.8f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ) ) - Icon( - Icons.Default.KeyboardArrowDown, - contentDescription = null, - modifier = Modifier.size(18.dp), - tint = textColor.copy(alpha = 0.6f) + Text( + text = "􀆏", + style = TextStyle( + fontSize = 16.sp, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier + .padding(start = 6.dp) ) } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/ConfirmationDialog.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/ConfirmationDialog.kt index 18139ec..f08f448 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/ConfirmationDialog.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/ConfirmationDialog.kt @@ -74,7 +74,6 @@ import com.kyant.backdrop.effects.blur import com.kyant.backdrop.effects.colorControls import com.kyant.backdrop.effects.refraction import com.kyant.backdrop.highlight.Highlight -import com.kyant.backdrop.highlight.HighlightStyle import kotlinx.coroutines.launch import me.kavishdevar.librepods.R import me.kavishdevar.librepods.utils.inspectDragGestures @@ -143,7 +142,9 @@ half4 main(float2 coord) { .drawBackdrop( backdrop, { RoundedCornerShape(48f.dp) }, - highlight = { Highlight { HighlightStyle.Solid } }, + highlight = { + Highlight.SolidDefault + }, onDrawSurface = { drawRect(containerColor) }, effects = { colorControls( @@ -153,7 +154,7 @@ half4 main(float2 coord) { blur(if (isLightTheme) 16f.dp.toPx() else 8f.dp.toPx()) refraction(24f.dp.toPx(), 48f.dp.toPx(), true) }, - layer = { + layerBlock = { val width = size.width val height = size.height @@ -273,16 +274,6 @@ half4 main(float2 coord) { horizontalArrangement = Arrangement.spacedBy(12.dp), verticalAlignment = Alignment.CenterVertically ) { - // Box( - // Modifier - // .clip(RoundedCornerShape(50.dp)) - // .background(containerColor.copy(0.2f)) - // .clickable(onClick = onDismiss) - // .height(48.dp) - // .weight(1f) - // .padding(horizontal = 16.dp), - // contentAlignment = Alignment.Center - // ) { StyledButton( onClick = onDismiss, backdrop = backdrop, @@ -295,16 +286,6 @@ half4 main(float2 coord) { style = TextStyle(contentColor, 16.sp) ) } - // Box( - // Modifier - // .clip(RoundedCornerShape(50.dp)) - // .background(accentColor) - // .clickable(onClick = onConfirm) - // .height(48.dp) - // .weight(1f) - // .padding(horizontal = 16.dp), - // contentAlignment = Alignment.Center - // ) { StyledButton( onClick = onConfirm, backdrop = backdrop, 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 90106e4..9bf8417 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 @@ -20,6 +20,7 @@ package me.kavishdevar.librepods.composables +import android.content.Context.MODE_PRIVATE import androidx.compose.foundation.background import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Column @@ -34,11 +35,9 @@ 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 +import me.kavishdevar.librepods.utils.AACPManager +import kotlin.io.encoding.ExperimentalEncodingApi @Composable fun ConnectionSettings() { @@ -48,7 +47,7 @@ fun ConnectionSettings() { Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) .padding(top = 2.dp) ) { StyledToggle( @@ -59,10 +58,10 @@ fun ConnectionSettings() { independent = false ) HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888), modifier = Modifier - .padding(start = 12.dp, end = 0.dp) + .padding(horizontal= 12.dp) ) StyledToggle( diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/MicrophoneSettings.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/MicrophoneSettings.kt index 4f88af0..2c1b4a0 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/MicrophoneSettings.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/MicrophoneSettings.kt @@ -32,11 +32,7 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.KeyboardArrowDown -import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect @@ -55,6 +51,9 @@ import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.layout.positionInParent import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -75,7 +74,7 @@ fun MicrophoneSettings(hazeState: HazeState) { Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) .padding(top = 2.dp) ) { val service = ServiceManager.getService()!! @@ -141,8 +140,8 @@ fun MicrophoneSettings(hazeState: HazeState) { Row( modifier = Modifier .fillMaxWidth() - .padding(start = 12.dp, end = 12.dp) - .height(55.dp) + .padding(horizontal = 16.dp) + .height(58.dp) .pointerInput(Unit) { detectTapGestures { offset -> val now = System.currentTimeMillis() @@ -214,8 +213,11 @@ fun MicrophoneSettings(hazeState: HazeState) { ) { Text( text = stringResource(R.string.microphone_mode), - fontSize = 16.sp, - color = textColor, + style = TextStyle( + fontSize = 16.sp, + color = textColor, + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), modifier = Modifier.padding(bottom = 4.dp) ) Box( @@ -228,14 +230,21 @@ fun MicrophoneSettings(hazeState: HazeState) { ) { Text( text = selectedMode, - fontSize = 16.sp, - color = textColor.copy(alpha = 0.8f) + style = TextStyle( + fontSize = 16.sp, + color = textColor.copy(alpha = 0.8f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ) ) - Icon( - Icons.Default.KeyboardArrowDown, - contentDescription = null, - modifier = Modifier.size(16.dp), - tint = textColor.copy(alpha = 0.6f) + Text( + text = "􀆏", + style = TextStyle( + fontSize = 16.sp, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier + .padding(start = 6.dp) ) } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/NameField.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/NameField.kt deleted file mode 100644 index 399adc4..0000000 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/NameField.kt +++ /dev/null @@ -1,154 +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 . - */ - -package me.kavishdevar.librepods.composables - -import androidx.compose.animation.animateColorAsState -import androidx.compose.animation.core.tween -import androidx.compose.foundation.background -import androidx.compose.foundation.gestures.detectTapGestures -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.text.BasicTextField -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight -import androidx.compose.material3.Icon -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -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.focus.onFocusChanged -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.SolidColor -import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import androidx.navigation.NavController -import androidx.navigation.compose.rememberNavController - -@Composable -fun NameField( - name: String, - value: String, - navController: NavController -) { - var isFocused by remember { mutableStateOf(false) } - - 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 cursorColor = if (isFocused) { - if (isDarkTheme) Color.White else Color.Black - } else { - Color.Transparent - } - - 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 = { - navController.navigate("rename") - } - ) - } - ) { - Row( - verticalAlignment = Alignment.CenterVertically, - modifier = Modifier - .fillMaxWidth() - .height(55.dp) - .background( - animatedBackgroundColor, - RoundedCornerShape(14.dp) - ) - .padding(horizontal = 16.dp, vertical = 8.dp) - - ) { - Text( - text = name, - style = TextStyle( - fontSize = 16.sp, - color = textColor - ) - ) - BasicTextField( - value = value, - textStyle = TextStyle( - color = textColor.copy(alpha = 0.75f), - fontSize = 16.sp, - textAlign = TextAlign.End - ), - onValueChange = {}, - singleLine = true, - enabled = false, - cursorBrush = SolidColor(cursorColor), - modifier = Modifier - .fillMaxWidth() - .padding(start = 8.dp) - .onFocusChanged { focusState -> - isFocused = focusState.isFocused - }, - decorationBox = { innerTextField -> - Row( - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.End - ) { - innerTextField() - Icon( - imageVector = Icons.AutoMirrored.Filled.KeyboardArrowRight, - contentDescription = "Edit name", - tint = textColor.copy(alpha = 0.75f), - modifier = Modifier - .size(32.dp) - ) - } - } - ) - } - } -} - -@Preview -@Composable -fun StyledTextFieldPreview() { - NameField(name = "Name", value = "AirPods Pro", rememberNavController()) -} \ No newline at end of file diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/NavigationButton.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/NavigationButton.kt index 0baa894..8175654 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/NavigationButton.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/NavigationButton.kt @@ -1,17 +1,17 @@ /* * 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 . */ @@ -23,75 +23,105 @@ import androidx.compose.animation.core.tween import androidx.compose.foundation.background import androidx.compose.foundation.gestures.detectTapGestures 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.fillMaxHeight import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.KeyboardArrowRight -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.IconButtonDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable 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.text.TextStyle +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import androidx.navigation.NavController - +import me.kavishdevar.librepods.R @Composable -fun NavigationButton(to: String, name: String, navController: NavController, onClick: (() -> Unit)? = null, independent: Boolean = true) { +fun NavigationButton( + to: String, + name: String, + navController: NavController, onClick: (() -> Unit)? = null, + independent: Boolean = true, + description: String? = null, + currentState: 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)) - - Row( - modifier = Modifier - .background(animatedBackgroundColor, RoundedCornerShape(if (independent) 14.dp else 0.dp)) - .height(55.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - backgroundColor = if (isDarkTheme) Color(0x40888888) else Color(0x40D9D9D9) - tryAwaitRelease() - backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) - }, - onTap = { - if (onClick != null) onClick() else navController.navigate(to) - } + Column { + Row( + modifier = Modifier + .background(animatedBackgroundColor, RoundedCornerShape(if (independent) 28.dp else 0.dp)) + .height(58.dp) + .pointerInput(Unit) { + detectTapGestures( + onPress = { + backgroundColor = if (isDarkTheme) Color(0x40888888) else Color(0x40D9D9D9) + tryAwaitRelease() + backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) + }, + onTap = { + if (onClick != null) onClick() else navController.navigate(to) + } + ) + } + .padding(horizontal = 16.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = name, + style = TextStyle( + fontSize = 16.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = if (isDarkTheme) Color.White else Color.Black, + ) + ) + Spacer(modifier = Modifier.weight(1f)) + if (currentState != null) { + Text( + text = currentState, + style = TextStyle( + fontSize = 16.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = if (isDarkTheme) Color.White.copy(alpha = 0.6f) else Color.Black.copy(alpha = 0.8f), + ) ) } - ) { - Text( - text = name, - modifier = Modifier.padding(16.dp), - color = if (isDarkTheme) Color.White else Color.Black - ) - Spacer(modifier = Modifier.weight(1f)) - IconButton( - onClick = { if (onClick != null) onClick() else navController.navigate(to) }, - colors = IconButtonDefaults.iconButtonColors( - containerColor = Color.Transparent, - contentColor = if (isDarkTheme) Color.White else Color.Black - ), - modifier = Modifier - .padding(start = 16.dp) - .fillMaxHeight() - ) { - @Suppress("DEPRECATION") - Icon( - imageVector = Icons.Default.KeyboardArrowRight, - contentDescription = name + Text( + text = "􀯻", + style = TextStyle( + fontSize = 16.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = if (isDarkTheme) Color.White.copy(alpha = 0.6f) else Color.Black.copy(alpha = 0.6f) + ), + modifier = Modifier + .padding(start = if (currentState != null) 6.dp else 0.dp) + ) + } + if (description != null) { + Text( + text = description, + style = TextStyle( + fontSize = 12.sp, + fontWeight = FontWeight.Light, + color = if (isDarkTheme) Color.White.copy(alpha = 0.6f) else Color.Black.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier.padding(horizontal = 16.dp, vertical = 4.dp) ) } } @@ -101,4 +131,4 @@ fun NavigationButton(to: String, name: String, navController: NavController, onC @Composable fun NavigationButtonPreview() { NavigationButton("to", "Name", NavController(LocalContext.current)) -} \ No newline at end of file +} diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/NoiseControlSettings.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/NoiseControlSettings.kt index 648e610..d031a8c 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/NoiseControlSettings.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/NoiseControlSettings.kt @@ -181,10 +181,10 @@ fun NoiseControlSettings( } Text( - text = stringResource(R.string.noise_control).uppercase(), + text = stringResource(R.string.noise_control), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f), ), modifier = Modifier.padding(8.dp, bottom = 2.dp) @@ -241,7 +241,7 @@ fun NoiseControlSettings( modifier = Modifier .fillMaxWidth() .height(60.dp) - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) ) { Row( modifier = Modifier.fillMaxWidth() @@ -334,7 +334,7 @@ fun NoiseControlSettings( modifier = Modifier .fillMaxSize() .padding(3.dp) - .background(selectedBackground, RoundedCornerShape(12.dp)) + .background(selectedBackground, RoundedCornerShape(26.dp)) ) } @@ -400,7 +400,6 @@ fun NoiseControlSettings( Row( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 4.dp) .padding(top = 4.dp) ) { if (offListeningMode.value) { @@ -408,7 +407,6 @@ fun NoiseControlSettings( text = stringResource(R.string.off), style = TextStyle(fontSize = 12.sp, color = textColor), textAlign = TextAlign.Center, - fontWeight = FontWeight.Bold, modifier = Modifier.weight(1f) ) } @@ -416,21 +414,18 @@ fun NoiseControlSettings( text = stringResource(R.string.transparency), style = TextStyle(fontSize = 12.sp, color = textColor), textAlign = TextAlign.Center, - fontWeight = FontWeight.Bold, modifier = Modifier.weight(1f) ) Text( text = stringResource(R.string.adaptive), style = TextStyle(fontSize = 12.sp, color = textColor), textAlign = TextAlign.Center, - fontWeight = FontWeight.Bold, modifier = Modifier.weight(1f) ) Text( text = stringResource(R.string.noise_cancellation), style = TextStyle(fontSize = 12.sp, color = textColor), textAlign = TextAlign.Center, - fontWeight = FontWeight.Bold, modifier = Modifier.weight(1f) ) } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/PressAndHoldSettings.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/PressAndHoldSettings.kt index 53af719..b4cb081 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/PressAndHoldSettings.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/PressAndHoldSettings.kt @@ -19,34 +19,21 @@ package me.kavishdevar.librepods.composables import android.content.Context -import androidx.compose.animation.animateColorAsState -import androidx.compose.animation.core.tween +import android.content.res.Configuration import androidx.compose.foundation.background -import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.layout.Box 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.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight import androidx.compose.material3.HorizontalDivider -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable -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.draw.clip 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.text.TextStyle @@ -65,12 +52,6 @@ fun PressAndHoldSettings(navController: NavController) { val isDarkTheme = isSystemInDarkTheme() val textColor = if (isDarkTheme) Color.White else Color.Black val dividerColor = Color(0x40888888) - var leftBackgroundColor by remember { mutableStateOf(if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) } - var rightBackgroundColor by remember { mutableStateOf(if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) } - - val animationSpec = tween(durationMillis = 500) - val animatedLeftBackgroundColor by animateColorAsState(targetValue = leftBackgroundColor, animationSpec = animationSpec) - val animatedRightBackgroundColor by animateColorAsState(targetValue = rightBackgroundColor, animationSpec = animationSpec) val context = LocalContext.current val sharedPreferences = context.getSharedPreferences("settings", Context.MODE_PRIVATE) @@ -91,14 +72,14 @@ fun PressAndHoldSettings(navController: NavController) { } Text( - text = stringResource(R.string.press_and_hold_airpods).uppercase(), + text = stringResource(R.string.press_and_hold_airpods), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f), fontFamily = FontFamily(Font(R.font.sf_pro)) ), - modifier = Modifier.padding(8.dp, bottom = 2.dp) + modifier = Modifier.padding(16.dp, bottom = 4.dp) ) Spacer(modifier = Modifier.height(1.dp)) @@ -106,126 +87,33 @@ fun PressAndHoldSettings(navController: NavController) { Column( modifier = Modifier .fillMaxWidth() - .background(if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF), RoundedCornerShape(14.dp)) + .background(if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF), RoundedCornerShape(28.dp)) + .clip(RoundedCornerShape(28.dp)) ) { - Box( - modifier = Modifier - .fillMaxWidth() - .height(50.dp) - .background(animatedLeftBackgroundColor, RoundedCornerShape(topStart = 14.dp, topEnd = 14.dp)) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - leftBackgroundColor = dividerColor - tryAwaitRelease() - leftBackgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) - }, - onTap = { - navController.navigate("long_press/Left") - } - ) - }, - contentAlignment = Alignment.Center - ) { - Row( - modifier = Modifier - .padding(start = 16.dp), - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = stringResource(R.string.left), - style = TextStyle( - fontSize = 16.sp, - color = textColor, - fontFamily = FontFamily(Font(R.font.sf_pro)) - ), - ) - Spacer(modifier = Modifier.weight(1f)) - Text( - text = leftActionText, - style = TextStyle( - fontSize = 16.sp, - color = textColor.copy(alpha = 0.6f), - fontFamily = FontFamily(Font(R.font.sf_pro)) - ), - ) - IconButton( - onClick = { - navController.navigate("long_press/Left") - } - ) { - Icon( - imageVector = Icons.AutoMirrored.Filled.KeyboardArrowRight, - contentDescription = "go", - tint = textColor - ) - } - } - } + NavigationButton( + to = "long_press/Left", + name = stringResource(R.string.left), + navController = navController, + independent = false, + currentState = leftActionText, + ) HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = dividerColor, modifier = Modifier - .padding(start = 16.dp) + .padding(horizontal = 16.dp) + ) + NavigationButton( + to = "long_press/Right", + name = stringResource(R.string.right), + navController = navController, + independent = false, + currentState = rightActionText, ) - Box( - modifier = Modifier - .fillMaxWidth() - .height(50.dp) - .background(animatedRightBackgroundColor, RoundedCornerShape(bottomEnd = 14.dp, bottomStart = 14.dp)) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - rightBackgroundColor = dividerColor - tryAwaitRelease() - rightBackgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) - }, - onTap = { - navController.navigate("long_press/Right") - } - ) - }, - contentAlignment = Alignment.Center - ) { - Row( - modifier = Modifier - .padding(start = 16.dp), - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = stringResource(R.string.right), - style = TextStyle( - fontSize = 16.sp, - color = textColor, - fontFamily = FontFamily(Font(R.font.sf_pro)) - ), - ) - Spacer(modifier = Modifier.weight(1f)) - Text( - text = rightActionText, - style = TextStyle( - fontSize = 16.sp, - color = textColor.copy(alpha = 0.6f), - fontFamily = FontFamily(Font(R.font.sf_pro)) - ), - ) - IconButton( - onClick = { - navController.navigate("long_press/Right") - } - ) { - Icon( - imageVector = Icons.AutoMirrored.Filled.KeyboardArrowRight, - contentDescription = "go", - tint = textColor - ) - } - } - } } } -@Preview +@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES) @Composable fun PressAndHoldSettingsPreview() { PressAndHoldSettings(navController = NavController(LocalContext.current)) diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledButton.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledButton.kt index ce68372..41258bf 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledButton.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledButton.kt @@ -74,7 +74,8 @@ fun StyledButton( isInteractive: Boolean = true, tint: Color = Color.Unspecified, surfaceColor: Color = Color.Unspecified, - content: @Composable RowScope.() -> Unit + maxScale: Float = 0.1f, + content: @Composable RowScope.() -> Unit, ) { val animationScope = rememberCoroutineScope() val progressAnimation = remember { Animatable(0f) } @@ -113,7 +114,7 @@ half4 main(float2 coord) { effects = { blur(16f.dp.toPx()) }, - layer = null, + layerBlock = null, onDrawSurface = { if (tint.isSpecified) { drawRect(tint, blendMode = BlendMode.Hue) @@ -147,12 +148,11 @@ half4 main(float2 coord) { blur(2f.dp.toPx()) refraction(12f.dp.toPx(), 24f.dp.toPx()) }, - layer = { + layerBlock = { val width = size.width val height = size.height val progress = progressAnimation.value - val maxScale = 0.1f val scale = lerp(1f, 1f + maxScale, progress) val maxOffset = size.minDimension diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledDropdown.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledDropdown.kt index 46168b8..73cf744 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledDropdown.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledDropdown.kt @@ -230,7 +230,7 @@ fun StyledDropdown( if (index != options.lastIndex) { HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888), modifier = Modifier.padding(start = 12.dp, end = 0.dp) ) diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledIconButton.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledIconButton.kt index 4e94193..2f59f72 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledIconButton.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledIconButton.kt @@ -24,6 +24,7 @@ import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.VectorConverter import androidx.compose.animation.core.VisibilityThreshold import androidx.compose.animation.core.spring +import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape @@ -59,8 +60,10 @@ import androidx.compose.ui.unit.sp import androidx.compose.ui.util.fastCoerceAtMost import androidx.compose.ui.util.fastCoerceIn import androidx.compose.ui.util.lerp +import com.kyant.backdrop.backdrops.LayerBackdrop import com.kyant.backdrop.backdrops.rememberLayerBackdrop import com.kyant.backdrop.drawBackdrop +import com.kyant.backdrop.effects.blur import com.kyant.backdrop.effects.refractionWithDispersion import com.kyant.backdrop.highlight.Highlight import com.kyant.backdrop.shadow.Shadow @@ -79,6 +82,8 @@ fun StyledIconButton( icon: String, darkMode: Boolean, tint: Color = Color.Unspecified, + backdrop: LayerBackdrop = rememberLayerBackdrop(), + modifier: Modifier = Modifier, ) { val animationScope = rememberCoroutineScope() val progressAnimationSpec = spring(0.5f, 300f, 0.001f) @@ -110,26 +115,23 @@ half4 main(float2 coord) { null } } - + val isDarkTheme = isSystemInDarkTheme() TextButton( onClick = onClick, shape = RoundedCornerShape(56.dp), - modifier = Modifier + modifier = modifier .padding(horizontal = 12.dp) .drawBackdrop( - backdrop = rememberLayerBackdrop(), + backdrop = backdrop, shape = { RoundedCornerShape(56.dp) }, - highlight = { - val progress = progressAnimation.value - Highlight.AmbientDefault.copy(alpha = progress.coerceIn(0.45f, 1f)) - }, + highlight = { Highlight.AmbientDefault.copy(alpha = if (isDarkTheme) 1f else 0f) }, shadow = { Shadow( - radius = 4f.dp, - color = Color.Black.copy(0.08f) + radius = 48f.dp, + color = Color.Black.copy(if (isDarkTheme) 0.08f else 0.4f) ) }, - layer = { + layerBlock = { val width = size.width val height = size.height @@ -182,7 +184,7 @@ half4 main(float2 coord) { drawLayer(innerShadowLayer) drawRect( - Color.White.copy(progress.coerceIn(0.15f, 0.35f)) + (if (isDarkTheme) Color(0xFFAFAFAF) else Color.White).copy(progress.coerceIn(0.15f, 0.35f)) ) }, onDrawFront = { @@ -218,6 +220,7 @@ half4 main(float2 coord) { }, effects = { refractionWithDispersion(6f.dp.toPx(), size.height / 2f) + blur(24f, TileMode.Decal) }, ) .pointerInput(animationScope) { diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledSlider.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledSlider.kt index b0544cd..caa1644 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledSlider.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/StyledSlider.kt @@ -31,12 +31,14 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -84,6 +86,7 @@ import com.kyant.backdrop.highlight.Highlight import com.kyant.backdrop.shadow.Shadow import kotlinx.coroutines.launch import me.kavishdevar.librepods.R +import kotlin.math.abs import kotlin.math.roundToInt @Composable @@ -136,23 +139,26 @@ fun StyledSlider( val content = @Composable { Box( - Modifier.fillMaxWidth(if (startIcon == null && endIcon == null) 0.95f else 1f) - ) { + Modifier + .fillMaxWidth(if (startIcon == null && endIcon == null) 0.95f else 1f) + ) { Box( Modifier + .padding(vertical = 4.dp) .layerBackdrop(sliderBackdrop) - .fillMaxWidth()) { + .fillMaxWidth() + ) { Column( modifier = Modifier .fillMaxWidth(1f) .padding(vertical = 12.dp), horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.spacedBy(12.dp) ) { if (startLabel != null || endLabel != null) { Row( modifier = Modifier - .fillMaxWidth(), + .fillMaxWidth() + .padding(horizontal = 8.dp), horizontalArrangement = Arrangement.SpaceBetween ) { Text( @@ -174,80 +180,119 @@ fun StyledSlider( ) ) } + Spacer(modifier = Modifier.height(12.dp)) } - - Row( + Column( modifier = Modifier .fillMaxWidth() .padding(vertical = 4.dp) - .then(if (startIcon == null && endIcon == null) Modifier.padding(horizontal = 12.dp) else Modifier), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.spacedBy(0.dp) + .then(if (startIcon == null && endIcon == null) Modifier.padding(horizontal = 8.dp) else Modifier), ) { - if (startIcon != null) { - Text( - text = startIcon, - style = TextStyle( - fontSize = 18.sp, - fontWeight = FontWeight.Normal, - color = accentColor, - fontFamily = FontFamily(Font(R.font.sf_pro)) - ), - modifier = Modifier - .padding(horizontal = 12.dp) - .onGloballyPositioned { - startIconWidthState.floatValue = it.size.width.toFloat() - } - ) - } - Box( - Modifier - .weight(1f) - .onSizeChanged { trackWidthState.floatValue = it.width.toFloat() } - .onGloballyPositioned { - trackPositionState.floatValue = - it.positionInParent().y + it.size.height / 2f - } + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(0.dp) ) { - Box( - Modifier - .clip(RoundedCornerShape(28.dp)) - .background(trackColor) - .height(6f.dp) - .fillMaxWidth() - ) - - Box( - Modifier - .clip(RoundedCornerShape(28.dp)) - .background(accentColor) - .height(6f.dp) - .layout { measurable, constraints -> - val placeable = measurable.measure(constraints) - val fraction = fraction - val width = - (fraction * constraints.maxWidth).fastRoundToInt() - layout(width, placeable.height) { - placeable.place(0, 0) + if (startIcon != null) { + Text( + text = startIcon, + style = TextStyle( + fontSize = 18.sp, + fontWeight = FontWeight.Normal, + color = accentColor, + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier + .padding(horizontal = 12.dp) + .onGloballyPositioned { + startIconWidthState.floatValue = it.size.width.toFloat() } - } - ) - } - if (endIcon != null) { - Text( - text = endIcon, - style = TextStyle( - fontSize = 18.sp, - fontWeight = FontWeight.Normal, - color = accentColor, - fontFamily = FontFamily(Font(R.font.sf_pro)) - ), - modifier = Modifier - .padding(horizontal = 12.dp) + ) + } + Box( + Modifier + .weight(1f) + .onSizeChanged { trackWidthState.floatValue = it.width.toFloat() } .onGloballyPositioned { - endIconWidthState.floatValue = it.size.width.toFloat() + trackPositionState.floatValue = + it.positionInParent().y + it.size.height / 2f } - ) + ) { + Box( + Modifier + .clip(RoundedCornerShape(28.dp)) + .background(trackColor) + .height(6f.dp) + .fillMaxWidth() + ) + + Box( + Modifier + .clip(RoundedCornerShape(28.dp)) + .background(accentColor) + .height(6f.dp) + .layout { measurable, constraints -> + val placeable = measurable.measure(constraints) + val fraction = fraction + val width = + (fraction * constraints.maxWidth).fastRoundToInt() + layout(width, placeable.height) { + placeable.place(0, 0) + } + } + ) + } + if (endIcon != null) { + Text( + text = endIcon, + style = TextStyle( + fontSize = 18.sp, + fontWeight = FontWeight.Normal, + color = accentColor, + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier + .padding(horizontal = 12.dp) + .onGloballyPositioned { + endIconWidthState.floatValue = it.size.width.toFloat() + } + ) + } + } + if (snapPoints.isNotEmpty() && startLabel != null && endLabel != null) Spacer(modifier = Modifier.height(4.dp)) + Row( + modifier = Modifier + .fillMaxWidth(), + horizontalArrangement = Arrangement.Center + ) { + if (snapPoints.isNotEmpty()) { + val trackWidth = if (startIcon != null && endIcon != null) trackWidthState.floatValue - with(density) { 6.dp.toPx() } * 2 else trackWidthState.floatValue- with(density) { 22.dp.toPx() } + val startOffset = + if (startIcon != null) startIconWidthState.floatValue + with( + density + ) { 34.dp.toPx() } else with(density) { 14.dp.toPx() } + Box( + Modifier + .fillMaxWidth() + ) { + snapPoints.forEach { point -> + val pointFraction = + ((point - valueRange.start) / (valueRange.endInclusive - valueRange.start)) + .fastCoerceIn(0f, 1f) + Box( + Modifier + .graphicsLayer { + translationX = + startOffset + pointFraction * trackWidth - 4.dp.toPx() + } + .size(2.dp) + .background( + trackColor, + CircleShape + ) + ) + } + } + } } } } @@ -257,10 +302,10 @@ fun StyledSlider( Modifier .graphicsLayer { val startOffset = - if (startIcon != null) startIconWidthState.floatValue + with(density) { 24.dp.toPx() } else with(density) { 8.dp.toPx() } + if (startIcon != null) startIconWidthState.floatValue + with(density) { 24.dp.toPx() } else with(density) { 12.dp.toPx() } translationX = startOffset + fraction * trackWidthState.floatValue - size.width / 2f - translationY = if (startLabel != null || endLabel != null) trackPositionState.floatValue + with(density) { 22.dp.toPx() } + size.height / 2f else trackPositionState.floatValue + with(density) { 4.dp.toPx() } + translationY = if (startLabel != null || endLabel != null) trackPositionState.floatValue + with(density) { 26.dp.toPx() } + size.height / 2f else trackPositionState.floatValue + with(density) { 8.dp.toPx() } } .draggable( rememberDraggableState { delta -> @@ -305,7 +350,7 @@ fun StyledSlider( color = Color.Black.copy(0.05f) ) }, - layer = { + layerBlock = { val progress = progressAnimation.value val scale = lerp(1f, 1.5f, progress) scaleX = scale @@ -361,20 +406,20 @@ fun StyledSlider( text = label, style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = labelTextColor.copy(alpha = 0.6f), fontFamily = FontFamily(Font(R.font.sf_pro)) ), - modifier = Modifier.padding(8.dp) + modifier = Modifier.padding(horizontal = 18.dp, vertical = 4.dp) ) } Box( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) .padding(horizontal = 8.dp, vertical = 0.dp) - .heightIn(min = 55.dp), + .heightIn(min = 58.dp), contentAlignment = Alignment.Center ) { content() @@ -390,7 +435,7 @@ fun StyledSlider( fontFamily = FontFamily(Font(R.font.sf_pro)) ), modifier = Modifier - .padding(horizontal = 12.dp, vertical = 4.dp) + .padding(horizontal = 18.dp, vertical = 4.dp) ) } } @@ -402,8 +447,8 @@ fun StyledSlider( } private fun snapIfClose(value: Float, points: List, threshold: Float = 0.05f): Float { - val nearest = points.minByOrNull { kotlin.math.abs(it - value) } ?: value - return if (kotlin.math.abs(nearest - value) <= threshold) nearest else value + val nearest = points.minByOrNull { abs(it - value) } ?: value + return if (abs(nearest - value) <= threshold) nearest else value } @Preview(uiMode = Configuration.UI_MODE_NIGHT_YES) @@ -426,9 +471,11 @@ fun StyledSliderPreview() { a.floatValue = it }, valueRange = 0f..2f, + snapPoints = listOf(0f, 0.5f, 1f, 1.5f, 2f), + snapThreshold = 0.1f, independent = true, startLabel = "A", - endLabel = "B" + endLabel = "B", ) } } 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 4786c0f..94ea690 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 @@ -48,8 +48,11 @@ 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.Paint import androidx.compose.ui.graphics.TileMode import androidx.compose.ui.graphics.drawOutline +import androidx.compose.ui.graphics.drawscope.drawIntoCanvas +import androidx.compose.ui.graphics.drawscope.scale import androidx.compose.ui.graphics.drawscope.translate import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.graphics.layer.CompositingStrategy @@ -68,7 +71,7 @@ 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.coroutineScope import kotlinx.coroutines.launch @Composable @@ -76,16 +79,17 @@ fun StyledSwitch( checked: Boolean, onCheckedChange: (Boolean) -> Unit, enabled: Boolean = true, + indpendent: Boolean = true, ) { val isDarkTheme = isSystemInDarkTheme() 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 trackWidth = 64.dp + val trackHeight = 28.dp + val thumbHeight = 24.dp + val thumbWidth = 39.dp val backdrop = rememberLayerBackdrop() val switchBackdrop = rememberLayerBackdrop() @@ -97,18 +101,23 @@ fun StyledSwitch( val density = LocalDensity.current val animationScope = rememberCoroutineScope() val progressAnimationSpec = spring(0.5f, 300f, 0.001f) - val colorAnimationSpec = tween(300, easing = FastOutSlowInEasing) + val colorAnimationSpec = tween(200, easing = FastOutSlowInEasing) val progressAnimation = remember { Animatable(0f) } val innerShadowLayer = rememberGraphicsLayer().apply { compositingStrategy = CompositingStrategy.Offscreen } val animatedTrackColor = remember { Animatable(if (checked) onColor else offColor) } - LaunchedEffect(checked) { - val targetColor = if (checked) onColor else offColor - animatedTrackColor.animateTo(targetColor, colorAnimationSpec) - val targetFrac = if (checked) 1f else 0f - animatedFraction.animateTo(targetFrac, progressAnimationSpec) + coroutineScope { + launch { + val targetColor = if (checked) onColor else offColor + animatedTrackColor.animateTo(targetColor, colorAnimationSpec) + } + launch { + val targetFrac = if (checked) 1f else 0f + animatedFraction.animateTo(targetFrac, progressAnimationSpec) + } + } } Box( @@ -136,7 +145,7 @@ fun StyledSwitch( .then(if (enabled) Modifier.draggable( rememberDraggableState { delta -> if (trackWidthPx.floatValue > 0f) { - val newFraction = (animatedFraction.value + delta / trackWidthPx.floatValue).fastCoerceIn(0f, 1f) + val newFraction = (animatedFraction.value + delta / trackWidthPx.floatValue).fastCoerceIn(-0.3f, 1.3f) animationScope.launch { animatedFraction.snapTo(newFraction) } @@ -155,10 +164,12 @@ fun StyledSwitch( }, 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) + coroutineScope { + launch { progressAnimation.animateTo(0f, progressAnimationSpec) } + launch { animatedFraction.animateTo(snappedFraction, progressAnimationSpec) } + } } } ) else Modifier) @@ -175,12 +186,27 @@ fun StyledSwitch( color = Color.Black.copy(0.05f) ) }, - layer = { + layerBlock = { val progress = progressAnimation.value - val scale = lerp(1f, 2f, progress) + val scale = lerp(1f, 1.6f, progress) scaleX = scale scaleY = scale }, + onDrawBackdrop = { drawScope -> + drawIntoCanvas { canvas -> + canvas.save() + canvas.drawRect(0f, 0f, size.width, size.height, Paint().apply { + color = if (indpendent) { + if (isDarkTheme) Color(0xFF000000) else Color(0xFFF2F2F7) + } else { + if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) + } + }) + scale(0.75f) { + drawScope() + } + } + }, onDrawSurface = { val progress = progressAnimation.value.fastCoerceIn(0f, 1f) @@ -224,12 +250,12 @@ fun StyledSwitch( @Composable fun StyledSwitchPreview() { val isDarkTheme = isSystemInDarkTheme() - val backgroundColor = if (isDarkTheme) Color(0xFF000000) else Color(0xFFF2F2F7) + val backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFF2F2F7) Box( modifier = Modifier .background(backgroundColor) .width(100.dp) - .height(100.dp), + .height(400.dp), contentAlignment = Alignment.Center ) { val checked = remember { mutableStateOf(true) } @@ -238,13 +264,14 @@ fun StyledSwitchPreview() { onCheckedChange = { checked.value = it }, - enabled = true + enabled = true, + indpendent = false ) - LaunchedEffect(Unit) { - delay(1000) - checked.value = false - delay(1000) - checked.value = 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 99567b9..920fe7f 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 @@ -75,6 +75,7 @@ fun StyledToggle( sharedPreferenceKey: String? = null, sharedPreferences: SharedPreferences? = null, independent: Boolean = true, + enabled: Boolean = true, onCheckedChange: ((Boolean) -> Unit)? = null, ) { val isDarkTheme = isSystemInDarkTheme() @@ -82,7 +83,9 @@ fun StyledToggle( var checked by checkedState 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() { if (sharedPreferences != null) { if (sharedPreferenceKey == null) { @@ -101,15 +104,16 @@ fun StyledToggle( text = title, style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f) ), - modifier = Modifier.padding(8.dp, bottom = 4.dp) + modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = 8.dp, bottom = 4.dp) ) } Box( modifier = Modifier - .background(animatedBackgroundColor, RoundedCornerShape(14.dp)) + .background(animatedBackgroundColor, RoundedCornerShape(28.dp)) + .padding(4.dp) .pointerInput(Unit) { detectTapGestures( onPress = { @@ -120,8 +124,10 @@ fun StyledToggle( if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) }, onTap = { - checked = !checked - cb() + if (enabled) { + checked = !checked + cb() + } } ) } @@ -145,10 +151,14 @@ fun StyledToggle( ) StyledSwitch( checked = checked, + enabled = enabled, onCheckedChange = { - checked = it - cb() - } + if (enabled) { + checked = it + cb() + } + }, + indpendent = true ) } } @@ -156,7 +166,7 @@ fun StyledToggle( Spacer(modifier = Modifier.height(8.dp)) Box( modifier = Modifier - .padding(horizontal = 8.dp) + .padding(horizontal = 16.dp) .background(if (isDarkTheme) Color(0xFF000000) else Color(0xFFF2F2F7)) ) { Text( @@ -177,10 +187,10 @@ fun StyledToggle( modifier = Modifier .fillMaxWidth() .background( - shape = RoundedCornerShape(14.dp), + shape = RoundedCornerShape(28.dp), color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent ) - .padding(horizontal = 12.dp, vertical = 12.dp) + .padding(16.dp) .pointerInput(Unit) { detectTapGestures( onPress = { @@ -194,8 +204,10 @@ fun StyledToggle( indication = null, interactionSource = remember { MutableInteractionSource() } ) { - checked = !checked - cb() + if (enabled) { + checked = !checked + cb() + } }, verticalAlignment = Alignment.CenterVertically ) { @@ -206,25 +218,35 @@ fun StyledToggle( ) { Text( text = label, - fontSize = 16.sp, - color = textColor + style = TextStyle( + fontSize = 16.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + fontWeight = FontWeight.Normal, + 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, + style = TextStyle( + fontSize = 12.sp, + color = textColor.copy(0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)), + ) ) } } StyledSwitch( checked = checked, + enabled = enabled, onCheckedChange = { - checked = it - cb() - } + if (enabled) { + checked = it + cb() + } + }, + indpendent = false ) } } @@ -237,6 +259,7 @@ fun StyledToggle( description: String? = null, controlCommandIdentifier: AACPManager.Companion.ControlCommandIdentifiers, independent: Boolean = true, + enabled: Boolean = true, sharedPreferenceKey: String? = null, sharedPreferences: SharedPreferences? = null, onCheckedChange: ((Boolean) -> Unit)? = null, @@ -291,15 +314,16 @@ fun StyledToggle( text = title, style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f) ), - modifier = Modifier.padding(8.dp, bottom = 4.dp) + modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = 8.dp, bottom = 4.dp) ) } Box( modifier = Modifier - .background(animatedBackgroundColor, RoundedCornerShape(14.dp)) + .background(animatedBackgroundColor, RoundedCornerShape(28.dp)) + .padding(4.dp) .pointerInput(Unit) { detectTapGestures( onPress = { @@ -310,8 +334,10 @@ fun StyledToggle( if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) }, onTap = { - checked = !checked - cb() + if (enabled) { + checked = !checked + cb() + } } ) } @@ -335,10 +361,14 @@ fun StyledToggle( ) StyledSwitch( checked = checked, + enabled = enabled, onCheckedChange = { - checked = it - cb() - } + if (enabled) { + checked = it + cb() + } + }, + indpendent = true ) } } @@ -346,7 +376,7 @@ fun StyledToggle( Spacer(modifier = Modifier.height(8.dp)) Box( modifier = Modifier - .padding(horizontal = 8.dp) + .padding(horizontal = 16.dp) .background(if (isDarkTheme) Color(0xFF000000) else Color(0xFFF2F2F7)) ) { Text( @@ -367,10 +397,10 @@ fun StyledToggle( modifier = Modifier .fillMaxWidth() .background( - shape = RoundedCornerShape(14.dp), + shape = RoundedCornerShape(28.dp), color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent ) - .padding(horizontal = 12.dp, vertical = 12.dp) + .padding(16.dp) .pointerInput(Unit) { detectTapGestures( onPress = { @@ -384,8 +414,10 @@ fun StyledToggle( indication = null, interactionSource = remember { MutableInteractionSource() } ) { - checked = !checked - cb() + if (enabled) { + checked = !checked + cb() + } }, verticalAlignment = Alignment.CenterVertically ) { @@ -396,25 +428,35 @@ fun StyledToggle( ) { Text( text = label, - fontSize = 16.sp, - color = textColor + style = TextStyle( + fontSize = 16.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + fontWeight = FontWeight.Normal, + 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, + style = TextStyle( + fontSize = 12.sp, + color = textColor.copy(0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)), + ) ) } } StyledSwitch( checked = checked, + enabled = enabled, onCheckedChange = { - checked = it - cb() - } + if (enabled) { + checked = it + cb() + } + }, + indpendent = false ) } } @@ -427,6 +469,7 @@ fun StyledToggle( description: String? = null, attHandle: ATTHandles, independent: Boolean = true, + enabled: Boolean = true, sharedPreferenceKey: String? = null, sharedPreferences: SharedPreferences? = null, onCheckedChange: ((Boolean) -> Unit)? = null, @@ -509,15 +552,16 @@ fun StyledToggle( text = title, style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f) ), - modifier = Modifier.padding(8.dp, bottom = 4.dp) + modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = 8.dp, bottom = 4.dp) ) } Box( modifier = Modifier - .background(animatedBackgroundColor, RoundedCornerShape(14.dp)) + .background(animatedBackgroundColor, RoundedCornerShape(28.dp)) + .padding(4.dp) .pointerInput(Unit) { detectTapGestures( onPress = { @@ -528,8 +572,10 @@ fun StyledToggle( if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) }, onTap = { - checked = !checked - cb() + if (enabled) { + checked = !checked + cb() + } } ) } @@ -553,10 +599,14 @@ fun StyledToggle( ) StyledSwitch( checked = checked, + enabled = enabled, onCheckedChange = { - checked = it - cb() - } + if (enabled) { + checked = it + cb() + } + }, + indpendent = true ) } } @@ -564,7 +614,7 @@ fun StyledToggle( Spacer(modifier = Modifier.height(8.dp)) Box( modifier = Modifier - .padding(horizontal = 8.dp) + .padding(horizontal = 16.dp) .background(if (isDarkTheme) Color(0xFF000000) else Color(0xFFF2F2F7)) ) { Text( @@ -585,10 +635,10 @@ fun StyledToggle( modifier = Modifier .fillMaxWidth() .background( - shape = RoundedCornerShape(14.dp), + shape = RoundedCornerShape(28.dp), color = if (isPressed.value) Color(0xFFE0E0E0) else Color.Transparent ) - .padding(horizontal = 12.dp, vertical = 12.dp) + .padding(16.dp) .pointerInput(Unit) { detectTapGestures( onPress = { @@ -602,8 +652,10 @@ fun StyledToggle( indication = null, interactionSource = remember { MutableInteractionSource() } ) { - checked = !checked - cb() + if (enabled) { + checked = !checked + cb() + } }, verticalAlignment = Alignment.CenterVertically ) { @@ -629,10 +681,14 @@ fun StyledToggle( } StyledSwitch( checked = checked, + enabled = enabled, onCheckedChange = { - checked = it - cb() - } + if (enabled) { + checked = it + cb() + } + }, + indpendent = false ) } } 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 1e8a1c0..5e3be79 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 @@ -40,20 +40,16 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.KeyboardArrowDown import androidx.compose.material3.Checkbox import androidx.compose.material3.CheckboxDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider -import androidx.compose.material3.Icon import androidx.compose.material3.Slider import androidx.compose.material3.SliderDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.mutableLongStateOf @@ -79,6 +75,8 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.HazeState import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi @@ -149,13 +147,16 @@ fun AccessibilitySettingsScreen(navController: NavController) { } } + val backdrop = rememberLayerBackdrop() + StyledScaffold( title = stringResource(R.string.accessibility), navigationButton = { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) }, ) { spacerHeight, hazeState -> @@ -163,6 +164,7 @@ fun AccessibilitySettingsScreen(navController: NavController) { modifier = Modifier .fillMaxSize() .hazeSource(hazeState) + .layerBackdrop(backdrop) .verticalScroll(rememberScrollState()) .padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(16.dp) @@ -370,7 +372,7 @@ fun AccessibilitySettingsScreen(navController: NavController) { ) StyledToggle( - title = stringResource(R.string.noise_control).uppercase(), + title = stringResource(R.string.noise_control), 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, @@ -392,7 +394,7 @@ fun AccessibilitySettingsScreen(navController: NavController) { } StyledSlider( - label = stringResource(R.string.tone_volume).uppercase(), + label = stringResource(R.string.tone_volume), description = stringResource(R.string.tone_volume_description), mutableFloatState = toneVolumeValue, onValueChange = { @@ -405,6 +407,12 @@ fun AccessibilitySettingsScreen(navController: NavController) { independent = true ) + StyledToggle( + label = stringResource(R.string.volume_control), + description = stringResource(R.string.volume_control_description), + controlCommandIdentifier = AACPManager.Companion.ControlCommandIdentifiers.VOLUME_SWIPE_MODE, + ) + DropdownMenuComponent( label = stringResource(R.string.volume_swipe_speed), description = stringResource(R.string.volume_swipe_speed_description), @@ -425,10 +433,10 @@ fun AccessibilitySettingsScreen(navController: NavController) { if (!hearingAidEnabled.value&& isSdpOffsetAvailable.value) { Text( - text = stringResource(R.string.apply_eq_to).uppercase(), + text = stringResource(R.string.apply_eq_to), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f), fontFamily = FontFamily(Font(R.font.sf_pro)) ), @@ -437,12 +445,12 @@ fun AccessibilitySettingsScreen(navController: NavController) { Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) .padding(vertical = 0.dp) ) { val darkModeLocal = isSystemInDarkTheme() - val phoneShape = RoundedCornerShape(topStart = 14.dp, topEnd = 14.dp) + val phoneShape = RoundedCornerShape(topStart = 28.dp, topEnd = 28.dp) var phoneBackgroundColor by remember { mutableStateOf( if (darkModeLocal) Color( @@ -500,11 +508,11 @@ fun AccessibilitySettingsScreen(navController: NavController) { } HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888) ) - val mediaShape = RoundedCornerShape(bottomStart = 14.dp, bottomEnd = 14.dp) + val mediaShape = RoundedCornerShape(bottomStart = 28.dp, bottomEnd = 28.dp) var mediaBackgroundColor by remember { mutableStateOf( if (darkModeLocal) Color( @@ -565,7 +573,7 @@ fun AccessibilitySettingsScreen(navController: NavController) { Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) .padding(12.dp), horizontalAlignment = Alignment.CenterHorizontally ) { @@ -686,15 +694,18 @@ private fun DropdownMenuComponent( ) .background( if (independent) (if (isSystemInDarkTheme()) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) else Color.Transparent, - if (independent) RoundedCornerShape(14.dp) else RoundedCornerShape(0.dp) + if (independent) RoundedCornerShape(28.dp) else RoundedCornerShape(0.dp) ) - .clip(if (independent) RoundedCornerShape(14.dp) else RoundedCornerShape(0.dp)) + then( + if (independent) Modifier.padding(horizontal = 4.dp) else Modifier + ) + .clip(if (independent) RoundedCornerShape(28.dp) else RoundedCornerShape(0.dp)) ){ Row( modifier = Modifier .fillMaxWidth() .padding(start = 12.dp, end = 12.dp) - .height(55.dp) + .height(58.dp) .pointerInput(Unit) { detectTapGestures { offset -> val now = System.currentTimeMillis() @@ -766,7 +777,7 @@ private fun DropdownMenuComponent( color = textColor.copy(alpha = 0.6f), fontFamily = FontFamily(Font(R.font.sf_pro)) ), - modifier = Modifier.padding(bottom = 2.dp) + modifier = Modifier.padding(16.dp, top = 0.dp, bottom = 2.dp) ) } } @@ -780,14 +791,21 @@ private fun DropdownMenuComponent( ) { Text( text = selectedOption, - fontSize = 16.sp, - color = textColor.copy(alpha = 0.8f) + style = TextStyle( + fontSize = 16.sp, + color = textColor.copy(alpha = 0.8f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ) ) - Icon( - Icons.Default.KeyboardArrowDown, - contentDescription = null, - modifier = Modifier.size(18.dp), - tint = textColor.copy(alpha = 0.6f) + Text( + text = "􀆏", + style = TextStyle( + fontSize = 16.sp, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier + .padding(start = 6.dp) ) } @@ -816,7 +834,7 @@ private fun DropdownMenuComponent( Box( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 8.dp) + .padding(horizontal = 16.dp) .background(if (isSystemInDarkTheme()) Color(0xFF000000) else Color(0xFFF2F2F7)) ){ Text( diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/AdaptiveStrengthScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/AdaptiveStrengthScreen.kt index da0605a..440e068 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/AdaptiveStrengthScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/AdaptiveStrengthScreen.kt @@ -36,6 +36,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -94,6 +96,7 @@ fun AdaptiveStrengthScreen(navController: NavController) { } } + val backdrop = rememberLayerBackdrop() StyledScaffold( title = stringResource(R.string.customize_adaptive_audio), @@ -101,19 +104,21 @@ fun AdaptiveStrengthScreen(navController: NavController) { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) } ) { spacerHeight -> Column( modifier = Modifier .fillMaxSize() + .layerBackdrop(backdrop) .padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(16.dp) ) { Spacer(modifier = Modifier.height(spacerHeight)) StyledSlider( - label = stringResource(R.string.customize_adaptive_audio).uppercase(), + label = stringResource(R.string.customize_adaptive_audio), mutableFloatState = sliderValue, onValueChange = { sliderValue.floatValue = it diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/AirPodsSettingsScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/AirPodsSettingsScreen.kt index c8242ea..62c700b 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/AirPodsSettingsScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/AirPodsSettingsScreen.kt @@ -68,6 +68,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController import androidx.navigation.compose.rememberNavController +import com.kyant.backdrop.backdrops.layerBackdrop import com.kyant.backdrop.backdrops.rememberLayerBackdrop import com.kyant.backdrop.drawBackdrop import com.kyant.backdrop.highlight.Highlight @@ -80,7 +81,6 @@ import me.kavishdevar.librepods.composables.BatteryView import me.kavishdevar.librepods.composables.CallControlSettings import me.kavishdevar.librepods.composables.ConnectionSettings import me.kavishdevar.librepods.composables.MicrophoneSettings -import me.kavishdevar.librepods.composables.NameField import me.kavishdevar.librepods.composables.NavigationButton import me.kavishdevar.librepods.composables.NoiseControlSettings import me.kavishdevar.librepods.composables.PressAndHoldSettings @@ -199,13 +199,15 @@ fun AirPodsSettingsScreen(dev: BluetoothDevice?, service: AirPodsService, } } val darkMode = isSystemInDarkTheme() + val backdrop = rememberLayerBackdrop() StyledScaffold( title = deviceName.text, actionButtons = listOf { StyledIconButton( onClick = { navController.navigate("app_settings") }, icon = "􀍟", - darkMode = darkMode + darkMode = darkMode, + backdrop = backdrop ) }, snackbarHostState = snackbarHostState @@ -216,6 +218,7 @@ fun AirPodsSettingsScreen(dev: BluetoothDevice?, service: AirPodsService, .fillMaxSize() .hazeSource(hazeState) .padding(horizontal = 16.dp) + .layerBackdrop(backdrop) .verticalScroll(rememberScrollState()) ) { Spacer(modifier = Modifier.height(spacerHeight)) @@ -249,28 +252,28 @@ fun AirPodsSettingsScreen(dev: BluetoothDevice?, service: AirPodsService, // Only show name field when not in BLE-only mode if (!bleOnlyMode) { - NameField( + NavigationButton( + to = "rename", name = stringResource(R.string.name), - value = deviceName.text, - navController = navController + currentState = deviceName.text, + navController = navController, + independent = true ) - } - if (!bleOnlyMode) { Spacer(modifier = Modifier.height(32.dp)) NavigationButton(to = "hearing_aid", stringResource(R.string.hearing_aid), navController) Spacer(modifier = Modifier.height(16.dp)) NoiseControlSettings(service = service) + Spacer(modifier = Modifier.height(16.dp)) + PressAndHoldSettings(navController = navController) + Spacer(modifier = Modifier.height(16.dp)) CallControlSettings(hazeState = hazeState) // camera control goes here, airpods side is done, i just need to figure out how to listen to app open/close events - Spacer(modifier = Modifier.height(16.dp)) - PressAndHoldSettings(navController = navController) - Spacer(modifier = Modifier.height(16.dp)) AudioSettings(navController = navController) diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/AppSettingsScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/AppSettingsScreen.kt index 353e9c9..89cf866 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/AppSettingsScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/AppSettingsScreen.kt @@ -26,7 +26,6 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -37,7 +36,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll @@ -47,25 +45,21 @@ import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.OutlinedTextFieldDefaults -import androidx.compose.material3.Slider -import androidx.compose.material3.SliderDefaults import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -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.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource @@ -79,13 +73,17 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.content.edit import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import kotlinx.coroutines.launch import me.kavishdevar.librepods.R +import me.kavishdevar.librepods.composables.NavigationButton import me.kavishdevar.librepods.composables.StyledIconButton import me.kavishdevar.librepods.composables.StyledScaffold -import me.kavishdevar.librepods.composables.StyledSwitch +import me.kavishdevar.librepods.composables.StyledSlider +import me.kavishdevar.librepods.composables.StyledToggle import me.kavishdevar.librepods.utils.AACPManager import me.kavishdevar.librepods.utils.RadareOffsetFinder import kotlin.io.encoding.Base64 @@ -102,13 +100,13 @@ fun AppSettingsScreen(navController: NavController) { val coroutineScope = rememberCoroutineScope() val scrollState = rememberScrollState() - var showResetDialog by remember { mutableStateOf(false) } - var showIrkDialog by remember { mutableStateOf(false) } - var showEncKeyDialog by remember { mutableStateOf(false) } - var irkValue by remember { mutableStateOf("") } - var encKeyValue by remember { mutableStateOf("") } - var irkError by remember { mutableStateOf(null) } - var encKeyError by remember { mutableStateOf(null) } + val showResetDialog = remember { mutableStateOf(false) } + val showIrkDialog = remember { mutableStateOf(false) } + val showEncKeyDialog = remember { mutableStateOf(false) } + val irkValue = remember { mutableStateOf("") } + val encKeyValue = remember { mutableStateOf("") } + val irkError = remember { mutableStateOf(null) } + val encKeyError = remember { mutableStateOf(null) } LaunchedEffect(Unit) { val savedIrk = sharedPreferences.getString(AACPManager.Companion.ProximityKeyType.IRK.name, null) @@ -117,9 +115,9 @@ fun AppSettingsScreen(navController: NavController) { if (savedIrk != null) { try { val decoded = Base64.decode(savedIrk) - irkValue = decoded.joinToString("") { "%02x".format(it) } + irkValue.value = decoded.joinToString("") { "%02x".format(it) } } catch (e: Exception) { - irkValue = "" + irkValue.value = "" e.printStackTrace() } } @@ -127,59 +125,58 @@ fun AppSettingsScreen(navController: NavController) { if (savedEncKey != null) { try { val decoded = Base64.decode(savedEncKey) - encKeyValue = decoded.joinToString("") { "%02x".format(it) } + encKeyValue.value = decoded.joinToString("") { "%02x".format(it) } } catch (e: Exception) { - encKeyValue = "" + encKeyValue.value = "" e.printStackTrace() } } } - var showPhoneBatteryInWidget by remember { + val showPhoneBatteryInWidget = remember { mutableStateOf(sharedPreferences.getBoolean("show_phone_battery_in_widget", true)) } - var conversationalAwarenessPauseMusicEnabled by remember { + val conversationalAwarenessPauseMusicEnabled = remember { mutableStateOf(sharedPreferences.getBoolean("conversational_awareness_pause_music", false)) } - var relativeConversationalAwarenessVolumeEnabled by remember { + val relativeConversationalAwarenessVolumeEnabled = remember { mutableStateOf(sharedPreferences.getBoolean("relative_conversational_awareness_volume", true)) } - var openDialogForControlling by remember { + val openDialogForControlling = remember { mutableStateOf(sharedPreferences.getString("qs_click_behavior", "dialog") == "dialog") } - var disconnectWhenNotWearing by remember { + val disconnectWhenNotWearing = remember { mutableStateOf(sharedPreferences.getBoolean("disconnect_when_not_wearing", false)) } - var takeoverWhenDisconnected by remember { + val takeoverWhenDisconnected = remember { mutableStateOf(sharedPreferences.getBoolean("takeover_when_disconnected", true)) } - var takeoverWhenIdle by remember { + val takeoverWhenIdle = remember { mutableStateOf(sharedPreferences.getBoolean("takeover_when_idle", true)) } - var takeoverWhenMusic by remember { + val takeoverWhenMusic = remember { mutableStateOf(sharedPreferences.getBoolean("takeover_when_music", false)) } - var takeoverWhenCall by remember { + val takeoverWhenCall = remember { mutableStateOf(sharedPreferences.getBoolean("takeover_when_call", true)) } - var takeoverWhenRingingCall by remember { + val takeoverWhenRingingCall = remember { mutableStateOf(sharedPreferences.getBoolean("takeover_when_ringing_call", true)) } - var takeoverWhenMediaStart by remember { + val takeoverWhenMediaStart = remember { mutableStateOf(sharedPreferences.getBoolean("takeover_when_media_start", true)) } - var useAlternateHeadTrackingPackets by remember { + val useAlternateHeadTrackingPackets = remember { mutableStateOf(sharedPreferences.getBoolean("use_alternate_head_tracking_packets", false)) } - var bleOnlyMode by remember { + val bleOnlyMode = remember { mutableStateOf(sharedPreferences.getBoolean("ble_only_mode", false)) } - // Ensure the default value is properly set if not exists LaunchedEffect(Unit) { if (!sharedPreferences.contains("ble_only_mode")) { sharedPreferences.edit { putBoolean("ble_only_mode", false) } @@ -191,10 +188,12 @@ fun AppSettingsScreen(navController: NavController) { return hexPattern.matches(input) } - var isProcessingSdp by remember { mutableStateOf(false) } - var actAsAppleDevice by remember { mutableStateOf(false) } + val isProcessingSdp = remember { mutableStateOf(false) } + val actAsAppleDevice = remember { mutableStateOf(false) } - BackHandler(enabled = isProcessingSdp) {} + BackHandler(enabled = isProcessingSdp.value) {} + + val backdrop = rememberLayerBackdrop() StyledScaffold( title = stringResource(R.string.app_settings), @@ -202,15 +201,17 @@ fun AppSettingsScreen(navController: NavController) { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) } ) { spacerHeight, hazeState -> Column( modifier = Modifier .fillMaxSize() - .verticalScroll(scrollState) + .layerBackdrop(backdrop) .hazeSource(state = hazeState) + .verticalScroll(scrollState) .padding(horizontal = 16.dp) ) { Spacer(modifier = Modifier.height(spacerHeight)) @@ -219,17 +220,33 @@ fun AppSettingsScreen(navController: NavController) { val backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) val textColor = if (isDarkTheme) Color.White else Color.Black - Spacer(modifier = Modifier.height(8.dp)) + StyledToggle( + title = stringResource(R.string.widget), + label = stringResource(R.string.show_phone_battery_in_widget), + description = stringResource(R.string.show_phone_battery_in_widget_description), + checkedState = showPhoneBatteryInWidget, + sharedPreferenceKey = "show_phone_battery_in_widget", + sharedPreferences = sharedPreferences, + ) + + StyledToggle( + title = stringResource(R.string.connection_mode), + label = stringResource(R.string.ble_only_mode), + description = stringResource(R.string.ble_only_mode_description), + checkedState = bleOnlyMode, + sharedPreferenceKey = "ble_only_mode", + sharedPreferences = sharedPreferences, + ) Text( - text = stringResource(R.string.widget).uppercase(), + text = stringResource(R.string.conversational_awareness), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f), fontFamily = FontFamily(Font(R.font.sf_pro)) ), - modifier = Modifier.padding(8.dp, bottom = 2.dp, top = 8.dp) + modifier = Modifier.padding(16.dp, bottom = 2.dp, top = 24.dp) ) Spacer(modifier = Modifier.height(2.dp)) @@ -239,770 +256,251 @@ fun AppSettingsScreen(navController: NavController) { .fillMaxWidth() .background( backgroundColor, - RoundedCornerShape(14.dp) + RoundedCornerShape(28.dp) ) - .padding(horizontal = 16.dp, vertical = 4.dp) + .padding(vertical = 4.dp) ) { - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - showPhoneBatteryInWidget = !showPhoneBatteryInWidget - sharedPreferences.edit { putBoolean("show_phone_battery_in_widget", showPhoneBatteryInWidget)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.show_phone_battery_in_widget), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.show_phone_battery_in_widget_description), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = showPhoneBatteryInWidget, - onCheckedChange = { - showPhoneBatteryInWidget = it - sharedPreferences.edit { putBoolean("show_phone_battery_in_widget", it)} - } - ) - } - } - - Text( - text = stringResource(R.string.connection_mode).uppercase(), - 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, top = 24.dp) - ) - - Spacer(modifier = Modifier.height(2.dp)) - - Column ( - modifier = Modifier - .fillMaxWidth() - .background( - backgroundColor, - RoundedCornerShape(14.dp) - ) - .padding(horizontal = 16.dp, vertical = 4.dp) - ) { - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - bleOnlyMode = !bleOnlyMode - sharedPreferences.edit { putBoolean("ble_only_mode", bleOnlyMode)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.ble_only_mode), - fontSize = 16.sp, - color = textColor - ) - Text( - text = stringResource(R.string.ble_only_mode_description), - fontSize = 13.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = bleOnlyMode, - onCheckedChange = { - bleOnlyMode = it - sharedPreferences.edit { putBoolean("ble_only_mode", it)} - } - ) - } - } - - Text( - text = stringResource(R.string.conversational_awareness).uppercase(), - 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, top = 24.dp) - ) - - Spacer(modifier = Modifier.height(2.dp)) - - Column ( - modifier = Modifier - .fillMaxWidth() - .background( - backgroundColor, - RoundedCornerShape(14.dp) - ) - .padding(horizontal = 16.dp, vertical = 4.dp) - ) { - val sliderValue = remember { mutableFloatStateOf(0f) } - LaunchedEffect(sliderValue) { - if (sharedPreferences.contains("conversational_awareness_volume")) { - sliderValue.floatValue = sharedPreferences.getInt("conversational_awareness_volume", 43).toFloat() - } - } - fun updateConversationalAwarenessPauseMusic(enabled: Boolean) { - conversationalAwarenessPauseMusicEnabled = enabled + conversationalAwarenessPauseMusicEnabled.value = enabled sharedPreferences.edit { putBoolean("conversational_awareness_pause_music", enabled)} } fun updateRelativeConversationalAwarenessVolume(enabled: Boolean) { - relativeConversationalAwarenessVolumeEnabled = enabled + relativeConversationalAwarenessVolumeEnabled.value = enabled sharedPreferences.edit { putBoolean("relative_conversational_awareness_volume", enabled)} } - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updateConversationalAwarenessPauseMusic(!conversationalAwarenessPauseMusicEnabled) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.conversational_awareness_pause_music), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.conversational_awareness_pause_music_description), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = conversationalAwarenessPauseMusicEnabled, - onCheckedChange = { - updateConversationalAwarenessPauseMusic(it) - }, - ) - } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updateRelativeConversationalAwarenessVolume(!relativeConversationalAwarenessVolumeEnabled) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.relative_conversational_awareness_volume), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.relative_conversational_awareness_volume_description), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = relativeConversationalAwarenessVolumeEnabled, - onCheckedChange = { - updateRelativeConversationalAwarenessVolume(it) - } - ) - } - - Text( - text = stringResource(R.string.conversational_awareness_volume), - fontSize = 16.sp, - color = textColor, - modifier = Modifier.padding(top = 8.dp, bottom = 4.dp) + StyledToggle( + label = stringResource(R.string.conversational_awareness_pause_music), + description = stringResource(R.string.conversational_awareness_pause_music_description), + checkedState = conversationalAwarenessPauseMusicEnabled, + onCheckedChange = { updateConversationalAwarenessPauseMusic(it) }, + independent = false ) - val trackColor = if (isDarkTheme) Color(0xFFB3B3B3) else Color(0xFFD9D9D9) - val activeTrackColor = if (isDarkTheme) Color(0xFF007AFF) else Color(0xFF3C6DF5) - val thumbColor = if (isDarkTheme) Color(0xFFFFFFFF) else Color(0xFFFFFFFF) - - Slider( - value = sliderValue.floatValue, - onValueChange = { - sliderValue.floatValue = it - sharedPreferences.edit { putInt("conversational_awareness_volume", it.toInt())} - }, - valueRange = 10f..85f, - onValueChangeFinished = { - sliderValue.floatValue = sliderValue.floatValue.roundToInt().toFloat() - }, + HorizontalDivider( + thickness = 1.dp, + color = Color(0x40888888), modifier = Modifier - .fillMaxWidth() - .height(36.dp) - .padding(vertical = 4.dp), - colors = SliderDefaults.colors( - thumbColor = thumbColor, - activeTrackColor = activeTrackColor, - inactiveTrackColor = trackColor, - ), - thumb = { - Box( - modifier = Modifier - .size(24.dp) - .shadow(4.dp, CircleShape) - .background(thumbColor, CircleShape) - ) - }, - track = { - Box ( - modifier = Modifier - .fillMaxWidth() - .height(12.dp), - contentAlignment = Alignment.CenterStart - ) - { - Box( - modifier = Modifier - .fillMaxWidth() - .height(4.dp) - .background(trackColor, RoundedCornerShape(4.dp)) - ) - Box( - modifier = Modifier - .fillMaxWidth(((sliderValue.floatValue - 10) * 100) /7500) - .height(4.dp) - .background(if (conversationalAwarenessPauseMusicEnabled) trackColor else activeTrackColor, RoundedCornerShape(4.dp)) - ) - } - } + .padding(horizontal = 12.dp) ) + StyledToggle( + label = stringResource(R.string.relative_conversational_awareness_volume), + description = stringResource(R.string.relative_conversational_awareness_volume_description), + checkedState = relativeConversationalAwarenessVolumeEnabled, + onCheckedChange = { updateRelativeConversationalAwarenessVolume(it) }, + independent = false + ) + } + + Spacer(modifier = Modifier.height(16.dp)) + + val conversationalAwarenessVolume = remember { mutableFloatStateOf(sharedPreferences.getInt("conversational_awareness_volume", 43).toFloat()) } + LaunchedEffect(conversationalAwarenessVolume.floatValue) { + sharedPreferences.edit { putInt("conversational_awareness_volume", conversationalAwarenessVolume.floatValue.roundToInt()) } + } + + StyledSlider( + label = stringResource(R.string.conversational_awareness_volume), + mutableFloatState = conversationalAwarenessVolume, + valueRange = 10f..85f, + startLabel = "10%", + endLabel = "85%", + onValueChange = { newValue -> conversationalAwarenessVolume.floatValue = newValue }, + independent = true + ) + + Spacer(modifier = Modifier.height(16.dp)) + + StyledToggle( + title = stringResource(R.string.quick_settings_tile), + label = stringResource(R.string.open_dialog_for_controlling), + description = stringResource(R.string.open_dialog_for_controlling_description), + checkedState = openDialogForControlling, + onCheckedChange = { + openDialogForControlling.value = it + sharedPreferences.edit { putString("qs_click_behavior", if (it) "dialog" else "activity") } + }, + ) + + Spacer(modifier = Modifier.height(16.dp)) + + StyledToggle( + title = stringResource(R.string.ear_detection), + label = stringResource(R.string.disconnect_when_not_wearing), + description = stringResource(R.string.disconnect_when_not_wearing_description), + checkedState = disconnectWhenNotWearing, + sharedPreferenceKey = "disconnect_when_not_wearing", + sharedPreferences = sharedPreferences, + ) + + Text( + text = stringResource(R.string.takeover_airpods_state), + style = TextStyle( + fontSize = 14.sp, + fontWeight = FontWeight.Bold, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier.padding(16.dp, bottom = 2.dp, top = 24.dp) + ) + + Spacer(modifier = Modifier.height(4.dp)) + + Column( + modifier = Modifier + .fillMaxWidth() + .background( + backgroundColor, + RoundedCornerShape(28.dp) + ) + .padding(vertical = 4.dp) + ) { + StyledToggle( + label = stringResource(R.string.takeover_disconnected), + description = stringResource(R.string.takeover_disconnected_desc), + checkedState = takeoverWhenDisconnected, + onCheckedChange = { + takeoverWhenDisconnected.value = it + sharedPreferences.edit { putBoolean("takeover_when_disconnected", it)} + }, + independent = false + ) + HorizontalDivider( + thickness = 1.dp, + color = Color(0x40888888), + modifier = Modifier + .padding(horizontal = 12.dp) + ) + + StyledToggle( + label = stringResource(R.string.takeover_idle), + description = stringResource(R.string.takeover_idle_desc), + checkedState = takeoverWhenIdle, + onCheckedChange = { + takeoverWhenIdle.value = it + sharedPreferences.edit { putBoolean("takeover_when_idle", it)} + }, + independent = false + ) + HorizontalDivider( + thickness = 1.dp, + color = Color(0x40888888), + modifier = Modifier + .padding(horizontal = 12.dp) + ) + + StyledToggle( + label = stringResource(R.string.takeover_music), + description = stringResource(R.string.takeover_music_desc), + checkedState = takeoverWhenMusic, + onCheckedChange = { + takeoverWhenMusic.value = it + sharedPreferences.edit { putBoolean("takeover_when_music", it)} + }, + independent = false + ) + HorizontalDivider( + thickness = 1.dp, + color = Color(0x40888888), + modifier = Modifier + .padding(horizontal = 12.dp) + ) + + StyledToggle( + label = stringResource(R.string.takeover_call), + description = stringResource(R.string.takeover_call_desc), + checkedState = takeoverWhenCall, + onCheckedChange = { + takeoverWhenCall.value = it + sharedPreferences.edit { putBoolean("takeover_when_call", it)} + }, + independent = false + ) + } + + Spacer(modifier = Modifier.height(16.dp)) + + Text( + text = stringResource(R.string.takeover_phone_state), + style = TextStyle( + fontSize = 14.sp, + fontWeight = FontWeight.Bold, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier.padding(horizontal = 16.dp) + ) + Spacer(modifier = Modifier.height(4.dp)) + Column( + modifier = Modifier + .fillMaxWidth() + .background( + backgroundColor, + RoundedCornerShape(28.dp) + ) + .padding(vertical = 4.dp) + ){ + StyledToggle( + label = stringResource(R.string.takeover_ringing_call), + description = stringResource(R.string.takeover_ringing_call_desc), + checkedState = takeoverWhenRingingCall, + onCheckedChange = { + takeoverWhenRingingCall.value = it + sharedPreferences.edit { putBoolean("takeover_when_ringing_call", it)} + }, + independent = false + ) + HorizontalDivider( + thickness = 1.dp, + color = Color(0x40888888), + modifier = Modifier + .padding(horizontal = 12.dp) + ) + + StyledToggle( + label = stringResource(R.string.takeover_media_start), + description = stringResource(R.string.takeover_media_start_desc), + checkedState = takeoverWhenMediaStart, + onCheckedChange = { + takeoverWhenMediaStart.value = it + sharedPreferences.edit { putBoolean("takeover_when_media_start", it)} + }, + independent = false + ) + } + + Text( + text = stringResource(R.string.advanced_options), + style = TextStyle( + fontSize = 14.sp, + fontWeight = FontWeight.Bold, + color = textColor.copy(alpha = 0.6f), + fontFamily = FontFamily(Font(R.font.sf_pro)) + ), + modifier = Modifier.padding(16.dp, bottom = 2.dp, top = 24.dp) + ) + + Spacer(modifier = Modifier.height(2.dp)) + + Column( + modifier = Modifier + .fillMaxWidth() + .background( + backgroundColor, + RoundedCornerShape(28.dp) + ) + .padding(horizontal = 16.dp, vertical = 4.dp) + ) { Row( modifier = Modifier .fillMaxWidth() - .padding(bottom = 8.dp), - horizontalArrangement = Arrangement.SpaceBetween - ) { - Text( - text = "10%", - style = TextStyle( - fontSize = 14.sp, - fontWeight = FontWeight.Light, - color = textColor.copy(alpha = 0.7f) + .clickable ( + onClick = { showIrkDialog.value = true }, + indication = null, + interactionSource = remember { MutableInteractionSource() } ), - modifier = Modifier.padding(start = 4.dp) - ) - Text( - text = "85%", - style = TextStyle( - fontSize = 14.sp, - fontWeight = FontWeight.Light, - color = textColor.copy(alpha = 0.7f) - ), - modifier = Modifier.padding(end = 4.dp) - ) - } - } - - Text( - text = stringResource(R.string.quick_settings_tile).uppercase(), - 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, top = 24.dp) - ) - - Spacer(modifier = Modifier.height(2.dp)) - - Column( - modifier = Modifier - .fillMaxWidth() - .background( - backgroundColor, - RoundedCornerShape(14.dp) - ) - .padding(horizontal = 16.dp, vertical = 4.dp) - ) { - fun updateQsClickBehavior(enabled: Boolean) { - openDialogForControlling = enabled - sharedPreferences.edit { putString("qs_click_behavior", if (enabled) "dialog" else "cycle")} - } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updateQsClickBehavior(!openDialogForControlling) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.open_dialog_for_controlling), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.open_dialog_for_controlling_description), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = openDialogForControlling, - onCheckedChange = { - updateQsClickBehavior(it) - } - ) - } - } - - Text( - text = stringResource(R.string.ear_detection).uppercase(), - 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, top = 24.dp) - ) - - Spacer(modifier = Modifier.height(2.dp)) - - Column( - modifier = Modifier - .fillMaxWidth() - .background( - backgroundColor, - RoundedCornerShape(14.dp) - ) - .padding(horizontal = 16.dp, vertical = 4.dp) - ) { - fun updateDisconnectWhenNotWearing(enabled: Boolean) { - disconnectWhenNotWearing = enabled - sharedPreferences.edit { putBoolean("disconnect_when_not_wearing", enabled)} - } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - updateDisconnectWhenNotWearing(!disconnectWhenNotWearing) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.disconnect_when_not_wearing), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.disconnect_when_not_wearing_description), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = disconnectWhenNotWearing, - onCheckedChange = { - updateDisconnectWhenNotWearing(it) - } - ) - } - } - - Text( - text = stringResource(R.string.takeover_header).uppercase(), - 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, top = 24.dp) - ) - - Spacer(modifier = Modifier.height(2.dp)) - - Column( - modifier = Modifier - .fillMaxWidth() - .background( - backgroundColor, - RoundedCornerShape(14.dp) - ) - .padding(horizontal = 16.dp, vertical = 4.dp) - ) { - Text( - text = stringResource(R.string.takeover_airpods_state), - fontSize = 16.sp, - fontWeight = FontWeight.Medium, - color = textColor, - modifier = Modifier.padding(top = 12.dp, bottom = 4.dp) - ) - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - takeoverWhenDisconnected = !takeoverWhenDisconnected - sharedPreferences.edit { putBoolean("takeover_when_disconnected", takeoverWhenDisconnected)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.takeover_disconnected), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.takeover_disconnected_desc), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = takeoverWhenDisconnected, - onCheckedChange = { - takeoverWhenDisconnected = it - sharedPreferences.edit { putBoolean("takeover_when_disconnected", it)} - } - ) - } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - takeoverWhenIdle = !takeoverWhenIdle - sharedPreferences.edit { putBoolean("takeover_when_idle", takeoverWhenIdle)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.takeover_idle), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.takeover_idle_desc), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = takeoverWhenIdle, - onCheckedChange = { - takeoverWhenIdle = it - sharedPreferences.edit { putBoolean("takeover_when_idle", it)} - } - ) - } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - takeoverWhenMusic = !takeoverWhenMusic - sharedPreferences.edit { putBoolean("takeover_when_music", takeoverWhenMusic)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.takeover_music), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.takeover_music_desc), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = takeoverWhenMusic, - onCheckedChange = { - takeoverWhenMusic = it - sharedPreferences.edit { putBoolean("takeover_when_music", it)} - } - ) - } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - takeoverWhenCall = !takeoverWhenCall - sharedPreferences.edit { putBoolean("takeover_when_call", takeoverWhenCall)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.takeover_call), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.takeover_call_desc), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = takeoverWhenCall, - onCheckedChange = { - takeoverWhenCall = it - sharedPreferences.edit { putBoolean("takeover_when_call", it)} - } - ) - } - - Spacer(modifier = Modifier.height(12.dp)) - - Text( - text = stringResource(R.string.takeover_phone_state), - fontSize = 16.sp, - fontWeight = FontWeight.Medium, - color = textColor, - modifier = Modifier.padding(top = 8.dp, bottom = 4.dp) - ) - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - takeoverWhenRingingCall = !takeoverWhenRingingCall - sharedPreferences.edit { putBoolean("takeover_when_ringing_call", takeoverWhenRingingCall)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.takeover_ringing_call), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.takeover_ringing_call_desc), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = takeoverWhenRingingCall, - onCheckedChange = { - takeoverWhenRingingCall = it - sharedPreferences.edit { putBoolean("takeover_when_ringing_call", it)} - } - ) - } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - takeoverWhenMediaStart = !takeoverWhenMediaStart - sharedPreferences.edit { putBoolean("takeover_when_media_start", takeoverWhenMediaStart)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.takeover_media_start), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.takeover_media_start_desc), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = takeoverWhenMediaStart, - onCheckedChange = { - takeoverWhenMediaStart = it - sharedPreferences.edit { putBoolean("takeover_when_media_start", it)} - } - ) - } - } - - Text( - text = stringResource(R.string.advanced_options).uppercase(), - 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, top = 24.dp) - ) - - Spacer(modifier = Modifier.height(2.dp)) - - Column( - modifier = Modifier - .fillMaxWidth() - .background( - backgroundColor, - RoundedCornerShape(14.dp) - ) - .padding(horizontal = 16.dp, vertical = 4.dp) - ) { - Row( - modifier = Modifier - .fillMaxWidth() - .clickable { - showIrkDialog = true - }, verticalAlignment = Alignment.CenterVertically ) { Column( @@ -1026,12 +524,19 @@ fun AppSettingsScreen(navController: NavController) { } } + HorizontalDivider( + thickness = 1.dp, + color = Color(0x40888888), + ) + Row( modifier = Modifier .fillMaxWidth() - .clickable { - showEncKeyDialog = true - }, + .clickable ( + onClick = { showEncKeyDialog.value = true }, + indication = null, + interactionSource = remember { MutableInteractionSource() } + ), verticalAlignment = Alignment.CenterVertically ) { Column( @@ -1054,177 +559,71 @@ fun AppSettingsScreen(navController: NavController) { ) } } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - useAlternateHeadTrackingPackets = !useAlternateHeadTrackingPackets - sharedPreferences.edit { - putBoolean( - "use_alternate_head_tracking_packets", - useAlternateHeadTrackingPackets)} - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.use_alternate_head_tracking_packets), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.use_alternate_head_tracking_packets_description), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - - StyledSwitch( - checked = useAlternateHeadTrackingPackets, - onCheckedChange = { - useAlternateHeadTrackingPackets = it - sharedPreferences.edit { putBoolean("use_alternate_head_tracking_packets", it)} - } - ) - } - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable { - navController.navigate("troubleshooting") - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.troubleshooting), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.troubleshooting_description), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - } - } - - LaunchedEffect(Unit) { - actAsAppleDevice = RadareOffsetFinder.isSdpOffsetAvailable() - } - val restartBluetoothText = stringResource(R.string.found_offset_restart_bluetooth) - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable( - enabled = !isProcessingSdp, - indication = null, - interactionSource = remember { MutableInteractionSource() } - ) { - if (!isProcessingSdp) { - val newValue = !actAsAppleDevice - actAsAppleDevice = newValue - isProcessingSdp = true - coroutineScope.launch { - if (newValue) { - val radareOffsetFinder = RadareOffsetFinder(context) - val success = radareOffsetFinder.findSdpOffset() - if (success) { - Toast.makeText(context, restartBluetoothText, Toast.LENGTH_LONG).show() - } - } else { - RadareOffsetFinder.clearSdpOffset() - } - isProcessingSdp = false - } - } - }, - verticalAlignment = Alignment.CenterVertically - ) { - Column( - modifier = Modifier - .weight(1f) - .padding(vertical = 8.dp) - .padding(end = 4.dp) - ) { - Text( - text = stringResource(R.string.act_as_an_apple_device), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = stringResource(R.string.act_as_an_apple_device_description), - fontSize = 14.sp, - color = textColor.copy(0.6f), - lineHeight = 16.sp, - ) - if (actAsAppleDevice) { - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = stringResource(R.string.act_as_an_apple_device_warning), - fontSize = 12.sp, - color = MaterialTheme.colorScheme.error, - lineHeight = 14.sp, - ) - } - } - StyledSwitch( - checked = actAsAppleDevice, - onCheckedChange = { - if (!isProcessingSdp) { - actAsAppleDevice = it - isProcessingSdp = true - coroutineScope.launch { - if (it) { - val radareOffsetFinder = RadareOffsetFinder(context) - val success = radareOffsetFinder.findSdpOffset() - if (success) { - Toast.makeText(context, restartBluetoothText, Toast.LENGTH_LONG).show() - } - } else { - RadareOffsetFinder.clearSdpOffset() - } - isProcessingSdp = false - } - } - }, - enabled = !isProcessingSdp - ) - } } Spacer(modifier = Modifier.height(16.dp)) + StyledToggle( + label = stringResource(R.string.use_alternate_head_tracking_packets), + description = stringResource(R.string.use_alternate_head_tracking_packets_description), + checkedState = useAlternateHeadTrackingPackets, + onCheckedChange = { + useAlternateHeadTrackingPackets.value = it + sharedPreferences.edit { putBoolean("use_alternate_head_tracking_packets", it)} + }, + independent = true + ) + + Spacer(modifier = Modifier.height(16.dp)) + + NavigationButton( + to = "troubleshooting", + name = stringResource(R.string.troubleshooting), + navController = navController, + independent = true, + description = stringResource(R.string.troubleshooting_description) + ) + + LaunchedEffect(Unit) { + actAsAppleDevice.value = RadareOffsetFinder.isSdpOffsetAvailable() + } + val restartBluetoothText = stringResource(R.string.found_offset_restart_bluetooth) + + StyledToggle( + label = stringResource(R.string.act_as_an_apple_device), + description = stringResource(R.string.act_as_an_apple_device_description), + checkedState = actAsAppleDevice, + onCheckedChange = { + actAsAppleDevice.value = it + isProcessingSdp.value = true + coroutineScope.launch { + if (it) { + val radareOffsetFinder = RadareOffsetFinder(context) + val success = radareOffsetFinder.findSdpOffset() + if (success) { + Toast.makeText(context, restartBluetoothText, Toast.LENGTH_LONG).show() + } + } else { + RadareOffsetFinder.clearSdpOffset() + } + isProcessingSdp.value = false + } + }, + independent = true, + enabled = !isProcessingSdp.value + ) + + Spacer(modifier = Modifier.height(16.dp)) + Button( - onClick = { showResetDialog = true }, + onClick = { showResetDialog.value = true }, modifier = Modifier .fillMaxWidth() .height(50.dp), colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.errorContainer ), - shape = RoundedCornerShape(14.dp) + shape = RoundedCornerShape(28.dp) ) { Row( verticalAlignment = Alignment.CenterVertically, @@ -1251,9 +650,9 @@ fun AppSettingsScreen(navController: NavController) { Spacer(modifier = Modifier.height(32.dp)) - if (showResetDialog) { + if (showResetDialog.value) { AlertDialog( - onDismissRequest = { showResetDialog = false }, + onDismissRequest = { showResetDialog.value = false }, title = { Text( "Reset Hook Offset", @@ -1289,7 +688,7 @@ fun AppSettingsScreen(navController: NavController) { Toast.LENGTH_SHORT ).show() } - showResetDialog = false + showResetDialog.value = false }, colors = ButtonDefaults.textButtonColors( contentColor = MaterialTheme.colorScheme.error @@ -1304,7 +703,7 @@ fun AppSettingsScreen(navController: NavController) { }, dismissButton = { TextButton( - onClick = { showResetDialog = false } + onClick = { showResetDialog.value = false } ) { Text( "Cancel", @@ -1316,9 +715,9 @@ fun AppSettingsScreen(navController: NavController) { ) } - if (showIrkDialog) { + if (showIrkDialog.value) { AlertDialog( - onDismissRequest = { showIrkDialog = false }, + onDismissRequest = { showIrkDialog.value = false }, title = { Text( stringResource(R.string.set_identity_resolving_key), @@ -1335,13 +734,13 @@ fun AppSettingsScreen(navController: NavController) { ) OutlinedTextField( - value = irkValue, + value = irkValue.value, onValueChange = { - irkValue = it.lowercase().filter { char -> char.isDigit() || char in 'a'..'f' } - irkError = null + irkValue.value = it.lowercase().filter { char -> char.isDigit() || char in 'a'..'f' } + irkError.value = null }, modifier = Modifier.fillMaxWidth(), - isError = irkError != null, + isError = irkError.value != null, keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Ascii, capitalization = KeyboardCapitalization.None @@ -1351,7 +750,7 @@ fun AppSettingsScreen(navController: NavController) { unfocusedBorderColor = if (isDarkTheme) Color.Gray else Color.LightGray ), supportingText = { - if (irkError != null) { + if (irkError.value != null) { Text(stringResource(R.string.must_be_32_hex_chars), color = MaterialTheme.colorScheme.error) } }, @@ -1364,15 +763,15 @@ fun AppSettingsScreen(navController: NavController) { val errorText = stringResource(R.string.error_converting_hex) TextButton( onClick = { - if (!validateHexInput(irkValue)) { - irkError = "Must be exactly 32 hex characters" + if (!validateHexInput(irkValue.value)) { + irkError.value = "Must be exactly 32 hex characters" return@TextButton } try { val hexBytes = ByteArray(16) for (i in 0 until 16) { - val hexByte = irkValue.substring(i * 2, i * 2 + 2) + val hexByte = irkValue.value.substring(i * 2, i * 2 + 2) hexBytes[i] = hexByte.toInt(16).toByte() } @@ -1380,9 +779,9 @@ fun AppSettingsScreen(navController: NavController) { sharedPreferences.edit { putString(AACPManager.Companion.ProximityKeyType.IRK.name, base64Value)} Toast.makeText(context, successText, Toast.LENGTH_SHORT).show() - showIrkDialog = false + showIrkDialog.value = false } catch (e: Exception) { - irkError = errorText + " " + (e.message ?: "Unknown error") + irkError.value = errorText + " " + (e.message ?: "Unknown error") } } ) { @@ -1395,7 +794,7 @@ fun AppSettingsScreen(navController: NavController) { }, dismissButton = { TextButton( - onClick = { showIrkDialog = false } + onClick = { showIrkDialog.value = false } ) { Text( "Cancel", @@ -1407,9 +806,9 @@ fun AppSettingsScreen(navController: NavController) { ) } - if (showEncKeyDialog) { + if (showEncKeyDialog.value) { AlertDialog( - onDismissRequest = { showEncKeyDialog = false }, + onDismissRequest = { showEncKeyDialog.value = false }, title = { Text( stringResource(R.string.set_encryption_key), @@ -1426,13 +825,13 @@ fun AppSettingsScreen(navController: NavController) { ) OutlinedTextField( - value = encKeyValue, + value = encKeyValue.value, onValueChange = { - encKeyValue = it.lowercase().filter { char -> char.isDigit() || char in 'a'..'f' } - encKeyError = null + encKeyValue.value = it.lowercase().filter { char -> char.isDigit() || char in 'a'..'f' } + encKeyError.value = null }, modifier = Modifier.fillMaxWidth(), - isError = encKeyError != null, + isError = encKeyError.value != null, keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Ascii, capitalization = KeyboardCapitalization.None @@ -1442,7 +841,7 @@ fun AppSettingsScreen(navController: NavController) { unfocusedBorderColor = if (isDarkTheme) Color.Gray else Color.LightGray ), supportingText = { - if (encKeyError != null) { + if (encKeyError.value != null) { Text(stringResource(R.string.must_be_32_hex_chars), color = MaterialTheme.colorScheme.error) } }, @@ -1455,15 +854,15 @@ fun AppSettingsScreen(navController: NavController) { val errorText = stringResource(R.string.error_converting_hex) TextButton( onClick = { - if (!validateHexInput(encKeyValue)) { - encKeyError = "Must be exactly 32 hex characters" + if (!validateHexInput(encKeyValue.value)) { + encKeyError.value = "Must be exactly 32 hex characters" return@TextButton } try { val hexBytes = ByteArray(16) for (i in 0 until 16) { - val hexByte = encKeyValue.substring(i * 2, i * 2 + 2) + val hexByte = encKeyValue.value.substring(i * 2, i * 2 + 2) hexBytes[i] = hexByte.toInt(16).toByte() } @@ -1471,9 +870,9 @@ fun AppSettingsScreen(navController: NavController) { sharedPreferences.edit { putString(AACPManager.Companion.ProximityKeyType.ENC_KEY.name, base64Value)} Toast.makeText(context, successText, Toast.LENGTH_SHORT).show() - showEncKeyDialog = false + showEncKeyDialog.value = false } catch (e: Exception) { - encKeyError = errorText + " " + (e.message ?: "Unknown error") + encKeyError.value = errorText + " " + (e.message ?: "Unknown error") } } ) { @@ -1486,7 +885,7 @@ fun AppSettingsScreen(navController: NavController) { }, dismissButton = { TextButton( - onClick = { showEncKeyDialog = false } + onClick = { showEncKeyDialog.value = false } ) { Text( "Cancel", diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/DebugScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/DebugScreen.kt index f9dbdab..fc3bf05 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/DebugScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/DebugScreen.kt @@ -40,14 +40,11 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.KeyboardArrowLeft -import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight import androidx.compose.material.icons.filled.Send import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults @@ -78,6 +75,8 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import kotlinx.coroutines.delay @@ -325,14 +324,15 @@ fun DebugScreen(navController: NavController) { } val isDarkTheme = isSystemInDarkTheme() - + val backdrop = rememberLayerBackdrop() StyledScaffold( title = "Debug", navigationButton = { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) }, actionButtons = listOf( @@ -344,6 +344,7 @@ fun DebugScreen(navController: NavController) { }, icon = "􀈑", darkMode = isDarkTheme, + backdrop = backdrop ) } ), @@ -353,6 +354,7 @@ fun DebugScreen(navController: NavController) { .fillMaxSize() .hazeSource(hazeState) .navigationBarsPadding() + .layerBackdrop(backdrop) .padding(horizontal = 16.dp) ) { Spacer(modifier = Modifier.height(spacerHeight)) @@ -391,11 +393,13 @@ fun DebugScreen(navController: NavController) { ) ) { Row(verticalAlignment = Alignment.CenterVertically) { - Icon( - imageVector = if (isSent) Icons.AutoMirrored.Filled.KeyboardArrowLeft else Icons.AutoMirrored.Filled.KeyboardArrowRight, - contentDescription = null, - tint = if (isSent) Color.Green else Color.Red, - modifier = Modifier.size(24.dp) + Text( + text = if (isSent) "􀆉" else "􀆊", + style = TextStyle( + fontSize = 16.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = if (isSent) Color(0xFF4CD964) else Color(0xFFFF3B30) + ), ) Spacer(modifier = Modifier.width(4.dp)) Column { 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 ad71bb4..a42241a 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 @@ -42,10 +42,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button -import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api @@ -87,12 +84,15 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.launch import me.kavishdevar.librepods.R +import me.kavishdevar.librepods.composables.StyledButton import me.kavishdevar.librepods.composables.StyledIconButton import me.kavishdevar.librepods.composables.StyledScaffold import me.kavishdevar.librepods.composables.StyledToggle @@ -116,18 +116,19 @@ fun HeadTrackingScreen(navController: NavController) { } } val isDarkTheme = isSystemInDarkTheme() - val backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) + if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) val textColor = if (isDarkTheme) Color.White else Color.Black val scrollState = rememberScrollState() - + val backdrop = rememberLayerBackdrop() StyledScaffold ( title = stringResource(R.string.head_tracking), navigationButton = { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) }, actionButtons = listOf( @@ -144,72 +145,95 @@ fun HeadTrackingScreen(navController: NavController) { } }, icon = if (isActive) "􀊅" else "􀊃", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) } ), ) { spacerHeight, hazeState -> - Column ( + val backdrop = rememberLayerBackdrop() + val sharedPreferences = LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE) + + var gestureText by remember { mutableStateOf("") } + val coroutineScope = rememberCoroutineScope() + + var lastClickTime by remember { mutableLongStateOf(0L) } + var shouldExplode by remember { mutableStateOf(false) } + Column( modifier = Modifier - .fillMaxSize() - .padding(top = 8.dp) - .padding(horizontal = 16.dp) - .verticalScroll(scrollState) - .hazeSource(state = hazeState) + .layerBackdrop(backdrop) + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally ) { - Spacer(modifier = Modifier.height(spacerHeight)) - val sharedPreferences = - LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE) + Column ( + modifier = Modifier + .fillMaxWidth() + .padding(top = 8.dp) + .padding(horizontal = 16.dp) + .verticalScroll(scrollState) + .hazeSource(state = hazeState) + .layerBackdrop( + backdrop = backdrop + ) + ) { + Spacer(modifier = Modifier.height(spacerHeight)) + StyledToggle( + label = "Head Gestures", + sharedPreferences = sharedPreferences, + sharedPreferenceKey = "head_gestures", + ) - var gestureText by remember { mutableStateOf("") } - val coroutineScope = rememberCoroutineScope() + Spacer(modifier = Modifier.height(2.dp)) + Text( + stringResource(R.string.head_gestures_details), + style = TextStyle( + fontSize = 14.sp, + fontWeight = FontWeight.Normal, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = textColor.copy(0.6f) + ), + modifier = Modifier.padding(start = 4.dp) + ) - StyledToggle( - label = "Head Gestures", - sharedPreferences = sharedPreferences, - sharedPreferenceKey = "head_gestures", - ) - - Spacer(modifier = Modifier.height(2.dp)) - Text( - stringResource(R.string.head_gestures_details), - style = TextStyle( - fontSize = 14.sp, - fontWeight = FontWeight.Normal, - fontFamily = FontFamily(Font(R.font.sf_pro)), - color = textColor.copy(0.6f) - ), - modifier = Modifier.padding(start = 4.dp) - ) + Spacer(modifier = Modifier.height(16.dp)) + Text( + "Head Orientation", + style = TextStyle( + fontSize = 18.sp, + fontWeight = FontWeight.Medium, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = textColor + ), + modifier = Modifier.padding(start = 4.dp, bottom = 8.dp, top = 8.dp) + ) + HeadVisualization() - Spacer(modifier = Modifier.height(16.dp)) - Text( - "Head Orientation", - style = TextStyle( - fontSize = 18.sp, - fontWeight = FontWeight.Medium, - fontFamily = FontFamily(Font(R.font.sf_pro)), - color = textColor - ), - modifier = Modifier.padding(start = 4.dp, bottom = 8.dp, top = 8.dp) - ) - HeadVisualization() + Spacer(modifier = Modifier.height(16.dp)) + Text( + "Velocity", + style = TextStyle( + fontSize = 18.sp, + fontWeight = FontWeight.Medium, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = textColor + ), + modifier = Modifier.padding(start = 4.dp, bottom = 8.dp, top = 8.dp) + ) + AccelerationPlot() - Spacer(modifier = Modifier.height(16.dp)) - Text( - "Velocity", - style = TextStyle( - fontSize = 18.sp, - fontWeight = FontWeight.Medium, - fontFamily = FontFamily(Font(R.font.sf_pro)), - color = textColor - ), - modifier = Modifier.padding(start = 4.dp, bottom = 8.dp, top = 8.dp) - ) - AccelerationPlot() + Spacer(modifier = Modifier.height(16.dp)) - Spacer(modifier = Modifier.height(16.dp)) - Button ( + LaunchedEffect(gestureText) { + if (gestureText.isNotEmpty()) { + lastClickTime = System.currentTimeMillis() + delay(3000) + if (System.currentTimeMillis() - lastClickTime >= 3000) { + shouldExplode = true + } + } + } + } + StyledButton( onClick = { gestureText = "Shake your head or nod!" coroutineScope.launch { @@ -217,13 +241,9 @@ fun HeadTrackingScreen(navController: NavController) { gestureText = if (accepted) "\"Yes\" gesture detected." else "\"No\" gesture detected." } }, - modifier = Modifier - .fillMaxWidth() - .height(55.dp), - colors = ButtonDefaults.buttonColors( - containerColor = backgroundColor - ), - shape = RoundedCornerShape(8.dp) + backdrop = backdrop, + modifier = Modifier.fillMaxWidth(0.75f), + maxScale = 0.05f ) { Text( "Test Head Gestures", @@ -235,19 +255,6 @@ fun HeadTrackingScreen(navController: NavController) { ), ) } - var lastClickTime by remember { mutableLongStateOf(0L) } - var shouldExplode by remember { mutableStateOf(false) } - - LaunchedEffect(gestureText) { - if (gestureText.isNotEmpty()) { - lastClickTime = System.currentTimeMillis() - delay(3000) - if (System.currentTimeMillis() - lastClickTime >= 3000) { - shouldExplode = true - } - } - } - Box( contentAlignment = Alignment.Center, modifier = Modifier.padding(top = 12.dp, bottom = 24.dp) 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 6c642a5..1a48a12 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 @@ -41,6 +41,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.HazeState import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi @@ -77,14 +79,15 @@ fun HearingAidAdjustmentsScreen(@Suppress("unused") navController: NavController val attManager = ServiceManager.getService()?.attManager ?: throw IllegalStateException("ATTManager not available") val aacpManager = remember { ServiceManager.getService()?.aacpManager } - + val backdrop = rememberLayerBackdrop() StyledScaffold( title = stringResource(R.string.adjustments), navigationButton = { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) } ) { spacerHeight -> @@ -92,6 +95,7 @@ fun HearingAidAdjustmentsScreen(@Suppress("unused") navController: NavController modifier = Modifier .hazeSource(hazeState) .fillMaxSize() + .layerBackdrop(backdrop) .verticalScroll(verticalScrollState) .padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(16.dp) @@ -282,7 +286,7 @@ fun HearingAidAdjustmentsScreen(@Suppress("unused") navController: NavController } StyledSlider( - label = stringResource(R.string.amplification).uppercase(), + label = stringResource(R.string.amplification), valueRange = -1f..1f, mutableFloatState = amplificationSliderValue, onValueChange = { @@ -301,20 +305,20 @@ fun HearingAidAdjustmentsScreen(@Suppress("unused") navController: NavController ) StyledSlider( - label = stringResource(R.string.balance).uppercase(), + label = stringResource(R.string.balance), valueRange = -1f..1f, mutableFloatState = balanceSliderValue, onValueChange = { balanceSliderValue.floatValue = it }, - snapPoints = listOf(0f), + snapPoints = listOf(-1f, 0f, 1f), startLabel = stringResource(R.string.left), endLabel = stringResource(R.string.right), independent = true, ) StyledSlider( - label = stringResource(R.string.tone).uppercase(), + label = stringResource(R.string.tone), valueRange = -1f..1f, mutableFloatState = toneSliderValue, onValueChange = { @@ -326,7 +330,7 @@ fun HearingAidAdjustmentsScreen(@Suppress("unused") navController: NavController ) StyledSlider( - label = stringResource(R.string.ambient_noise_reduction).uppercase(), + label = stringResource(R.string.ambient_noise_reduction), valueRange = 0f..1f, mutableFloatState = ambientNoiseReductionSliderValue, onValueChange = { 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 106ea48..28e4c98 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 @@ -20,15 +20,10 @@ package me.kavishdevar.librepods.screens import android.annotation.SuppressLint import android.util.Log -import androidx.compose.animation.animateColorAsState -import androidx.compose.animation.core.tween import androidx.compose.foundation.background -import androidx.compose.foundation.clickable -import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -37,25 +32,18 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider -import androidx.compose.material3.Icon import androidx.compose.material3.SnackbarHostState 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.draw.clip import androidx.compose.ui.graphics.Color -import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.Font @@ -74,9 +62,9 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import me.kavishdevar.librepods.R import me.kavishdevar.librepods.composables.ConfirmationDialog +import me.kavishdevar.librepods.composables.NavigationButton import me.kavishdevar.librepods.composables.StyledIconButton import me.kavishdevar.librepods.composables.StyledScaffold -import me.kavishdevar.librepods.composables.StyledSwitch import me.kavishdevar.librepods.composables.StyledToggle import me.kavishdevar.librepods.services.ServiceManager import me.kavishdevar.librepods.utils.AACPManager @@ -117,7 +105,8 @@ fun HearingAidScreen(navController: NavController) { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) }, actionButtons = emptyList(), @@ -129,7 +118,7 @@ fun HearingAidScreen(navController: NavController) { .hazeSource(hazeState) .fillMaxSize() .verticalScroll(verticalScrollState) - .padding(16.dp), + .padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(8.dp) ) { Spacer(modifier = Modifier.height(spacerHeight)) @@ -175,22 +164,22 @@ fun HearingAidScreen(navController: NavController) { } fun onAdjustPhoneChange(value: Boolean) { - adjustPhoneEnabled.value = value + // TODO } fun onAdjustMediaChange(value: Boolean) { - adjustMediaEnabled.value = value + // TODO } Text( - text = stringResource(R.string.hearing_aid).uppercase(), + text = stringResource(R.string.hearing_aid), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f), fontFamily = FontFamily(Font(R.font.sf_pro)) ), - modifier = Modifier.padding(8.dp, bottom = 2.dp) + modifier = Modifier.padding(16.dp, bottom = 2.dp) ) val backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) @@ -198,9 +187,9 @@ fun HearingAidScreen(navController: NavController) { Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) .clip( - RoundedCornerShape(14.dp) + RoundedCornerShape(28.dp) ) ) { StyledToggle( @@ -209,31 +198,17 @@ fun HearingAidScreen(navController: NavController) { independent = false ) HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888), modifier = Modifier - .padding(start = 12.dp, end = 0.dp) + .padding(horizontal = 12.dp) + ) + NavigationButton( + to = "hearing_aid_adjustments", + name = stringResource(R.string.adjustments), + navController, + independent = false ) - - Row( - modifier = Modifier - .fillMaxWidth() - .clickable { navController.navigate("hearing_aid_adjustments") } - .padding(12.dp), - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = stringResource(R.string.adjustments), - fontSize = 16.sp, - color = textColor - ) - Spacer(modifier = Modifier.weight(1f)) - Icon( - imageVector = Icons.AutoMirrored.Filled.KeyboardArrowRight, - contentDescription = null, - tint = textColor - ) - } } Text( text = stringResource(R.string.hearing_aid_description), @@ -243,12 +218,12 @@ fun HearingAidScreen(navController: NavController) { 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) + modifier = Modifier.padding(horizontal = 16.dp) ) Spacer(modifier = Modifier.height(16.dp)) - + StyledToggle( - title = stringResource(R.string.media_assist).uppercase(), + title = stringResource(R.string.media_assist), label = stringResource(R.string.media_assist), checkedState = mediaAssistEnabled, independent = true, @@ -260,99 +235,27 @@ fun HearingAidScreen(navController: NavController) { Column ( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) ) { - val isDarkThemeLocal = isSystemInDarkTheme() - var backgroundColorAdjustMedia by remember { mutableStateOf(if (isDarkThemeLocal) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) } - val animatedBackgroundColorAdjustMedia by animateColorAsState(targetValue = backgroundColorAdjustMedia, animationSpec = tween(durationMillis = 500)) - Row( - modifier = Modifier - .fillMaxWidth() - .padding(12.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - backgroundColorAdjustMedia = if (isDarkThemeLocal) Color(0x40888888) else Color(0x40D9D9D9) - tryAwaitRelease() - backgroundColorAdjustMedia = if (isDarkThemeLocal) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) - }, - onTap = { - onAdjustMediaChange(!adjustMediaEnabled.value) - } - ) - } - .background( - animatedBackgroundColorAdjustMedia, - RoundedCornerShape(topStart = 14.dp, topEnd = 14.dp) - ), - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = stringResource(R.string.adjust_media), - modifier = Modifier.weight(1f), - style = TextStyle( - fontSize = 16.sp, - fontFamily = FontFamily(Font(R.font.sf_pro)), - fontWeight = FontWeight.Normal, - color = textColor - ) - ) - StyledSwitch( - checked = adjustMediaEnabled.value, - onCheckedChange = { - onAdjustMediaChange(it) - }, - ) - } - + StyledToggle( + label = stringResource(R.string.adjust_media), + checkedState = adjustMediaEnabled, + onCheckedChange = { onAdjustMediaChange(it) }, + independent = false + ) HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888), modifier = Modifier - .padding(start = 12.dp, end = 0.dp) + .padding(horizontal = 12.dp) ) - var backgroundColorAdjustPhone by remember { mutableStateOf(if (isDarkThemeLocal) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) } - val animatedBackgroundColorAdjustPhone by animateColorAsState(targetValue = backgroundColorAdjustPhone, animationSpec = tween(durationMillis = 500)) - Row( - modifier = Modifier - .fillMaxWidth() - .padding(12.dp) - .pointerInput(Unit) { - detectTapGestures( - onPress = { - backgroundColorAdjustPhone = if (isDarkThemeLocal) Color(0x40888888) else Color(0x40D9D9D9) - tryAwaitRelease() - backgroundColorAdjustPhone = if (isDarkThemeLocal) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) - }, - onTap = { - onAdjustPhoneChange(!adjustPhoneEnabled.value) - } - ) - } - .background( - animatedBackgroundColorAdjustPhone, - RoundedCornerShape(bottomStart = 14.dp, bottomEnd = 14.dp) - ), - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = stringResource(R.string.adjust_calls), - modifier = Modifier.weight(1f), - style = TextStyle( - fontSize = 16.sp, - fontFamily = FontFamily(Font(R.font.sf_pro)), - fontWeight = FontWeight.Normal, - color = textColor - ) - ) - StyledSwitch( - checked = adjustPhoneEnabled.value, - onCheckedChange = { - onAdjustPhoneChange(it) - }, - ) - } + StyledToggle( + label = stringResource(R.string.adjust_calls), + checkedState = adjustPhoneEnabled, + onCheckedChange = { onAdjustPhoneChange(it) }, + independent = false + ) } } } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/Onboarding.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/Onboarding.kt index e6420bb..7e886ba 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/Onboarding.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/Onboarding.kt @@ -73,6 +73,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.content.edit import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -151,6 +153,7 @@ fun Onboarding(navController: NavController, activityContext: Context) { isComplete = true } } + val backdrop = rememberLayerBackdrop() StyledScaffold( title = "Setting Up", actionButtons = listOf( @@ -160,7 +163,8 @@ fun Onboarding(navController: NavController, activityContext: Context) { showSkipDialog = true }, icon = "􀊋", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) } ) @@ -168,6 +172,7 @@ fun Onboarding(navController: NavController, activityContext: Context) { Column( modifier = Modifier .fillMaxSize() + .layerBackdrop(backdrop) .padding(horizontal = 16.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(16.dp) diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/PressAndHoldSettingsScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/PressAndHoldSettingsScreen.kt index 032cbc4..d461322 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/PressAndHoldSettingsScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/PressAndHoldSettingsScreen.kt @@ -23,6 +23,7 @@ package me.kavishdevar.librepods.screens import android.content.Context import android.util.Log import androidx.compose.animation.animateColorAsState +import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween import androidx.compose.foundation.background import androidx.compose.foundation.gestures.detectTapGestures @@ -37,8 +38,6 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Checkbox -import androidx.compose.material3.CheckboxDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon @@ -50,11 +49,11 @@ 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.scale import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.Font import androidx.compose.ui.text.font.FontFamily @@ -63,6 +62,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.content.edit import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import me.kavishdevar.librepods.R import me.kavishdevar.librepods.composables.StyledIconButton @@ -76,20 +77,20 @@ import kotlin.io.encoding.ExperimentalEncodingApi @Composable fun RightDivider() { HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888), modifier = Modifier - .padding(start = 72.dp) + .padding(start = 72.dp, end = 20.dp) ) } @Composable fun RightDividerNoIcon() { HorizontalDivider( - thickness = 1.5.dp, + thickness = 1.dp, color = Color(0x40888888), modifier = Modifier - .padding(start = 20.dp) + .padding(start = 20.dp, end = 20.dp) ) } @@ -117,19 +118,22 @@ fun LongPress(navController: NavController, name: String) { val longPressActionPref = sharedPreferences.getString(prefKey, StemAction.CYCLE_NOISE_CONTROL_MODES.name) Log.d("PressAndHoldSettingsScreen", "Long press action preference ($prefKey): $longPressActionPref") var longPressAction by remember { mutableStateOf(StemAction.valueOf(longPressActionPref ?: StemAction.CYCLE_NOISE_CONTROL_MODES.name)) } + val backdrop = rememberLayerBackdrop() StyledScaffold( title = name, navigationButton = { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) } ) { spacerHeight -> val backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF) Column ( modifier = Modifier + .layerBackdrop(backdrop) .fillMaxSize() .padding(top = 8.dp) .padding(horizontal = 16.dp) @@ -138,11 +142,11 @@ fun LongPress(navController: NavController, name: String) { Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)), + .background(backgroundColor, RoundedCornerShape(28.dp)), horizontalAlignment = Alignment.CenterHorizontally ) { LongPressActionElement( - name = "Noise Control", + name = stringResource(R.string.noise_control), selected = longPressAction == StemAction.CYCLE_NOISE_CONTROL_MODES, onClick = { longPressAction = StemAction.CYCLE_NOISE_CONTROL_MODES @@ -153,7 +157,7 @@ fun LongPress(navController: NavController, name: String) { ) RightDividerNoIcon() LongPressActionElement( - name = "Digital Assistant", + name = stringResource(R.string.digital_assistant), selected = longPressAction == StemAction.DIGITAL_ASSISTANT, onClick = { longPressAction = StemAction.DIGITAL_ASSISTANT @@ -165,23 +169,25 @@ fun LongPress(navController: NavController, name: String) { } if (longPressAction == StemAction.CYCLE_NOISE_CONTROL_MODES) { + Spacer(modifier = Modifier.height(32.dp)) Text( - text = "NOISE CONTROL", + text = stringResource(R.string.noise_control), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f), ), fontFamily = FontFamily(Font(R.font.sf_pro)), modifier = Modifier - .padding(top = 32.dp, bottom = 4.dp) - .padding(horizontal = 8.dp) + .padding(horizontal = 18.dp) ) + Spacer(modifier = Modifier.height(8.dp)) + Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)), + .background(backgroundColor, RoundedCornerShape(28.dp)), horizontalAlignment = Alignment.CenterHorizontally ) { val offListeningModeValue = ServiceManager.getService()!!.aacpManager.controlCommandStatusList.find { @@ -189,28 +195,28 @@ fun LongPress(navController: NavController, name: String) { }?.value?.takeIf { it.isNotEmpty() }?.get(0) val offListeningMode = offListeningModeValue == 1.toByte() ListeningModeElement( - name = "Off", + name = stringResource(R.string.off), enabled = offListeningMode, resourceId = R.drawable.noise_cancellation, isFirst = true) if (offListeningMode) RightDivider() ListeningModeElement( - name = "Transparency", + name = stringResource(R.string.transparency), resourceId = R.drawable.transparency, isFirst = !offListeningMode) RightDivider() ListeningModeElement( - name = "Adaptive", + name = stringResource(R.string.adaptive), resourceId = R.drawable.adaptive) RightDivider() ListeningModeElement( - name = "Noise Cancellation", + name = stringResource(R.string.noise_cancellation), resourceId = R.drawable.noise_cancellation, isLast = true) } - Spacer(modifier = Modifier.height(4.dp)) + Spacer(modifier = Modifier.height(8.dp)) Text( - text = "Press and hold the stem to cycle between the selected noise control modes.", + text = stringResource(R.string.press_and_hold_noise_control_description), style = TextStyle( fontSize = 12.sp, fontWeight = FontWeight.Light, @@ -218,7 +224,7 @@ fun LongPress(navController: NavController, name: String) { fontFamily = FontFamily(Font(R.font.sf_pro)) ), modifier = Modifier - .padding(horizontal = 8.dp) + .padding(horizontal = 18.dp) ) } } @@ -329,8 +335,8 @@ fun ListeningModeElement(name: String, enabled: Boolean = true, resourceId: Int, } val shape = when { - isFirst -> RoundedCornerShape(topStart = 14.dp, topEnd = 14.dp) - isLast -> RoundedCornerShape(bottomStart = 14.dp, bottomEnd = 14.dp) + isFirst -> RoundedCornerShape(topStart = 28.dp, topEnd = 28.dp) + isLast -> RoundedCornerShape(bottomStart = 28.dp, bottomEnd = 28.dp) else -> RoundedCornerShape(0.dp) } var backgroundColor by remember { mutableStateOf(if (darkMode) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) } @@ -352,7 +358,7 @@ fun ListeningModeElement(name: String, enabled: Boolean = true, resourceId: Int, }, ) } - .padding(horizontal = 16.dp, vertical = 0.dp), + .padding(horizontal = 16.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween ) { @@ -384,24 +390,19 @@ fun ListeningModeElement(name: String, enabled: Boolean = true, resourceId: Int, fontFamily = FontFamily(Font(R.font.sf_pro)), ) } - Checkbox( - checked = checked.value, - onCheckedChange = { valueChanged() }, - colors = CheckboxDefaults.colors().copy( - checkedCheckmarkColor = Color(0xFF007AFF), - uncheckedCheckmarkColor = Color.Transparent, - checkedBoxColor = Color.Transparent, - uncheckedBoxColor = Color.Transparent, - checkedBorderColor = Color.Transparent, - uncheckedBorderColor = Color.Transparent, - disabledBorderColor = Color.Transparent, - disabledCheckedBoxColor = Color.Transparent, - disabledUncheckedBoxColor = Color.Transparent, - disabledUncheckedBorderColor = Color.Transparent + + val floatAnimateState by animateFloatAsState( + targetValue = if (checked.value) 1f else 0f, + animationSpec = tween(durationMillis = 300) + ) + Text( + text = "􀆅", + style = TextStyle( + fontSize = 20.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = Color(0xFF007AFF).copy(alpha = floatAnimateState), ), - modifier = Modifier - .height(24.dp) - .scale(1.5f), + modifier = Modifier.padding(end = 4.dp) ) } } @@ -417,15 +418,15 @@ fun LongPressActionElement( ) { val darkMode = isSystemInDarkTheme() val shape = when { - isFirst -> RoundedCornerShape(topStart = 14.dp, topEnd = 14.dp) - isLast -> RoundedCornerShape(bottomStart = 14.dp, bottomEnd = 14.dp) + isFirst -> RoundedCornerShape(topStart = 28.dp, topEnd = 28.dp) + isLast -> RoundedCornerShape(bottomStart = 28.dp, bottomEnd = 28.dp) else -> RoundedCornerShape(0.dp) } var backgroundColor by remember { mutableStateOf(if (darkMode) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)) } val animatedBackgroundColor by animateColorAsState(targetValue = backgroundColor, animationSpec = tween(durationMillis = 500)) Row( modifier = Modifier - .height(48.dp) + .height(55.dp) .background(animatedBackgroundColor, shape) .pointerInput(Unit) { detectTapGestures( @@ -437,7 +438,7 @@ fun LongPressActionElement( } ) } - .padding(horizontal = 16.dp, vertical = 0.dp), + .padding(horizontal = 16.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween ) { @@ -449,24 +450,18 @@ fun LongPressActionElement( .weight(1f) .padding(start = 4.dp) ) - Checkbox( - checked = selected, - onCheckedChange = { onClick() }, - colors = CheckboxDefaults.colors().copy( - checkedCheckmarkColor = Color(0xFF007AFF), - uncheckedCheckmarkColor = Color.Transparent, - checkedBoxColor = Color.Transparent, - uncheckedBoxColor = Color.Transparent, - checkedBorderColor = Color.Transparent, - uncheckedBorderColor = Color.Transparent, - disabledBorderColor = Color.Transparent, - disabledCheckedBoxColor = Color.Transparent, - disabledUncheckedBoxColor = Color.Transparent, - disabledUncheckedBorderColor = Color.Transparent + val floatAnimateState by animateFloatAsState( + targetValue = if (selected) 1f else 0f, + animationSpec = tween(durationMillis = 300) + ) + Text( + text = "􀆅", + style = TextStyle( + fontSize = 20.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = Color(0xFF007AFF).copy(alpha = floatAnimateState) ), - modifier = Modifier - .height(24.dp) - .scale(1.5f), + modifier = Modifier.padding(end = 4.dp) ) } } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/RenameScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/RenameScreen.kt index 9dd1f95..11f5eba 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/RenameScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/RenameScreen.kt @@ -32,11 +32,9 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.BasicTextField -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Clear import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.mutableStateOf @@ -52,12 +50,16 @@ import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextRange import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.input.TextFieldValue 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 androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import me.kavishdevar.librepods.R import me.kavishdevar.librepods.composables.StyledIconButton @@ -81,19 +83,23 @@ fun RenameScreen(navController: NavController) { name.value = name.value.copy(selection = TextRange(name.value.text.length)) } + val backdrop = rememberLayerBackdrop() + StyledScaffold( title = stringResource(R.string.name), navigationButton = { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) }, ) { spacerHeight -> Column( modifier = Modifier .fillMaxSize() + .layerBackdrop(backdrop) .padding(horizontal = 16.dp) ) { Spacer(modifier = Modifier.height(spacerHeight)) @@ -105,10 +111,10 @@ fun RenameScreen(navController: NavController) { verticalAlignment = Alignment.CenterVertically, modifier = Modifier .fillMaxWidth() - .height(55.dp) + .height(58.dp) .background( backgroundColor, - RoundedCornerShape(14.dp) + RoundedCornerShape(28.dp) ) .padding(horizontal = 16.dp, vertical = 8.dp) ) { @@ -120,8 +126,9 @@ fun RenameScreen(navController: NavController) { ServiceManager.getService()?.setName(it.text) }, textStyle = TextStyle( - color = textColor, fontSize = 16.sp, + color = textColor, + fontFamily = FontFamily(Font(R.font.sf_pro)) ), singleLine = true, cursorBrush = SolidColor(cursorColor), @@ -138,14 +145,15 @@ fun RenameScreen(navController: NavController) { IconButton( onClick = { name.value = TextFieldValue("") - sharedPreferences.edit { putString("name", "") } - ServiceManager.getService()?.setName("") } ) { - Icon( - Icons.Default.Clear, - contentDescription = "Clear", - tint = if (isDarkTheme) Color.White else Color.Black + Text( + text = "􀁡", + style = TextStyle( + fontSize = 16.sp, + fontFamily = FontFamily(Font(R.font.sf_pro)), + color = if (isDarkTheme) Color.White.copy(alpha = 0.6f) else Color.Black.copy(alpha = 0.6f) + ), ) } } 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 a0a8855..ebee5a5 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 @@ -59,6 +59,8 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import kotlinx.coroutines.delay @@ -95,19 +97,23 @@ fun TransparencySettingsScreen(navController: NavController) { val activeTrackColor = if (isDarkTheme) Color(0xFF007AFF) else Color(0xFF3C6DF5) val thumbColor = if (isDarkTheme) Color(0xFFFFFFFF) else Color(0xFFFFFFFF) + val backdrop = rememberLayerBackdrop() + StyledScaffold( title = stringResource(R.string.customize_transparency_mode), navigationButton = { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) } ){ spacerHeight, hazeState -> Column( modifier = Modifier .hazeSource(hazeState) + .layerBackdrop(backdrop) .fillMaxSize() .verticalScroll(verticalScrollState) .padding(horizontal = 16.dp), @@ -154,19 +160,15 @@ fun TransparencySettingsScreen(navController: NavController) { object : (ByteArray) -> Unit { override fun invoke(value: ByteArray) { val parsed = parseTransparencySettingsResponse(value) - if (parsed != null) { - enabled.value = parsed.enabled - amplificationSliderValue.floatValue = parsed.netAmplification - balanceSliderValue.floatValue = parsed.balance - toneSliderValue.floatValue = parsed.leftTone - ambientNoiseReductionSliderValue.floatValue = - parsed.leftAmbientNoiseReduction - conversationBoostEnabled.value = parsed.leftConversationBoost - eq.value = parsed.leftEQ.copyOf() - Log.d(TAG, "Updated transparency settings from notification") - } else { - Log.w(TAG, "Failed to parse transparency settings from notification") - } + enabled.value = parsed.enabled + amplificationSliderValue.floatValue = parsed.netAmplification + balanceSliderValue.floatValue = parsed.balance + toneSliderValue.floatValue = parsed.leftTone + ambientNoiseReductionSliderValue.floatValue = + parsed.leftAmbientNoiseReduction + conversationBoostEnabled.value = parsed.leftConversationBoost + eq.value = parsed.leftEQ.copyOf() + Log.d(TAG, "Updated transparency settings from notification") } } } @@ -251,12 +253,7 @@ fun TransparencySettingsScreen(navController: NavController) { try { val data = attManager.read(ATTHandles.TRANSPARENCY) parsedSettings = parseTransparencySettingsResponse(data = data) - if (parsedSettings != null) { - Log.d(TAG, "Parsed settings on attempt $attempt") - break - } else { - Log.d(TAG, "Parsing returned null on attempt $attempt") - } + Log.d(TAG, "Parsed settings on attempt $attempt") } catch (e: Exception) { Log.w(TAG, "Read attempt $attempt failed: ${e.message}") } @@ -297,7 +294,7 @@ fun TransparencySettingsScreen(navController: NavController) { ) Spacer(modifier = Modifier.height(4.dp)) StyledSlider( - label = stringResource(R.string.amplification).uppercase(), + label = stringResource(R.string.amplification), valueRange = -1f..1f, mutableFloatState = amplificationSliderValue, onValueChange = { @@ -309,20 +306,20 @@ fun TransparencySettingsScreen(navController: NavController) { ) StyledSlider( - label = stringResource(R.string.balance).uppercase(), + label = stringResource(R.string.balance), valueRange = -1f..1f, mutableFloatState = balanceSliderValue, onValueChange = { balanceSliderValue.floatValue = it }, - snapPoints = listOf(0f), + snapPoints = listOf(-1f, 0f, 1f), startLabel = stringResource(R.string.left), endLabel = stringResource(R.string.right), independent = true, ) StyledSlider( - label = stringResource(R.string.tone).uppercase(), + label = stringResource(R.string.tone), valueRange = -1f..1f, mutableFloatState = toneSliderValue, onValueChange = { @@ -334,7 +331,7 @@ fun TransparencySettingsScreen(navController: NavController) { ) StyledSlider( - label = stringResource(R.string.ambient_noise_reduction).uppercase(), + label = stringResource(R.string.ambient_noise_reduction), valueRange = 0f..1f, mutableFloatState = ambientNoiseReductionSliderValue, onValueChange = { @@ -356,20 +353,20 @@ fun TransparencySettingsScreen(navController: NavController) { // Only show transparency mode EQ section if SDP offset is available if (isSdpOffsetAvailable.value) { Text( - text = stringResource(R.string.equalizer).uppercase(), + text = stringResource(R.string.equalizer), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f), fontFamily = FontFamily(Font(R.font.sf_pro)) ), - modifier = Modifier.padding(8.dp, bottom = 2.dp) + modifier = Modifier.padding(16.dp, bottom = 4.dp) ) Column( modifier = Modifier .fillMaxWidth() - .background(backgroundColor, RoundedCornerShape(14.dp)) + .background(backgroundColor, RoundedCornerShape(28.dp)) .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceBetween diff --git a/android/app/src/main/java/me/kavishdevar/librepods/screens/TroubleshootingScreen.kt b/android/app/src/main/java/me/kavishdevar/librepods/screens/TroubleshootingScreen.kt index 1124ad5..467367b 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/screens/TroubleshootingScreen.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/screens/TroubleshootingScreen.kt @@ -85,6 +85,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.content.FileProvider import androidx.navigation.NavController +import com.kyant.backdrop.backdrops.layerBackdrop +import com.kyant.backdrop.backdrops.rememberLayerBackdrop import dev.chrisbanes.haze.hazeSource import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi import kotlinx.coroutines.Dispatchers @@ -208,6 +210,8 @@ fun TroubleshootingScreen(navController: NavController) { showBottomSheet = true } + val backdrop = rememberLayerBackdrop() + Box( modifier = Modifier.fillMaxSize() ) { @@ -217,28 +221,30 @@ fun TroubleshootingScreen(navController: NavController) { StyledIconButton( onClick = { navController.popBackStack() }, icon = "􀯶", - darkMode = isDarkTheme + darkMode = isDarkTheme, + backdrop = backdrop ) } ){ spacerHeight, hazeState -> Column( modifier = Modifier .fillMaxSize() - .verticalScroll(scrollState) + .layerBackdrop(backdrop) .hazeSource(state = hazeState) + .verticalScroll(scrollState) .padding(horizontal = 16.dp) ) { Spacer(modifier = Modifier.height(spacerHeight)) Text( - text = stringResource(R.string.saved_logs).uppercase(), + text = stringResource(R.string.saved_logs), style = TextStyle( fontSize = 14.sp, - fontWeight = FontWeight.Light, + fontWeight = FontWeight.Bold, color = textColor.copy(alpha = 0.6f), fontFamily = FontFamily(Font(R.font.sf_pro)) ), - modifier = Modifier.padding(8.dp, bottom = 2.dp, top = 8.dp) + modifier = Modifier.padding(16.dp, bottom = 4.dp, top = 8.dp) ) Spacer(modifier = Modifier.height(2.dp)) @@ -249,7 +255,7 @@ fun TroubleshootingScreen(navController: NavController) { .fillMaxWidth() .background( backgroundColor, - RoundedCornerShape(14.dp) + RoundedCornerShape(28.dp) ) .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally @@ -266,7 +272,7 @@ fun TroubleshootingScreen(navController: NavController) { .fillMaxWidth() .background( backgroundColor, - RoundedCornerShape(14.dp) + RoundedCornerShape(28.dp) ) .padding(horizontal = 16.dp, vertical = 8.dp) ) { @@ -372,14 +378,14 @@ fun TroubleshootingScreen(navController: NavController) { Spacer(modifier = Modifier.height(16.dp)) Text( - text = "TROUBLESHOOTING STEPS".uppercase(), + text = "TROUBLESHOOTING STEPS", 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, top = 8.dp) + modifier = Modifier.padding(16.dp, bottom = 2.dp, top = 8.dp) ) Spacer(modifier = Modifier.height(2.dp)) @@ -389,7 +395,7 @@ fun TroubleshootingScreen(navController: NavController) { .fillMaxWidth() .background( backgroundColor, - RoundedCornerShape(14.dp) + RoundedCornerShape(28.dp) ) .padding(16.dp) ) { diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 2c49987..31a83be 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -15,12 +15,13 @@ Case Test Name - Noise Control + Listening Mode Off Transparency Adaptive Noise Cancellation Press and Hold AirPods + Press and hold the stem to cycle between the selected listening modes. Head Gestures Left Right @@ -110,7 +111,7 @@ 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 + 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 @@ -133,7 +134,7 @@ Ambient Noise Reduction Conversation Boost Conversation Boost focuses your AirPods Pro on the person talking in front of you, making it easier to hear in a face-to-face conversation. - AirPods can use the results of a hearing test to make adjustments that improve the clarity of voices and sounds around you. \n\n Hearing Aid is only intended for people with perceived mild to moderate hearing loss. + AirPods can use the results of a hearing test to make adjustments that improve the clarity of voices and sounds around you.\n\nHearing Aid is only intended for people with perceived mild to moderate hearing loss. Media Assist AirPods Pro can use the results of a hearing test to make adjustments that improve the clarity of music, video, and calls. Adjust Music and Video @@ -174,4 +175,5 @@ Must be exactly 32 hex characters Error converting hex: Found offset please restart the Bluetooth process + Digital Assistant