package space.darkest.nova.android import android.Manifest import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.animation.slideInHorizontally import androidx.compose.animation.slideOutHorizontally import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import space.darkest.nova.android.data.AgendaDay import space.darkest.nova.android.data.CalendarRepository import space.darkest.nova.android.ui.AgendaScreen import space.darkest.nova.android.ui.SettingsScreen import space.darkest.nova.android.ui.theme.NovaTheme class MainActivity : ComponentActivity() { private var agenda by mutableStateOf(emptyList()) private val calendarPermission = registerForActivityResult( ActivityResultContracts.RequestPermission() ) { granted -> if (granted) refreshAgenda() } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() calendarPermission.launch(Manifest.permission.READ_CALENDAR) setContent { NovaTheme { val navController = rememberNavController() NavHost( navController = navController, startDestination = "agenda", enterTransition = { slideInHorizontally { it } }, exitTransition = { slideOutHorizontally { -it } }, popEnterTransition = { slideInHorizontally { -it } }, popExitTransition = { slideOutHorizontally { it } }, ) { composable("agenda") { AgendaScreen( agenda = agenda, onSettingsClick = { navController.navigate("settings") }, ) } composable("settings") { SettingsScreen(onBack = { navController.popBackStack() }) } } } } } override fun onResume() { super.onResume() refreshAgenda() } private fun refreshAgenda() { agenda = CalendarRepository.getAgenda(this, 14) } }