package com.labexposed.notas import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.compose.LifecycleEventEffect import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import androidx.lifecycle.Lifecycle import com.labexposed.notas.ui.EditorScreen import com.labexposed.notas.ui.NotesListScreen import com.labexposed.notas.ui.NotasViewModel import com.labexposed.notas.ui.SettingsScreen import com.labexposed.notas.ui.theme.NotasTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { NotasTheme { NotasApp_() } } } } @Composable private fun NotasApp_(vm: NotasViewModel = viewModel()) { val nav = rememberNavController() val settings by vm.settings.collectAsState() LifecycleEventEffect(Lifecycle.Event.ON_RESUME) { vm.onResumed() } LifecycleEventEffect(Lifecycle.Event.ON_PAUSE) { vm.onPaused() } NavHost(navController = nav, startDestination = if (settings.configured) "list" else "settings") { composable("settings") { SettingsScreen(vm, onDone = { nav.navigate("list") { popUpTo("settings") { inclusive = true } } }) } composable("list") { NotesListScreen( vm = vm, onOpen = { nav.navigate("editor/$it") }, onNew = { nav.navigate("editor/" + vm.createLocal()) }, onSettings = { nav.navigate("settings") }, ) } composable("editor/{id}") { entry -> val id = entry.arguments?.getString("id") ?: return@composable EditorScreen(vm = vm, noteId = id, onBack = { nav.popBackStack() }) } } }