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 4f094812e8..888f40026f 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 @@ -189,6 +189,9 @@ class ReaderActivity : BaseRxActivity() { private var lastCropRes = 0 + val isSplitScreen: Boolean + get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && isInMultiWindowMode + companion object { const val SHIFT_DOUBLE_PAGES = "shiftingDoublePages" @@ -766,28 +769,16 @@ class ReaderActivity : BaseRxActivity() { insets.getInsets(systemBars()) } val vis = insets.isVisible(statusBars()) - val isSplitScreen = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && isInMultiWindowMode - binding.viewerContainer.updateLayoutParams { - if (isSplitScreen) { - topMargin = systemInsets.top - bottomMargin = systemInsets.bottom - } else { - topMargin = 0 - bottomMargin = 0 - } - } - binding.pageNumber.updateLayoutParams { - bottomMargin = if (isSplitScreen) systemInsets.bottom else 0 - } + val fullscreen = preferences.fullscreen().get() && !isSplitScreen if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - if (!firstPass && lastVis != vis && preferences.fullscreen().get()) { + if (!firstPass && lastVis != vis && fullscreen) { onVisibilityChange(vis) } firstPass = false lastVis = vis } wic.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE - if (!preferences.fullscreen().get() && sheetManageNavColor) { + if (!fullscreen && sheetManageNavColor) { window.navigationBarColor = getResourceColor(R.attr.colorSurface) } binding.appBar.updateLayoutParams { @@ -806,9 +797,8 @@ class ReaderActivity : BaseRxActivity() { leftMargin = 12.dpToPx + systemInsets.left rightMargin = 12.dpToPx + systemInsets.right } - val fullscreen = preferences.fullscreen().get() binding.chaptersSheet.root.sheetBehavior?.peekHeight = - peek + if (fullscreen || isSplitScreen) { + peek + if (fullscreen) { insets.getBottomGestureInsets() } else { val rootInsets = binding.root.rootWindowInsetsCompat ?: insets @@ -833,7 +823,7 @@ class ReaderActivity : BaseRxActivity() { fun setNavColor(insets: WindowInsetsCompat) { sheetManageNavColor = when { - (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && isInMultiWindowMode) -> { + isSplitScreen -> { window.statusBarColor = getResourceColor(R.attr.colorPrimaryVariant) window.navigationBarColor = getResourceColor(R.attr.colorPrimaryVariant) false @@ -1647,7 +1637,7 @@ class ReaderActivity : BaseRxActivity() { * Sets the fullscreen reading mode (immersive) according to [enabled]. */ private fun setFullscreen(enabled: Boolean) { - WindowCompat.setDecorFitsSystemWindows(window, !enabled) + WindowCompat.setDecorFitsSystemWindows(window, !enabled || isSplitScreen) wic.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE binding.root.rootWindowInsetsCompat?.let { setNavColor(it) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt index 1ca461f319..5c00c840e0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt @@ -44,6 +44,9 @@ class PagerConfig( var cutoutBehavior = 0 private set + var isFullscreen = true + private set + var shiftDoublePage = false var doublePages = preferences.pageLayout().get() == PageLayout.DOUBLE_PAGES.value @@ -62,8 +65,9 @@ class PagerConfig( var autoSplitPages = preferences.automaticSplitsPage().get() init { - preferences.pageTransitions() - .register({ usePageTransitions = it }) + preferences.pageTransitions().register({ usePageTransitions = it }) + + preferences.fullscreen().register({ isFullscreen = it }) preferences.imageScaleType() .register({ imageScaleType = it }, { imagePropertyChangedListener?.invoke() }) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt index 5ecdd5add0..d257699bc0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt @@ -504,7 +504,9 @@ class PagerPageHolder( val bottomInsets = viewer.activity.window.decorView.rootWindowInsets.bottomCutoutInset().toFloat() setExtendPastCutout(config.cutoutBehavior == CUTOUT_START_EXTENDED && config.scaleTypeIsFullFit() && topInsets + bottomInsets > 0) if ((config.cutoutBehavior != CUTOUT_IGNORE || !config.scaleTypeIsFullFit()) && - android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q + android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q && + config.isFullscreen && + !viewer.activity.isInMultiWindowMode ) { val insets: WindowInsets? = viewer.activity.window.decorView.rootWindowInsets setExtraSpace(