From 6875fdc4d0ff9982c1dacb21731906d172cf0281 Mon Sep 17 00:00:00 2001 From: KotlinGeekDev Date: Fri, 11 Aug 2023 23:27:04 +0100 Subject: [PATCH] Watch orientation change, and close drawer in landscape mode. --- .../amethyst/ui/screen/loggedIn/MainScreen.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt index ec480ae28..efc3b4987 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt @@ -1,5 +1,6 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn +import android.content.res.Configuration import androidx.activity.compose.BackHandler import androidx.compose.animation.Crossfade import androidx.compose.animation.core.tween @@ -18,14 +19,15 @@ import androidx.compose.material.rememberDrawerState import androidx.compose.material.rememberModalBottomSheetState import androidx.compose.material.rememberScaffoldState import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.State import androidx.compose.runtime.collectAsState import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalConfiguration import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavBackStackEntry import androidx.navigation.compose.currentBackStackEntryAsState @@ -74,6 +76,13 @@ fun MainScreen( val navController = rememberNavController() val navState = navController.currentBackStackEntryAsState() + val orientation = LocalConfiguration.current.orientation + LaunchedEffect(key1 = orientation) { + if (orientation == Configuration.ORIENTATION_LANDSCAPE) { + scaffoldState.drawerState.close() + } + } + val nav = remember(navController) { { route: String -> scope.launch {