Feat(Tool): Launch tool by scheme

This commit is contained in:
2024-05-11 19:00:41 +08:00
parent 3a91e834b7
commit 3338522d40
5 changed files with 23 additions and 9 deletions

View File

@@ -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])
}
}
}
}
}

View File

@@ -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()
}
}

View File

@@ -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 =

View File

@@ -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),