ViewCompat.setOnApplyWindowInsetsListener in PostFilterPreferenceActivity.

This commit is contained in:
Docile-Alligator
2025-06-16 21:36:23 -04:00
parent 5bf5a6c015
commit ae2d9ecb64

View File

@ -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);