ViewCompat.setOnApplyWindowInsetsListener in WebViewActivity.

This commit is contained in:
Docile-Alligator
2025-06-16 22:06:12 -04:00
parent ed1e437a3b
commit 1a0be352cd

View File

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