Skip to content

Commit 9baa3c9

Browse files
committed
android: update haze uses
1 parent 364a6f4 commit 9baa3c9

File tree

2 files changed

+30
-42
lines changed

2 files changed

+30
-42
lines changed

android/app/src/main/java/me/kavishdevar/librepods/screens/AirPodsSettingsScreen.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,11 @@ import androidx.compose.ui.unit.dp
7878
import androidx.compose.ui.unit.sp
7979
import androidx.navigation.NavController
8080
import androidx.navigation.compose.rememberNavController
81+
import dev.chrisbanes.haze.HazeEffectScope
8182
import dev.chrisbanes.haze.HazeState
8283
import dev.chrisbanes.haze.haze
83-
import dev.chrisbanes.haze.hazeChild
84+
import dev.chrisbanes.haze.hazeEffect
85+
import dev.chrisbanes.haze.hazeSource
8486
import dev.chrisbanes.haze.materials.CupertinoMaterials
8587
import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi
8688
import kotlinx.coroutines.launch
@@ -149,7 +151,7 @@ fun AirPodsSettingsScreen(dev: BluetoothDevice?, service: AirPodsService,
149151
}
150152

151153
val context = LocalContext.current
152-
154+
153155
val connectionReceiver = remember {
154156
object : BroadcastReceiver() {
155157
override fun onReceive(context: Context?, intent: Intent?) {
@@ -232,14 +234,13 @@ fun AirPodsSettingsScreen(dev: BluetoothDevice?, service: AirPodsService,
232234
)
233235
},
234236
modifier = Modifier
235-
.hazeChild(
237+
.hazeEffect(
236238
state = hazeState,
237239
style = CupertinoMaterials.thick(),
238-
block = {
240+
block = fun HazeEffectScope.() {
239241
alpha =
240242
if (verticalScrollState.value > 60.dp.value * mDensity.floatValue) 1f else 0f
241-
}
242-
)
243+
})
243244
.drawBehind {
244245
mDensity.floatValue = density
245246
val strokeWidth = 0.7.dp.value * density
@@ -295,7 +296,7 @@ fun AirPodsSettingsScreen(dev: BluetoothDevice?, service: AirPodsService,
295296
if (isLocallyConnected || isRemotelyConnected) {
296297
Column(
297298
modifier = Modifier
298-
.haze(hazeState)
299+
.hazeSource(hazeState)
299300
.fillMaxSize()
300301
.padding(horizontal = 16.dp)
301302
.verticalScroll(

android/app/src/main/java/me/kavishdevar/librepods/screens/DebugScreen.kt

Lines changed: 22 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import androidx.compose.foundation.layout.Spacer
4040
import androidx.compose.foundation.layout.fillMaxSize
4141
import androidx.compose.foundation.layout.fillMaxWidth
4242
import androidx.compose.foundation.layout.height
43+
import androidx.compose.foundation.layout.navigationBarsPadding
4344
import androidx.compose.foundation.layout.padding
4445
import androidx.compose.foundation.layout.size
4546
import androidx.compose.foundation.layout.width
@@ -49,6 +50,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape
4950
import androidx.compose.material.icons.Icons
5051
import androidx.compose.material.icons.automirrored.filled.KeyboardArrowLeft
5152
import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight
53+
import androidx.compose.material.icons.filled.Check
5254
import androidx.compose.material.icons.filled.Delete
5355
import androidx.compose.material.icons.filled.MoreVert
5456
import androidx.compose.material.icons.filled.Send
@@ -89,33 +91,18 @@ import androidx.compose.ui.text.input.TextFieldValue
8991
import androidx.compose.ui.unit.dp
9092
import androidx.compose.ui.unit.sp
9193
import androidx.navigation.NavController
94+
import dev.chrisbanes.haze.HazeEffectScope
9295
import dev.chrisbanes.haze.HazeState
93-
import dev.chrisbanes.haze.haze
94-
import dev.chrisbanes.haze.hazeChild
96+
import dev.chrisbanes.haze.hazeEffect
97+
import dev.chrisbanes.haze.hazeSource
9598
import dev.chrisbanes.haze.materials.CupertinoMaterials
9699
import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi
97-
import kotlinx.coroutines.flow.MutableStateFlow
98100
import kotlinx.coroutines.delay
99101
import kotlinx.coroutines.launch
100-
import kotlinx.coroutines.Dispatchers
101-
import kotlinx.coroutines.CoroutineScope
102102
import me.kavishdevar.librepods.R
103103
import me.kavishdevar.librepods.services.ServiceManager
104104
import me.kavishdevar.librepods.utils.BatteryStatus
105105
import me.kavishdevar.librepods.utils.isHeadTrackingData
106-
import me.kavishdevar.librepods.composables.StyledSwitch
107-
import androidx.compose.foundation.layout.navigationBarsPadding
108-
import androidx.compose.foundation.layout.imePadding
109-
import androidx.compose.ui.geometry.Offset
110-
import androidx.compose.ui.input.pointer.pointerInput
111-
import androidx.compose.ui.platform.LocalDensity
112-
import androidx.compose.ui.layout.onGloballyPositioned
113-
import androidx.compose.ui.layout.positionInRoot
114-
import androidx.compose.ui.text.style.TextAlign
115-
import androidx.compose.foundation.gestures.detectTapGestures
116-
import androidx.compose.foundation.gestures.detectDragGestures
117-
import androidx.compose.material.icons.filled.Check
118-
import androidx.compose.ui.input.pointer.PointerInputChange
119106

120107
data class PacketInfo(
121108
val type: String,
@@ -349,30 +336,30 @@ fun DebugScreen(navController: NavController) {
349336
val scrollOffset by remember { derivedStateOf { listState.firstVisibleItemScrollOffset } }
350337
val focusManager = LocalFocusManager.current
351338
val coroutineScope = rememberCoroutineScope()
352-
339+
353340
val showMenu = remember { mutableStateOf(false) }
354-
341+
355342
val airPodsService = remember { ServiceManager.getService() }
356343
val packetLogs = airPodsService?.packetLogsFlow?.collectAsState(emptySet())?.value ?: emptySet()
357344
val shouldScrollToBottom = remember { mutableStateOf(true) }
358-
345+
359346
val refreshTrigger = remember { mutableStateOf(0) }
360347
LaunchedEffect(refreshTrigger.value) {
361348
while(true) {
362349
delay(1000)
363350
refreshTrigger.value = refreshTrigger.value + 1
364351
}
365352
}
366-
353+
367354
val expandedItems = remember { mutableStateOf(setOf<Int>()) }
368-
355+
369356
fun copyToClipboard(text: String) {
370357
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
371358
val clip = ClipData.newPlainText("Packet Data", text)
372359
clipboard.setPrimaryClip(clip)
373360
Toast.makeText(context, "Packet copied to clipboard", Toast.LENGTH_SHORT).show()
374361
}
375-
362+
376363
LaunchedEffect(packetLogs.size, refreshTrigger.value) {
377364
if (shouldScrollToBottom.value && packetLogs.isNotEmpty()) {
378365
listState.animateScrollToItem(packetLogs.size - 1)
@@ -415,7 +402,7 @@ fun DebugScreen(navController: NavController) {
415402
tint = if (isSystemInDarkTheme()) Color.White else Color.Black
416403
)
417404
}
418-
405+
419406
DropdownMenu(
420407
expanded = showMenu.value,
421408
onDismissRequest = { showMenu.value = false },
@@ -446,17 +433,17 @@ fun DebugScreen(navController: NavController) {
446433
)
447434
}
448435
},
449-
onClick = {
436+
onClick = {
450437
shouldScrollToBottom.value = !shouldScrollToBottom.value
451438
showMenu.value = false
452439
}
453440
)
454-
441+
455442
HorizontalDivider(
456443
color = if (isSystemInDarkTheme()) Color(0xFF3A3A3C) else Color(0xFFE5E5EA),
457444
thickness = 0.5.dp
458445
)
459-
446+
460447
DropdownMenuItem(
461448
text = {
462449
Row(
@@ -478,7 +465,7 @@ fun DebugScreen(navController: NavController) {
478465
)
479466
}
480467
},
481-
onClick = {
468+
onClick = {
482469
ServiceManager.getService()?.clearLogs()
483470
expandedItems.value = emptySet()
484471
showMenu.value = false
@@ -487,13 +474,12 @@ fun DebugScreen(navController: NavController) {
487474
}
488475
}
489476
},
490-
modifier = Modifier.hazeChild(
477+
modifier = Modifier.hazeEffect(
491478
state = hazeState,
492479
style = CupertinoMaterials.thick(),
493-
block = {
480+
block = fun HazeEffectScope.() {
494481
alpha = if (scrollOffset > 0) 1f else 0f
495-
}
496-
),
482+
}),
497483
colors = TopAppBarDefaults.topAppBarColors(containerColor = Color.Transparent),
498484
)
499485
},
@@ -502,7 +488,7 @@ fun DebugScreen(navController: NavController) {
502488
Column(
503489
modifier = Modifier
504490
.fillMaxSize()
505-
.haze(hazeState)
491+
.hazeSource(hazeState)
506492
.padding(top = paddingValues.calculateTopPadding())
507493
.navigationBarsPadding()
508494
) {
@@ -633,7 +619,7 @@ fun DebugScreen(navController: NavController) {
633619
airPodsService?.value?.sendPacket(packet.value.text)
634620
packet.value = TextFieldValue("")
635621
focusManager.clearFocus()
636-
622+
637623
if (shouldScrollToBottom.value && packetLogs.isNotEmpty()) {
638624
coroutineScope.launch {
639625
try {
@@ -643,6 +629,7 @@ fun DebugScreen(navController: NavController) {
643629
scrollOffset = 0
644630
)
645631
} catch (e: Exception) {
632+
e.printStackTrace()
646633
listState.scrollToItem(
647634
index = (packetLogs.size - 1).coerceAtLeast(0)
648635
)

0 commit comments

Comments
 (0)