Skip to content

Commit c620082

Browse files
committed
feat(previewer): motion controllers
1 parent 6f1a387 commit c620082

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerFragment.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import android.view.MenuItem
2424
import android.view.View
2525
import android.webkit.WebView
2626
import androidx.appcompat.widget.Toolbar
27+
import androidx.coordinatorlayout.widget.CoordinatorLayout
2728
import androidx.core.os.BundleCompat
2829
import androidx.core.os.bundleOf
2930
import androidx.core.view.isVisible
@@ -45,6 +46,7 @@ import com.ichi2.anki.reviewer.BindingProcessor
4546
import com.ichi2.anki.reviewer.MappableBinding
4647
import com.ichi2.anki.snackbar.BaseSnackbarBuilderProvider
4748
import com.ichi2.anki.snackbar.SnackbarBuilder
49+
import com.ichi2.anki.utils.ext.collectIn
4850
import com.ichi2.anki.utils.ext.sharedPrefs
4951
import com.ichi2.annotations.NeedsTest
5052
import com.ichi2.utils.performClickIfEnabled
@@ -178,6 +180,16 @@ class PreviewerFragment :
178180
viewModel.onPreviousButtonClick()
179181
}
180182

183+
view.setOnGenericMotionListener { _, event ->
184+
bindingMap.onGenericMotionEvent(event)
185+
}
186+
187+
viewModel.showingAnswer.collectIn(lifecycleScope) {
188+
// focus on the whole layout so motion controllers can be captured
189+
// without navigating the other View elements
190+
view.findViewById<CoordinatorLayout>(R.id.root_layout).requestFocus()
191+
}
192+
181193
view.findViewById<MaterialToolbar>(R.id.toolbar).apply {
182194
setOnMenuItemClickListener(this@PreviewerFragment)
183195
setNavigationOnClickListener { requireActivity().onBackPressedDispatcher.onBackPressed() }

AnkiDroid/src/main/res/layout/previewer.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
android:layout_height="match_parent"
88
android:fitsSystemWindows="true"
99
android:background="?attr/alternativeBackgroundColor"
10+
android:focusableInTouchMode="true"
1011
tools:context=".previewer.PreviewerFragment">
1112

1213
<androidx.constraintlayout.widget.ConstraintLayout

0 commit comments

Comments
 (0)