Skip to content

Commit d3e3039

Browse files
committed
fix: allow back nav if whiteboard is empty
1 parent ebcf8e0 commit d3e3039

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/whiteboard/WhiteboardFragment.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,20 +106,24 @@ class WhiteboardFragment :
106106
val isUsingGesturesNavigation = context?.let { compat.isUsingSystemGestureNavigation(it) } == true
107107
doubleBackCallback =
108108
doubleBackPressCallback(
109-
enabled = !isHidden && isUsingGesturesNavigation,
109+
enabled = !isHidden && isUsingGesturesNavigation && !isEmpty(),
110110
onFirstBack = { showSnackbar(R.string.back_pressed_once, Snackbar.LENGTH_SHORT) },
111111
shouldReEnable = {
112-
!isHidden && isUsingGesturesNavigation
112+
!isHidden && isUsingGesturesNavigation && !isEmpty()
113113
},
114114
).also {
115115
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, it)
116116
}
117+
combine(viewModel.canUndo, viewModel.canRedo) { canUndo, canRedo -> canUndo || canRedo }
118+
.onEach { hasContent ->
119+
doubleBackCallback?.isEnabled = !isHidden && isUsingGesturesNavigation && hasContent
120+
}.launchIn(lifecycleScope)
117121
}
118122

119123
override fun onHiddenChanged(hidden: Boolean) {
120124
super.onHiddenChanged(hidden)
121125
val isUsingGesturesNavigation = context?.let { compat.isUsingSystemGestureNavigation(it) } == true
122-
doubleBackCallback?.isEnabled = !hidden && isUsingGesturesNavigation
126+
doubleBackCallback?.isEnabled = !hidden && isUsingGesturesNavigation && !isEmpty()
123127
}
124128

125129
private fun setupUI() {

0 commit comments

Comments
 (0)