diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt b/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt index e802da862551..f6c6a00fe156 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt @@ -42,6 +42,7 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.RelativeLayout import android.widget.TextView +import androidx.activity.enableEdgeToEdge import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.CheckResult import androidx.annotation.DrawableRes @@ -214,6 +215,7 @@ open class Reviewer : if (!ensureStoragePermissions()) { return } + enableEdgeToEdge() colorPalette = findViewById(R.id.whiteboard_editor) answerTimer = AnswerTimer(findViewById(R.id.card_time)) textBarNew = findViewById(R.id.new_number) @@ -343,9 +345,9 @@ open class Reviewer : override fun getContentViewAttr(fullscreenMode: FullScreenMode): Int = when (fullscreenMode) { - FullScreenMode.BUTTONS_ONLY -> R.layout.reviewer_fullscreen + FullScreenMode.BUTTONS_AND_MENU_WITH_STATUS_BAR -> R.layout.reviewer + FullScreenMode.BUTTONS_AND_MENU_ONLY -> R.layout.reviewer_fullscreen FullScreenMode.FULLSCREEN_ALL_GONE -> R.layout.reviewer_fullscreen_noanswers - FullScreenMode.BUTTONS_AND_MENU -> R.layout.reviewer } public override fun fitsSystemWindows(): Boolean = !fullscreenMode.isFullScreenReview() @@ -1419,14 +1421,14 @@ open class Reviewer : val visible = flags and View.SYSTEM_UI_FLAG_HIDE_NAVIGATION == 0 Timber.d("System UI visibility change. Visible: %b", visible) if (visible) { - showViewWithAnimation(toolbar) if (fullscreenMode == FullScreenMode.FULLSCREEN_ALL_GONE) { + showViewWithAnimation(toolbar) showViewWithAnimation(topbar) showViewWithAnimation(answerButtons) } } else { - hideViewWithAnimation(toolbar) if (fullscreenMode == FullScreenMode.FULLSCREEN_ALL_GONE) { + hideViewWithAnimation(toolbar) hideViewWithAnimation(topbar) hideViewWithAnimation(answerButtons) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/FullScreenMode.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/FullScreenMode.kt index 618e8c2f5973..3eb8d1f7a53e 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/FullScreenMode.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/FullScreenMode.kt @@ -23,23 +23,23 @@ import timber.log.Timber enum class FullScreenMode( private val prefValue: String, ) { - /** Display both navigation and buttons (default) */ - BUTTONS_AND_MENU("0"), + /** Display both navigation and buttons with status bar (default) */ + BUTTONS_AND_MENU_WITH_STATUS_BAR("0"), - /** Remove the menu bar, keeps answer button. */ - BUTTONS_ONLY("1"), + /** Remove the status bar, keeps answer button and menu bar. */ + BUTTONS_AND_MENU_ONLY("1"), - /** Remove both menu bar and buttons. Can only be set if gesture is on. */ + /** Remove menu bar, buttons and status bar. Can only be set if gesture is on. */ FULLSCREEN_ALL_GONE("2"), ; fun getPreferenceValue() = prefValue - fun isFullScreenReview() = this != BUTTONS_AND_MENU + fun isFullScreenReview() = this != BUTTONS_AND_MENU_WITH_STATUS_BAR companion object { const val PREF_KEY = "fullscreenMode" - val DEFAULT = BUTTONS_AND_MENU + val DEFAULT = BUTTONS_AND_MENU_WITH_STATUS_BAR fun fromPreference(prefs: SharedPreferences): FullScreenMode { val value = prefs.getString(PREF_KEY, DEFAULT.prefValue) @@ -55,7 +55,7 @@ enum class FullScreenMode( // clear fullscreen flag as we use a integer val fullScreenModeKey = PREF_KEY val old = preferences.getBoolean("fullscreenReview", false) - val newValue = if (old) BUTTONS_ONLY else BUTTONS_AND_MENU + val newValue = if (old) BUTTONS_AND_MENU_ONLY else BUTTONS_AND_MENU_WITH_STATUS_BAR preferences.edit { putString(fullScreenModeKey, newValue.getPreferenceValue()) remove("fullscreenReview") diff --git a/AnkiDroid/src/main/res/layout/reviewer_answer_buttons.xml b/AnkiDroid/src/main/res/layout/reviewer_answer_buttons.xml index a028d40a6b4e..394e9c7304e9 100644 --- a/AnkiDroid/src/main/res/layout/reviewer_answer_buttons.xml +++ b/AnkiDroid/src/main/res/layout/reviewer_answer_buttons.xml @@ -48,8 +48,7 @@ + android:layout_height="match_parent"> android:id="@+id/fullscreen_frame" android:layout_width="match_parent" android:layout_height="match_parent"> - + android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_above="@+id/bottom_area_layout"/> - - - - - - + android:layout_alignParentBottom="true"/> + + diff --git a/AnkiDroid/src/main/res/layout/reviewer_fullscreen_noanswers.xml b/AnkiDroid/src/main/res/layout/reviewer_fullscreen_noanswers.xml index 4bf9a7bf2d1b..a4f92080690d 100644 --- a/AnkiDroid/src/main/res/layout/reviewer_fullscreen_noanswers.xml +++ b/AnkiDroid/src/main/res/layout/reviewer_fullscreen_noanswers.xml @@ -7,7 +7,8 @@ + android:layout_height="match_parent" + android:fitsSystemWindows="true"> - + diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt index 1246b7adf682..9c5b976e3235 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt @@ -321,7 +321,7 @@ class ReviewerNoParamTest : RobolectricTest() { private fun startReviewerFullScreen(): ReviewerExt { val sharedPrefs = targetContext.sharedPrefs() - setPreference(sharedPrefs, FullScreenMode.BUTTONS_ONLY) + setPreference(sharedPrefs, FullScreenMode.BUTTONS_AND_MENU_ONLY) return ReviewerTest.startReviewer(this, ReviewerExt::class.java) }