From ae2d9ecb64de7b42f941ff4afb10d474cfba8c73 Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Mon, 16 Jun 2025 21:36:23 -0400 Subject: [PATCH] ViewCompat.setOnApplyWindowInsetsListener in PostFilterPreferenceActivity. --- .../PostFilterPreferenceActivity.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostFilterPreferenceActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostFilterPreferenceActivity.java index 65477cdf..b4ba4e55 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostFilterPreferenceActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostFilterPreferenceActivity.java @@ -4,9 +4,14 @@ import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.MenuItem; +import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.graphics.Insets; +import androidx.core.view.OnApplyWindowInsetsListener; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -30,6 +35,7 @@ import ml.docilealligator.infinityforreddit.postfilter.DeletePostFilter; import ml.docilealligator.infinityforreddit.postfilter.PostFilter; import ml.docilealligator.infinityforreddit.postfilter.PostFilterWithUsage; import ml.docilealligator.infinityforreddit.postfilter.PostFilterWithUsageViewModel; +import ml.docilealligator.infinityforreddit.utils.Utils; public class PostFilterPreferenceActivity extends BaseActivity { @@ -66,6 +72,44 @@ public class PostFilterPreferenceActivity extends BaseActivity { applyCustomTheme(); + if (isImmersiveInterface()) { + if (isChangeStatusBarIconColor()) { + addOnOffsetChangedListener(binding.appbarLayoutPostFilterPreferenceActivity); + } + + ViewCompat.setOnApplyWindowInsetsListener(binding.getRoot(), new OnApplyWindowInsetsListener() { + @NonNull + @Override + public WindowInsetsCompat onApplyWindowInsets(@NonNull View v, @NonNull WindowInsetsCompat insets) { + Insets allInsets = insets.getInsets( + WindowInsetsCompat.Type.systemBars() + | WindowInsetsCompat.Type.displayCutout() + ); + + setMargins(binding.toolbarPostFilterPreferenceActivity, + allInsets.left, + allInsets.top, + allInsets.right, + BaseActivity.IGNORE_MARGIN); + + binding.recyclerViewPostFilterPreferenceActivity.setPadding( + allInsets.left, + 0, + allInsets.right, + allInsets.bottom + ); + + setMargins(binding.fabPostFilterPreferenceActivity, + BaseActivity.IGNORE_MARGIN, + BaseActivity.IGNORE_MARGIN, + (int) Utils.convertDpToPixel(16, PostFilterPreferenceActivity.this) + allInsets.right, + (int) Utils.convertDpToPixel(16, PostFilterPreferenceActivity.this) + allInsets.bottom); + + return WindowInsetsCompat.CONSUMED; + } + }); + } + setSupportActionBar(binding.toolbarPostFilterPreferenceActivity); getSupportActionBar().setDisplayHomeAsUpEnabled(true);