Close drawer on back pressed

This commit is contained in:
sadellie 2023-07-21 22:09:17 +03:00
parent 7c70258b84
commit 0dbba0aa2e
2 changed files with 7 additions and 1 deletions

View File

@ -18,6 +18,7 @@
package com.sadellie.unitto package com.sadellie.unitto
import androidx.activity.compose.BackHandler
import androidx.compose.animation.core.tween import androidx.compose.animation.core.tween
import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@ -40,6 +41,7 @@ import com.sadellie.unitto.core.base.TopLevelDestinations
import com.sadellie.unitto.core.ui.common.UnittoDrawerSheet import com.sadellie.unitto.core.ui.common.UnittoDrawerSheet
import com.sadellie.unitto.core.ui.common.UnittoModalNavigationDrawer import com.sadellie.unitto.core.ui.common.UnittoModalNavigationDrawer
import com.sadellie.unitto.core.ui.common.close import com.sadellie.unitto.core.ui.common.close
import com.sadellie.unitto.core.ui.common.isOpen
import com.sadellie.unitto.core.ui.common.open import com.sadellie.unitto.core.ui.common.open
import com.sadellie.unitto.core.ui.common.rememberUnittoDrawerState import com.sadellie.unitto.core.ui.common.rememberUnittoDrawerState
import com.sadellie.unitto.core.ui.model.DrawerItems import com.sadellie.unitto.core.ui.model.DrawerItems
@ -133,6 +135,10 @@ internal fun UnittoApp(uiPrefs: UIPreferences) {
} }
) )
BackHandler(drawerState.isOpen) {
drawerScope.launch { drawerState.close() }
}
LaunchedEffect(useDarkIcons) { LaunchedEffect(useDarkIcons) {
sysUiController.setNavigationBarColor(Color.Transparent, useDarkIcons) sysUiController.setNavigationBarColor(Color.Transparent, useDarkIcons)
sysUiController.setStatusBarColor(Color.Transparent, useDarkIcons) sysUiController.setStatusBarColor(Color.Transparent, useDarkIcons)

View File

@ -139,7 +139,7 @@ fun rememberUnittoDrawerState(
} }
} }
private val AnchoredDraggableState<UnittoDrawerState>.isOpen val AnchoredDraggableState<UnittoDrawerState>.isOpen
get() = this.currentValue == UnittoDrawerState.OPEN get() = this.currentValue == UnittoDrawerState.OPEN
suspend fun AnchoredDraggableState<UnittoDrawerState>.close() { suspend fun AnchoredDraggableState<UnittoDrawerState>.close() {