From 0dbba0aa2e716609e4209fccc4f7db466dc85e75 Mon Sep 17 00:00:00 2001 From: sadellie Date: Fri, 21 Jul 2023 22:09:17 +0300 Subject: [PATCH] Close drawer on back pressed --- app/src/main/java/com/sadellie/unitto/UnittoApp.kt | 6 ++++++ .../unitto/core/ui/common/UnittoNavigationDrawer.kt | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/sadellie/unitto/UnittoApp.kt b/app/src/main/java/com/sadellie/unitto/UnittoApp.kt index 131b7a64..224f872a 100644 --- a/app/src/main/java/com/sadellie/unitto/UnittoApp.kt +++ b/app/src/main/java/com/sadellie/unitto/UnittoApp.kt @@ -18,6 +18,7 @@ package com.sadellie.unitto +import androidx.activity.compose.BackHandler import androidx.compose.animation.core.tween import androidx.compose.foundation.ExperimentalFoundationApi 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.UnittoModalNavigationDrawer 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.rememberUnittoDrawerState 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) { sysUiController.setNavigationBarColor(Color.Transparent, useDarkIcons) sysUiController.setStatusBarColor(Color.Transparent, useDarkIcons) diff --git a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/UnittoNavigationDrawer.kt b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/UnittoNavigationDrawer.kt index 08fd55ac..64339077 100644 --- a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/UnittoNavigationDrawer.kt +++ b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/UnittoNavigationDrawer.kt @@ -139,7 +139,7 @@ fun rememberUnittoDrawerState( } } -private val AnchoredDraggableState.isOpen +val AnchoredDraggableState.isOpen get() = this.currentValue == UnittoDrawerState.OPEN suspend fun AnchoredDraggableState.close() {