From e5dbc3cbd71f02f8842bdcb128b1181fd1dd28e6 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Wed, 16 Sep 2020 02:42:17 -0400 Subject: [PATCH] Pages in Pager mode no longer overlaps cutout areas Zooming in is still edge to edge, but the padding will make sure the top of the page is under the cutout area If you can't tell I have a phone with a cutout now --- app/build.gradle.kts | 2 +- .../ui/reader/viewer/pager/PagerPageHolder.kt | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 395e9e6d58..e0b6e2c3fc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -87,7 +87,7 @@ androidExtensions { dependencies { // Modified dependencies - implementation("com.github.inorichi:subsampling-scale-image-view:ac0dae7") + implementation("com.github.jays2kings:subsampling-scale-image-view:78f9664") implementation("com.github.inorichi:junrar-android:634c1f5") // Android X libraries 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 2fee4e37e9..8df77e23ef 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 @@ -13,6 +13,7 @@ import android.view.MotionEvent import android.view.ViewGroup import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.view.ViewGroup.LayoutParams.WRAP_CONTENT +import android.view.WindowInsets import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout @@ -365,6 +366,15 @@ class PagerPageHolder( setMinimumDpi(90) setMinimumTileDpi(180) setCropBorders(config.imageCropBorders) + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) { + val insets: WindowInsets? = viewer.activity.window.decorView.rootWindowInsets + setExtraSpace( + 0f, + insets?.displayCutout?.boundingRectTop?.height()?.toFloat() ?: 0f, + 0f, + insets?.displayCutout?.boundingRectBottom?.height()?.toFloat() ?: 0f + ) + } setOnImageEventListener( object : SubsamplingScaleImageView.DefaultOnImageEventListener() { override fun onReady() {