Skip to content

Commit 08738a1

Browse files
committed
android: liquidglass, maybe?
the switch and icon button took quite a while. i forgot the order of modifiers matters!
1 parent 8dc7a97 commit 08738a1

33 files changed

+1187
-1934
lines changed
-851 Bytes
Binary file not shown.
-893 Bytes
Binary file not shown.

android/app/src/main/java/me/kavishdevar/librepods/composables/AudioSettings.kt

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,22 +51,22 @@ fun AudioSettings(navController: NavController) {
5151
val textColor = if (isDarkTheme) Color.White else Color.Black
5252

5353
Text(
54-
text = stringResource(R.string.audio).uppercase(),
54+
text = stringResource(R.string.audio),
5555
style = TextStyle(
5656
fontSize = 14.sp,
57-
fontWeight = FontWeight.Light,
57+
fontWeight = FontWeight.Bold,
5858
color = textColor.copy(alpha = 0.6f)
5959
),
60-
modifier = Modifier.padding(8.dp, bottom = 2.dp)
60+
modifier = Modifier.padding(16.dp, bottom = 4.dp)
6161
)
6262

6363
val backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)
6464

6565
Column(
6666
modifier = Modifier
67-
.clip(RoundedCornerShape(14.dp))
67+
.clip(RoundedCornerShape(28.dp))
6868
.fillMaxWidth()
69-
.background(backgroundColor, RoundedCornerShape(14.dp))
69+
.background(backgroundColor, RoundedCornerShape(28.dp))
7070
.padding(top = 2.dp)
7171
) {
7272

@@ -76,11 +76,12 @@ fun AudioSettings(navController: NavController) {
7676
controlCommandIdentifier = AACPManager.Companion.ControlCommandIdentifiers.ADAPTIVE_VOLUME_CONFIG,
7777
independent = false
7878
)
79+
7980
HorizontalDivider(
80-
thickness = 1.5.dp,
81+
thickness = 1.dp,
8182
color = Color(0x40888888),
8283
modifier = Modifier
83-
.padding(start = 12.dp, end = 0.dp)
84+
.padding(horizontal= 12.dp)
8485
)
8586

8687
StyledToggle(
@@ -90,10 +91,10 @@ fun AudioSettings(navController: NavController) {
9091
independent = false
9192
)
9293
HorizontalDivider(
93-
thickness = 1.5.dp,
94+
thickness = 1.dp,
9495
color = Color(0x40888888),
9596
modifier = Modifier
96-
.padding(start = 12.dp, end = 0.dp)
97+
.padding(horizontal= 12.dp)
9798
)
9899

99100
StyledToggle(
@@ -103,10 +104,10 @@ fun AudioSettings(navController: NavController) {
103104
independent = false
104105
)
105106
HorizontalDivider(
106-
thickness = 1.5.dp,
107+
thickness = 1.dp,
107108
color = Color(0x40888888),
108109
modifier = Modifier
109-
.padding(start = 12.dp, end = 0.dp)
110+
.padding(horizontal= 12.dp)
110111
)
111112

112113
NavigationButton(

android/app/src/main/java/me/kavishdevar/librepods/composables/BatteryIndicator.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ import androidx.compose.foundation.isSystemInDarkTheme
2727
import androidx.compose.foundation.layout.Box
2828
import androidx.compose.foundation.layout.Column
2929
import androidx.compose.foundation.layout.padding
30+
import androidx.compose.foundation.layout.Spacer
3031
import androidx.compose.foundation.layout.size
32+
import androidx.compose.foundation.layout.height
3133
import androidx.compose.material3.CircularProgressIndicator
3234
import androidx.compose.material3.Text
3335
import androidx.compose.runtime.Composable
@@ -71,7 +73,6 @@ fun BatteryIndicator(
7173

7274
Column(
7375
modifier = Modifier
74-
.padding(12.dp)
7576
.background(backgroundColor), // just for haze to work
7677
horizontalAlignment = Alignment.CenterHorizontally
7778
) {
@@ -85,7 +86,7 @@ fun BatteryIndicator(
8586
color = batteryFillColor,
8687
gapSize = 0.dp,
8788
strokeCap = StrokeCap.Round,
88-
strokeWidth = 2.dp,
89+
strokeWidth = 4.dp,
8990
trackColor = if (isDarkTheme) Color(0xFF0E0E0F) else Color(0xFFE3E3E8)
9091
)
9192

@@ -101,6 +102,8 @@ fun BatteryIndicator(
101102
)
102103
}
103104

105+
Spacer(modifier = Modifier.height(4.dp))
106+
104107
Text(
105108
text = "$prefix $batteryPercentage%",
106109
color = batteryTextColor,

android/app/src/main/java/me/kavishdevar/librepods/composables/BatteryView.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ fun BatteryView(service: AirPodsService, preview: Boolean = false) {
146146
contentDescription = stringResource(R.string.buds),
147147
modifier = Modifier
148148
.fillMaxWidth()
149-
.padding(12.dp)
149+
.padding(8.dp)
150150
)
151151
if (
152152
leftCharging == rightCharging &&
@@ -202,7 +202,7 @@ fun BatteryView(service: AirPodsService, preview: Boolean = false) {
202202
contentDescription = stringResource(R.string.case_alt),
203203
modifier = Modifier
204204
.fillMaxWidth()
205-
.padding(12.dp)
205+
.padding(8.dp)
206206
)
207207
if (caseLevel > 0 || case?.status != BatteryStatus.DISCONNECTED) {
208208
BatteryIndicator(

android/app/src/main/java/me/kavishdevar/librepods/composables/CallControlSettings.kt

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,8 @@ import androidx.compose.foundation.layout.Row
3232
import androidx.compose.foundation.layout.fillMaxWidth
3333
import androidx.compose.foundation.layout.height
3434
import androidx.compose.foundation.layout.padding
35-
import androidx.compose.foundation.layout.size
3635
import androidx.compose.foundation.shape.RoundedCornerShape
37-
import androidx.compose.material.icons.Icons
38-
import androidx.compose.material.icons.filled.KeyboardArrowDown
3936
import androidx.compose.material3.HorizontalDivider
40-
import androidx.compose.material3.Icon
4137
import androidx.compose.material3.Text
4238
import androidx.compose.runtime.Composable
4339
import androidx.compose.runtime.DisposableEffect
@@ -57,6 +53,8 @@ import androidx.compose.ui.layout.positionInParent
5753
import androidx.compose.ui.platform.LocalDensity
5854
import androidx.compose.ui.res.stringResource
5955
import androidx.compose.ui.text.TextStyle
56+
import androidx.compose.ui.text.font.Font
57+
import androidx.compose.ui.text.font.FontFamily
6058
import androidx.compose.ui.text.font.FontWeight
6159
import androidx.compose.ui.tooling.preview.Preview
6260
import androidx.compose.ui.unit.dp
@@ -76,19 +74,19 @@ fun CallControlSettings(hazeState: HazeState) {
7674
val backgroundColor = if (isDarkTheme) Color(0xFF1C1C1E) else Color(0xFFFFFFFF)
7775

7876
Text(
79-
text = stringResource(R.string.call_controls).uppercase(),
77+
text = stringResource(R.string.call_controls),
8078
style = TextStyle(
8179
fontSize = 14.sp,
82-
fontWeight = FontWeight.Light,
80+
fontWeight = FontWeight.Bold,
8381
color = textColor.copy(alpha = 0.6f)
8482
),
85-
modifier = Modifier.padding(8.dp, bottom = 2.dp)
83+
modifier = Modifier.padding(16.dp, bottom = 4.dp)
8684
)
8785

8886
Column(
8987
modifier = Modifier
9088
.fillMaxWidth()
91-
.background(backgroundColor, RoundedCornerShape(14.dp))
89+
.background(backgroundColor, RoundedCornerShape(28.dp))
9290
.padding(top = 2.dp)
9391
) {
9492
val service = ServiceManager.getService()!!
@@ -169,8 +167,8 @@ fun CallControlSettings(hazeState: HazeState) {
169167
Row(
170168
modifier = Modifier
171169
.fillMaxWidth()
172-
.padding(start = 12.dp, end = 12.dp)
173-
.height(50.dp),
170+
.padding(horizontal = 16.dp)
171+
.height(58.dp),
174172
horizontalArrangement = Arrangement.SpaceBetween,
175173
verticalAlignment = Alignment.CenterVertically
176174
) {
@@ -187,17 +185,17 @@ fun CallControlSettings(hazeState: HazeState) {
187185
)
188186
}
189187
HorizontalDivider(
190-
thickness = 1.5.dp,
188+
thickness = 1.dp,
191189
color = Color(0x40888888),
192190
modifier = Modifier
193-
.padding(start = 12.dp, end = 0.dp)
191+
.padding(horizontal = 12.dp)
194192
)
195193

196194
Row(
197195
modifier = Modifier
198196
.fillMaxWidth()
199-
.padding(start = 12.dp, end = 12.dp)
200-
.height(50.dp)
197+
.padding(horizontal = 16.dp)
198+
.height(58.dp)
201199
.pointerInput(Unit) {
202200
detectTapGestures { offset ->
203201
val now = System.currentTimeMillis()
@@ -276,14 +274,21 @@ fun CallControlSettings(hazeState: HazeState) {
276274
) {
277275
Text(
278276
text = singlePressAction,
279-
fontSize = 16.sp,
280-
color = textColor.copy(alpha = 0.8f)
277+
style = TextStyle(
278+
fontSize = 16.sp,
279+
color = textColor.copy(alpha = 0.8f),
280+
fontFamily = FontFamily(Font(R.font.sf_pro))
281+
)
281282
)
282-
Icon(
283-
Icons.Default.KeyboardArrowDown,
284-
contentDescription = null,
285-
modifier = Modifier.size(18.dp),
286-
tint = textColor.copy(alpha = 0.6f)
283+
Text(
284+
text = "􀆏",
285+
style = TextStyle(
286+
fontSize = 16.sp,
287+
color = textColor.copy(alpha = 0.6f),
288+
fontFamily = FontFamily(Font(R.font.sf_pro))
289+
),
290+
modifier = Modifier
291+
.padding(start = 6.dp)
287292
)
288293
}
289294

@@ -315,17 +320,17 @@ fun CallControlSettings(hazeState: HazeState) {
315320
}
316321
}
317322
HorizontalDivider(
318-
thickness = 1.5.dp,
323+
thickness = 1.dp,
319324
color = Color(0x40888888),
320325
modifier = Modifier
321-
.padding(start = 12.dp, end = 0.dp)
326+
.padding(horizontal = 12.dp)
322327
)
323328

324329
Row(
325330
modifier = Modifier
326331
.fillMaxWidth()
327-
.padding(start = 12.dp, end = 12.dp)
328-
.height(50.dp)
332+
.padding(horizontal = 16.dp)
333+
.height(58.dp)
329334
.pointerInput(Unit) {
330335
detectTapGestures { offset ->
331336
val now = System.currentTimeMillis()
@@ -404,14 +409,21 @@ fun CallControlSettings(hazeState: HazeState) {
404409
) {
405410
Text(
406411
text = doublePressAction,
407-
fontSize = 16.sp,
408-
color = textColor.copy(alpha = 0.8f)
412+
style = TextStyle(
413+
fontSize = 16.sp,
414+
color = textColor.copy(alpha = 0.8f),
415+
fontFamily = FontFamily(Font(R.font.sf_pro))
416+
)
409417
)
410-
Icon(
411-
Icons.Default.KeyboardArrowDown,
412-
contentDescription = null,
413-
modifier = Modifier.size(18.dp),
414-
tint = textColor.copy(alpha = 0.6f)
418+
Text(
419+
text = "􀆏",
420+
style = TextStyle(
421+
fontSize = 16.sp,
422+
color = textColor.copy(alpha = 0.6f),
423+
fontFamily = FontFamily(Font(R.font.sf_pro))
424+
),
425+
modifier = Modifier
426+
.padding(start = 6.dp)
415427
)
416428
}
417429

android/app/src/main/java/me/kavishdevar/librepods/composables/ConfirmationDialog.kt

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ import com.kyant.backdrop.effects.blur
7474
import com.kyant.backdrop.effects.colorControls
7575
import com.kyant.backdrop.effects.refraction
7676
import com.kyant.backdrop.highlight.Highlight
77-
import com.kyant.backdrop.highlight.HighlightStyle
7877
import kotlinx.coroutines.launch
7978
import me.kavishdevar.librepods.R
8079
import me.kavishdevar.librepods.utils.inspectDragGestures
@@ -143,7 +142,9 @@ half4 main(float2 coord) {
143142
.drawBackdrop(
144143
backdrop,
145144
{ RoundedCornerShape(48f.dp) },
146-
highlight = { Highlight { HighlightStyle.Solid } },
145+
highlight = {
146+
Highlight.SolidDefault
147+
},
147148
onDrawSurface = { drawRect(containerColor) },
148149
effects = {
149150
colorControls(
@@ -153,7 +154,7 @@ half4 main(float2 coord) {
153154
blur(if (isLightTheme) 16f.dp.toPx() else 8f.dp.toPx())
154155
refraction(24f.dp.toPx(), 48f.dp.toPx(), true)
155156
},
156-
layer = {
157+
layerBlock = {
157158
val width = size.width
158159
val height = size.height
159160

@@ -273,16 +274,6 @@ half4 main(float2 coord) {
273274
horizontalArrangement = Arrangement.spacedBy(12.dp),
274275
verticalAlignment = Alignment.CenterVertically
275276
) {
276-
// Box(
277-
// Modifier
278-
// .clip(RoundedCornerShape(50.dp))
279-
// .background(containerColor.copy(0.2f))
280-
// .clickable(onClick = onDismiss)
281-
// .height(48.dp)
282-
// .weight(1f)
283-
// .padding(horizontal = 16.dp),
284-
// contentAlignment = Alignment.Center
285-
// ) {
286277
StyledButton(
287278
onClick = onDismiss,
288279
backdrop = backdrop,
@@ -295,16 +286,6 @@ half4 main(float2 coord) {
295286
style = TextStyle(contentColor, 16.sp)
296287
)
297288
}
298-
// Box(
299-
// Modifier
300-
// .clip(RoundedCornerShape(50.dp))
301-
// .background(accentColor)
302-
// .clickable(onClick = onConfirm)
303-
// .height(48.dp)
304-
// .weight(1f)
305-
// .padding(horizontal = 16.dp),
306-
// contentAlignment = Alignment.Center
307-
// ) {
308289
StyledButton(
309290
onClick = onConfirm,
310291
backdrop = backdrop,

android/app/src/main/java/me/kavishdevar/librepods/composables/ConnectionSettings.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package me.kavishdevar.librepods.composables
2222

23+
import android.content.Context.MODE_PRIVATE
2324
import androidx.compose.foundation.background
2425
import androidx.compose.foundation.isSystemInDarkTheme
2526
import androidx.compose.foundation.layout.Column
@@ -34,11 +35,9 @@ import androidx.compose.ui.platform.LocalContext
3435
import androidx.compose.ui.res.stringResource
3536
import androidx.compose.ui.tooling.preview.Preview
3637
import androidx.compose.ui.unit.dp
37-
import kotlin.io.encoding.ExperimentalEncodingApi
38-
import android.content.Context.MODE_PRIVATE
39-
import me.kavishdevar.librepods.composables.StyledToggle
40-
import me.kavishdevar.librepods.utils.AACPManager
4138
import me.kavishdevar.librepods.R
39+
import me.kavishdevar.librepods.utils.AACPManager
40+
import kotlin.io.encoding.ExperimentalEncodingApi
4241

4342
@Composable
4443
fun ConnectionSettings() {
@@ -48,7 +47,7 @@ fun ConnectionSettings() {
4847
Column(
4948
modifier = Modifier
5049
.fillMaxWidth()
51-
.background(backgroundColor, RoundedCornerShape(14.dp))
50+
.background(backgroundColor, RoundedCornerShape(28.dp))
5251
.padding(top = 2.dp)
5352
) {
5453
StyledToggle(
@@ -59,10 +58,10 @@ fun ConnectionSettings() {
5958
independent = false
6059
)
6160
HorizontalDivider(
62-
thickness = 1.5.dp,
61+
thickness = 1.dp,
6362
color = Color(0x40888888),
6463
modifier = Modifier
65-
.padding(start = 12.dp, end = 0.dp)
64+
.padding(horizontal= 12.dp)
6665
)
6766

6867
StyledToggle(

0 commit comments

Comments
 (0)