From 3920a5a73b092de0b594134f4b9daf8422350d98 Mon Sep 17 00:00:00 2001 From: arkon Date: Thu, 30 Jul 2020 22:38:10 -0400 Subject: [PATCH] Hide cutout option when appropriate in reader settings sheet (closes #2982) (cherry picked from commit b9488645d4de4d5a844426d7503b13f5675bc3a2) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderSettingsSheet.kt --- .../tachiyomi/ui/reader/ReaderActivity.kt | 18 +++++++++++++----- .../tachiyomi/ui/reader/ReaderSettingsSheet.kt | 7 ++++++- .../main/res/layout/reader_settings_sheet.xml | 4 +++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 92287955b..8692d4b66 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -54,6 +54,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer import eu.kanade.tachiyomi.util.lang.plusAssign import eu.kanade.tachiyomi.util.storage.getUriCompat import eu.kanade.tachiyomi.util.system.GLUtil +import eu.kanade.tachiyomi.util.system.hasDisplayCutout import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.view.defaultBar import eu.kanade.tachiyomi.util.view.hideBar @@ -67,6 +68,7 @@ import java.io.File import java.util.concurrent.TimeUnit import kotlin.math.abs import kotlin.math.roundToLong +import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.delay import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.launchIn @@ -98,6 +100,8 @@ class ReaderActivity : BaseRxActivity() */ val maxBitmapSize by lazy { GLUtil.maxTextureSize } + val hasCutout by lazy { hasDisplayCutout() } + /** * Viewer used to display the pages (pager, webtoon, ...). */ @@ -881,6 +885,7 @@ class ReaderActivity : BaseRxActivity() /** * Class that handles the user preferences of the reader. */ + @FlowPreview private inner class ReaderConfig { /** @@ -908,11 +913,9 @@ class ReaderActivity : BaseRxActivity() .onEach { setTrueColor(it) } .launchIn(scope) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - preferences.cutoutShort().asFlow() - .onEach { setCutoutShort(it) } - .launchIn(scope) - } + preferences.cutoutShort().asFlow() + .onEach { setCutoutShort(it) } + .launchIn(scope) preferences.keepScreenOn().asFlow() .onEach { setKeepScreenOn(it) } @@ -982,6 +985,9 @@ class ReaderActivity : BaseRxActivity() true -> WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES false -> WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER } + + // Trigger relayout + setMenuVisibility(menuVisible) } /** @@ -998,6 +1004,7 @@ class ReaderActivity : BaseRxActivity() /** * Sets the custom brightness overlay according to [enabled]. */ + @FlowPreview private fun setCustomBrightness(enabled: Boolean) { if (enabled) { preferences.customBrightnessValue().asFlow() @@ -1012,6 +1019,7 @@ class ReaderActivity : BaseRxActivity() /** * Sets the color filter overlay according to [enabled]. */ + @FlowPreview private fun setColorFilter(enabled: Boolean) { if (enabled) { preferences.colorFilterValue().asFlow() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderSettingsSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderSettingsSheet.kt index 88a2cbb8d..828d8d4db 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderSettingsSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderSettingsSheet.kt @@ -67,7 +67,6 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia binding.backgroundColor.bindToIntPreference(preferences.readerTheme(), R.array.reader_themes_values) binding.showPageNumber.bindToPreference(preferences.showPageNumber()) binding.fullscreen.bindToPreference(preferences.fullscreen()) - binding.cutoutShort.bindToPreference(preferences.cutoutShort()) binding.keepscreen.bindToPreference(preferences.keepScreenOn()) binding.longTap.bindToPreference(preferences.readWithLongTap()) binding.alwaysShowChapterTransition.bindToPreference(preferences.alwaysShowChapterTransition()) @@ -76,6 +75,12 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia // SY --> binding.autoWebtoonMode.bindToPreference(preferences.eh_useAutoWebtoon()) // SY <-- + + // If the preference is explicitly disabled, that means the setting was configured since there is a cutout + if (activity.hasCutout || !preferences.cutoutShort().get()) { + binding.cutoutShort.isVisible = true + binding.cutoutShort.bindToPreference(preferences.cutoutShort()) + } } /** diff --git a/app/src/main/res/layout/reader_settings_sheet.xml b/app/src/main/res/layout/reader_settings_sheet.xml index dcc7432fb..b6d219129 100644 --- a/app/src/main/res/layout/reader_settings_sheet.xml +++ b/app/src/main/res/layout/reader_settings_sheet.xml @@ -164,7 +164,9 @@ android:layout_height="wrap_content" android:text="@string/pref_cutout_short" android:textColor="?android:attr/textColorSecondary" - app:layout_constraintTop_toBottomOf="@id/fullscreen" /> + android:visibility="gone" + app:layout_constraintTop_toBottomOf="@id/fullscreen" + tools:visibility="visible" />