File tree Expand file tree Collapse file tree 11 files changed +19
-22
lines changed
androidMain/kotlin/com/softartdev/notedelight/ui
commonMain/kotlin/com/softartdev/notedelight/ui
iosMain/kotlin/com/softartdev/notedelight/ui
jvmMain/kotlin/com/softartdev/notedelight/ui
wasmJsMain/kotlin/com/softartdev/notedelight/ui Expand file tree Collapse file tree 11 files changed +19
-22
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ composeMaterialAdaptive = "1.2.0"
2626androidxAppcompat = " 1.7.1"
2727androidxViewModel = " 2.9.6"
2828androidxNavigation = " 2.9.2"
29+ androidxNavigationEvent = " 1.0.1"
2930androidxActivityCompose = " 1.12.4"
3031androidxComposeTest = " 1.10.4"
3132androidxCoreSplashscreen = " 1.2.0"
@@ -120,6 +121,7 @@ compose-adaptive-navigation = { module = "org.jetbrains.compose.material3.adapti
120121
121122androidx-appcompat = { module = " androidx.appcompat:appcompat" , version.ref = " androidxAppcompat" }
122123androidx-navigation-compose = { module = " org.jetbrains.androidx.navigation:navigation-compose" , version.ref = " androidxNavigation" }
124+ androidx-navigationevent-compose = { module = " org.jetbrains.androidx.navigationevent:navigationevent-compose" , version.ref = " androidxNavigationEvent" }
123125androidx-activity-compose = { module = " androidx.activity:activity-compose" , version.ref = " androidxActivityCompose" }
124126androidx-compose-test-junit4 = { module = " androidx.compose.ui:ui-test-junit4-android" , version.ref = " androidxComposeTest" }
125127androidx-compose-test-manifest = { module = " androidx.compose.ui:ui-test-manifest" , version.ref = " androidxComposeTest" }
Original file line number Diff line number Diff line change @@ -60,6 +60,7 @@ kotlin {
6060 implementation(libs.koin.core)
6161 implementation(libs.koin.compose.viewmodel.navigation)
6262 implementation(libs.androidx.navigation.compose)
63+ implementation(libs.androidx.navigationevent.compose)
6364 implementation(libs.androidx.lifecycle.runtime.compose)
6465 implementation(libs.material.theme.prefs)
6566 implementation(libs.androidx.paging.compose)
Original file line number Diff line number Diff line change @@ -26,7 +26,3 @@ actual fun EnableEdgeToEdge() {
2626 }
2727 activity.enableEdgeToEdge(statusBarStyle = sbStyle, navigationBarStyle = sbStyle)
2828}
29-
30- @Composable
31- actual fun BackHandler (enabled : Boolean , onBack : () -> Unit ) =
32- androidx.activity.compose.BackHandler (enabled, onBack)
Original file line number Diff line number Diff line change @@ -36,6 +36,9 @@ import androidx.compose.ui.text.TextStyle
3636import androidx.compose.ui.text.font.FontWeight
3737import androidx.compose.ui.tooling.preview.Preview
3838import androidx.compose.ui.unit.dp
39+ import androidx.navigationevent.NavigationEventInfo
40+ import androidx.navigationevent.compose.NavigationBackHandler
41+ import androidx.navigationevent.compose.rememberNavigationEventState
3942import com.softartdev.notedelight.util.EMPTY_RESULT_LABEL_TAG
4043import notedelight.ui.shared.generated.resources.Res
4144import notedelight.ui.shared.generated.resources.detail_pane_placeholder
@@ -48,7 +51,11 @@ import org.jetbrains.compose.resources.stringResource
4851expect fun EnableEdgeToEdge ()
4952
5053@Composable
51- expect fun BackHandler (enabled : Boolean = true, onBack : () -> Unit )
54+ fun NavBackHandler (enabled : Boolean = true, onBack : () -> Unit ) = NavigationBackHandler (
55+ state = rememberNavigationEventState(NavigationEventInfo .None ),
56+ isBackEnabled = enabled,
57+ onBackCompleted = onBack,
58+ )
5259
5360@Composable
5461fun MainDetailPanePlaceholder () = Card (shape = RoundedCornerShape (size = 0 .dp)) {
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ import com.softartdev.notedelight.di.PreviewKoin
2121import com.softartdev.notedelight.navigation.Router
2222import com.softartdev.notedelight.presentation.main.MainViewModel
2323import com.softartdev.notedelight.presentation.note.NoteViewModel
24- import com.softartdev.notedelight.ui.BackHandler
24+ import com.softartdev.notedelight.ui.NavBackHandler
2525import com.softartdev.notedelight.ui.VerticalPaneExpansionDragHandle
2626import com.softartdev.theme.material3.PreferableMaterialTheme
2727import kotlinx.coroutines.launch
@@ -53,7 +53,7 @@ fun AdaptiveMainScreen(
5353 },
5454 paneExpansionState = paneExpansionState
5555 )
56- BackHandler (navigator.canNavigateBack()) { coroutineScope.launch { navigator.navigateBack() } }
56+ NavBackHandler (navigator.canNavigateBack()) { coroutineScope.launch { navigator.navigateBack() } }
5757}
5858
5959@Preview
Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ import androidx.compose.ui.unit.dp
3838import com.softartdev.notedelight.presentation.note.NoteAction
3939import com.softartdev.notedelight.presentation.note.NoteResult
4040import com.softartdev.notedelight.presentation.note.NoteViewModel
41- import com.softartdev.notedelight.ui.BackHandler
41+ import com.softartdev.notedelight.ui.NavBackHandler
4242import com.softartdev.notedelight.ui.MainDetailPanePlaceholder
4343import com.softartdev.notedelight.util.DELETE_NOTE_BUTTON_TAG
4444import com.softartdev.notedelight.util.EDIT_TITLE_BUTTON_TAG
@@ -96,7 +96,7 @@ fun NoteDetail(
9696 textState = textState,
9797 onAction = onAction
9898 )
99- BackHandler { onAction(NoteAction .CheckSaveChange (textState.text)) }
99+ NavBackHandler { onAction(NoteAction .CheckSaveChange (textState.text)) }
100100}
101101
102102@Composable
Original file line number Diff line number Diff line change @@ -60,7 +60,7 @@ import com.softartdev.notedelight.presentation.settings.SettingsAction
6060import com.softartdev.notedelight.presentation.settings.SettingsResult
6161import com.softartdev.notedelight.presentation.settings.SettingsViewModel
6262import com.softartdev.notedelight.repository.SafeRepo
63- import com.softartdev.notedelight.ui.BackHandler
63+ import com.softartdev.notedelight.ui.NavBackHandler
6464import com.softartdev.notedelight.ui.SettingsDetailPanePlaceholder
6565import com.softartdev.notedelight.ui.icon.FileLock
6666import com.softartdev.notedelight.util.ENABLE_ENCRYPTION_SWITCH_TAG
@@ -111,7 +111,7 @@ fun SettingsDetailScreen(settingsViewModel: SettingsViewModel) {
111111 onRefresh = { settingsViewModel.onAction(SettingsAction .Refresh ) },
112112 refreshState = refreshState,
113113 )
114- BackHandler { settingsViewModel.onAction(SettingsAction .NavBack ) }
114+ NavBackHandler { settingsViewModel.onAction(SettingsAction .NavBack ) }
115115 }
116116 }
117117}
Original file line number Diff line number Diff line change @@ -34,7 +34,7 @@ import com.softartdev.notedelight.presentation.settings.SettingsCategoriesAction
3434import com.softartdev.notedelight.presentation.settings.SettingsCategoriesResult
3535import com.softartdev.notedelight.presentation.settings.SettingsCategoriesViewModel
3636import com.softartdev.notedelight.model.SettingsCategory
37- import com.softartdev.notedelight.ui.BackHandler
37+ import com.softartdev.notedelight.ui.NavBackHandler
3838import com.softartdev.notedelight.ui.selectedListItemColor
3939import com.softartdev.notedelight.util.icon
4040import com.softartdev.notedelight.util.tag
@@ -63,7 +63,7 @@ fun SettingsMasterScreen(categoriesViewModel: SettingsCategoriesViewModel) {
6363 refreshState = refreshState,
6464 onNavigateBack = { categoriesViewModel.onAction(SettingsCategoriesAction .NavBack ) }
6565 )
66- BackHandler (enabled = result.selectedCategoryId == null ) {
66+ NavBackHandler (enabled = result.selectedCategoryId == null ) {
6767 categoriesViewModel.onAction(SettingsCategoriesAction .NavBack )
6868 }
6969}
Original file line number Diff line number Diff line change @@ -4,6 +4,3 @@ import androidx.compose.runtime.Composable
44
55@Composable
66actual fun EnableEdgeToEdge () {}
7-
8- @Composable
9- actual fun BackHandler (enabled : Boolean , onBack : () -> Unit ) {}
Original file line number Diff line number Diff line change @@ -4,6 +4,3 @@ import androidx.compose.runtime.Composable
44
55@Composable
66actual fun EnableEdgeToEdge () {}
7-
8- @Composable
9- actual fun BackHandler (enabled : Boolean , onBack : () -> Unit ) {}
You can’t perform that action at this time.
0 commit comments