From 1a0be352cda983112a44c4f5255fb1827ac34d5f Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Mon, 16 Jun 2025 22:06:12 -0400 Subject: [PATCH] ViewCompat.setOnApplyWindowInsetsListener in WebViewActivity. --- .../activities/WebViewActivity.java | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WebViewActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WebViewActivity.java index 336567b0..2f71054c 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WebViewActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WebViewActivity.java @@ -16,11 +16,16 @@ import android.view.InflateException; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; +import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.core.graphics.Insets; +import androidx.core.view.OnApplyWindowInsetsListener; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; import javax.inject.Inject; import javax.inject.Named; @@ -57,7 +62,7 @@ public class WebViewActivity extends BaseActivity { binding = ActivityWebViewBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); } catch (InflateException ie) { - Log.e("LoginActivity", "Failed to inflate LoginActivity: " + ie.getMessage()); + Log.e("WebViewActivity", "Failed to inflate WebViewActivity: " + ie.getMessage()); Toast.makeText(WebViewActivity.this, R.string.no_system_webview_error, Toast.LENGTH_SHORT).show(); finish(); return; @@ -65,6 +70,33 @@ public class WebViewActivity extends BaseActivity { applyCustomTheme(); + if (isImmersiveInterface()) { + 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.toolbarWebViewActivity, + allInsets.left, + allInsets.top, + allInsets.right, + BaseActivity.IGNORE_MARGIN); + + binding.webViewWebViewActivity.setPadding( + allInsets.left, + 0, + allInsets.right, + allInsets.bottom); + + return WindowInsetsCompat.CONSUMED; + } + }); + } + setSupportActionBar(binding.toolbarWebViewActivity); if (mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, null) == null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {