API 35 forces edge-to-edge regardless; removing enableEdgeToEdge had no effect. Real fix: keep it, set isAppearanceLightStatusBars=true in SideEffect so clock/battery/wifi icons are dark and visible on the light TopAppBar background. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
57 lines
1.9 KiB
Kotlin
57 lines
1.9 KiB
Kotlin
package me.hgsky.synq
|
|
|
|
import android.content.Intent
|
|
import android.os.Bundle
|
|
import androidx.activity.ComponentActivity
|
|
import androidx.activity.compose.setContent
|
|
import androidx.activity.enableEdgeToEdge
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.navigation.NavType
|
|
import androidx.navigation.compose.NavHost
|
|
import androidx.navigation.compose.composable
|
|
import androidx.navigation.compose.rememberNavController
|
|
import androidx.navigation.navArgument
|
|
import me.hgsky.synq.ui.capture.CaptureScreen
|
|
import me.hgsky.synq.ui.history.HistoryScreen
|
|
import me.hgsky.synq.ui.settings.SettingsScreen
|
|
import me.hgsky.synq.ui.theme.SynqTheme
|
|
import java.net.URLDecoder
|
|
import java.net.URLEncoder
|
|
|
|
class MainActivity : ComponentActivity() {
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
enableEdgeToEdge()
|
|
val sharedText = if (intent.action == Intent.ACTION_SEND)
|
|
intent.getStringExtra(Intent.EXTRA_TEXT) else null
|
|
|
|
setContent {
|
|
SynqTheme { SynqNav(sharedText = sharedText) }
|
|
}
|
|
}
|
|
}
|
|
|
|
@Composable
|
|
private fun SynqNav(sharedText: String? = null) {
|
|
val nav = rememberNavController()
|
|
val startRoute = if (sharedText != null) {
|
|
"capture/${URLEncoder.encode(sharedText, "UTF-8")}"
|
|
} else {
|
|
"capture"
|
|
}
|
|
|
|
NavHost(navController = nav, startDestination = startRoute) {
|
|
composable("capture") { CaptureScreen(nav) }
|
|
composable(
|
|
route = "capture/{prefill}",
|
|
arguments = listOf(navArgument("prefill") { type = NavType.StringType }),
|
|
) { back ->
|
|
val prefill = back.arguments?.getString("prefill")
|
|
?.let { URLDecoder.decode(it, "UTF-8") }
|
|
CaptureScreen(nav, prefill = prefill)
|
|
}
|
|
composable("history") { HistoryScreen(nav) }
|
|
composable("settings") { SettingsScreen(nav) }
|
|
}
|
|
}
|