diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 094cc34..f2f8140 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,6 +28,13 @@ + + + + + + + diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/MainActivity.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/MainActivity.kt index 2435f0a..6ef5477 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/MainActivity.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/MainActivity.kt @@ -37,6 +37,7 @@ import top.fatweb.oxygen.toolbox.model.userdata.LaunchPageConfig import top.fatweb.oxygen.toolbox.model.userdata.ThemeBrandConfig import top.fatweb.oxygen.toolbox.monitor.NetworkMonitor import top.fatweb.oxygen.toolbox.monitor.TimeZoneMonitor +import top.fatweb.oxygen.toolbox.navigation.navigateToToolView import top.fatweb.oxygen.toolbox.repository.userdata.UserDataRepository import top.fatweb.oxygen.toolbox.ui.OxygenApp import top.fatweb.oxygen.toolbox.ui.rememberOxygenAppState @@ -119,6 +120,15 @@ class MainActivity : ComponentActivity() { OxygenApp(appState) } } + + LaunchedEffect(intent.data) { + intent.data?.run { + val pathSegments = pathSegments + if (pathSegments.size == 2) { + appState.navController.navigateToToolView(pathSegments[0], pathSegments[1]) + } + } + } } } diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/monitor/TimeZoneBroadcastMonitor.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/monitor/TimeZoneBroadcastMonitor.kt index 0b0da77..72f0e7e 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/monitor/TimeZoneBroadcastMonitor.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/monitor/TimeZoneBroadcastMonitor.kt @@ -43,8 +43,8 @@ class TimeZoneBroadcastMonitor @Inject constructor( val zonIdFromIntent = if (Build.VERSION.SDK_INT < VERSION_CODES.R) { null } else { - intent.getStringExtra(Intent.EXTRA_TIMEZONE)?.let { timeZoneId -> - val zoneId = ZoneId.of(timeZoneId, ZoneId.SHORT_IDS) + intent.getStringExtra(Intent.EXTRA_TIMEZONE)?.run { + val zoneId = ZoneId.of(this, ZoneId.SHORT_IDS) zoneId.toKotlinTimeZone() } } diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/component/scrollbar/Scrollbar.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/component/scrollbar/Scrollbar.kt index 3c8d01e..dd2ede0 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/component/scrollbar/Scrollbar.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/component/scrollbar/Scrollbar.kt @@ -250,11 +250,11 @@ fun Scrollbar( draggedOffset = offset } val onDragEnd: () -> Unit = { - dragInteraction?.let { interactionSource?.tryEmit(DragInteraction.Stop(it)) } + dragInteraction?.run { interactionSource?.tryEmit(DragInteraction.Stop(this)) } draggedOffset = Offset.Unspecified } val onDragCancel: () -> Unit = { - dragInteraction?.let { interactionSource?.tryEmit(DragInteraction.Cancel(it)) } + dragInteraction?.run { interactionSource?.tryEmit(DragInteraction.Cancel(this)) } draggedOffset = Offset.Unspecified } val onDrag: (change: PointerInputChange, dragAmount: Float) -> Unit = diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/tool/ToolViewScreen.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/tool/ToolViewScreen.kt index 3c4e85f..9dff604 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/tool/ToolViewScreen.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/tool/ToolViewScreen.kt @@ -9,11 +9,8 @@ import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.safeDrawingPadding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.Text @@ -45,7 +42,7 @@ internal fun ToolViewRoute( val toolViewUiState by viewModel.toolViewUiState.collectAsStateWithLifecycle() ToolViewScreen( - modifier = modifier.safeDrawingPadding(), + modifier = modifier, onBackClick = onBackClick, toolViewUiState = toolViewUiState ) @@ -63,7 +60,7 @@ internal fun ToolViewScreen( val infiniteTransition = rememberInfiniteTransition(label = "infiniteTransition") Box( - modifier = modifier.windowInsetsPadding(WindowInsets(0, 0, 0, 0)), + modifier = modifier, ) { OxygenTopAppBar( modifier = Modifier.zIndex(100f),