Horis 3 лет назад
Родитель
Сommit
e8d9ee4c23
1 измененных файлов с 9 добавлено и 2 удалено
  1. 9 2
      app/src/main/java/io/legado/app/utils/ActivityExtensions.kt

+ 9 - 2
app/src/main/java/io/legado/app/utils/ActivityExtensions.kt

@@ -34,17 +34,24 @@ val WindowManager.windowSize: DisplayMetrics
             val windowMetrics: WindowMetrics = currentWindowMetrics
             val windowMetrics: WindowMetrics = currentWindowMetrics
             val insets = windowMetrics.windowInsets
             val insets = windowMetrics.windowInsets
                 .getInsetsIgnoringVisibility(WindowInsets.Type.systemBars())
                 .getInsetsIgnoringVisibility(WindowInsets.Type.systemBars())
+            val insetsCutout = windowMetrics.windowInsets
+                .getInsets(WindowInsets.Type.displayCutout())
             val windowWidth = windowMetrics.bounds.width()
             val windowWidth = windowMetrics.bounds.width()
             val windowHeight = windowMetrics.bounds.height()
             val windowHeight = windowMetrics.bounds.height()
             var insetsWidth = insets.left + insets.right
             var insetsWidth = insets.left + insets.right
             var insetsHeight = insets.top + insets.bottom
             var insetsHeight = insets.top + insets.bottom
+            var insetsCutoutWidth = insetsCutout.left + insetsCutout.right
+            var insetsCutoutHeight = 0
             if (windowWidth > windowHeight) {
             if (windowWidth > windowHeight) {
                 val tmp = insetsWidth
                 val tmp = insetsWidth
                 insetsWidth = insetsHeight
                 insetsWidth = insetsHeight
                 insetsHeight = tmp
                 insetsHeight = tmp
+
+                insetsCutoutHeight = insetsCutoutWidth
+                insetsCutoutWidth = 0
             }
             }
-            displayMetrics.widthPixels = windowWidth - insetsWidth
-            displayMetrics.heightPixels = windowHeight - insetsHeight
+            displayMetrics.widthPixels = windowWidth - insetsWidth - insetsCutoutWidth
+            displayMetrics.heightPixels = windowHeight - insetsHeight - insetsCutoutHeight
         } else {
         } else {
             @Suppress("DEPRECATION")
             @Suppress("DEPRECATION")
             defaultDisplay.getMetrics(displayMetrics)
             defaultDisplay.getMetrics(displayMetrics)