diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SystemWindowInsetsSetter.kt b/app/src/main/java/org/thoughtcrime/securesms/util/SystemWindowInsetsSetter.kt index 68da241e77..1d0df27b30 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SystemWindowInsetsSetter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SystemWindowInsetsSetter.kt @@ -1,6 +1,8 @@ package org.thoughtcrime.securesms.util +import android.os.Build import android.view.View +import androidx.core.graphics.Insets import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.lifecycle.DefaultLifecycleObserver @@ -13,9 +15,9 @@ object SystemWindowInsetsSetter { */ fun attach(view: View, lifecycleOwner: LifecycleOwner, @WindowInsetsCompat.Type.InsetsType insetType: Int = WindowInsetsCompat.Type.systemBars()) { val listener = view.doOnEachLayout { - val insets = ViewCompat.getRootWindowInsets(view)?.getInsets(insetType) + val insets: Insets? = ViewCompat.getRootWindowInsets(view)?.getInsets(insetType) - if (insets != null) { + if (Build.VERSION.SDK_INT > 29 && insets != null && !insets.isEmpty()) { view.setPadding( insets.left, insets.top, @@ -40,4 +42,8 @@ object SystemWindowInsetsSetter { lifecycleOwner.lifecycle.addObserver(lifecycleObserver) } + + private fun Insets.isEmpty(): Boolean { + return (top + bottom + right + left) == 0 + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java index b64f6674d9..8c98383d99 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java @@ -20,6 +20,7 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.res.Resources; +import android.os.Build; import android.util.TypedValue; import android.view.Gravity; import android.view.LayoutInflater; @@ -329,7 +330,7 @@ public final class ViewUtil { public static int getStatusBarHeight(@NonNull View view) { final WindowInsetsCompat rootWindowInsets = ViewCompat.getRootWindowInsets(view); - if (rootWindowInsets != null) { + if (Build.VERSION.SDK_INT > 29 && rootWindowInsets != null) { return rootWindowInsets.getInsets(WindowInsetsCompat.Type.statusBars()).top; } else { int result = 0; @@ -343,7 +344,7 @@ public final class ViewUtil { public static int getNavigationBarHeight(@NonNull View view) { final WindowInsetsCompat rootWindowInsets = ViewCompat.getRootWindowInsets(view); - if (rootWindowInsets != null) { + if (Build.VERSION.SDK_INT > 29 && rootWindowInsets != null) { return rootWindowInsets.getInsets(WindowInsetsCompat.Type.navigationBars()).bottom; } else { int result = 0;