From 774fc354b2ab7f8fc34bb37a135ea788013f9f14 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 23 Jan 2025 21:54:52 +0100 Subject: [PATCH] Restore viewport height limit --- .../main/java/eu/faircode/email/ApplicationEx.java | 13 ------------- app/src/main/java/eu/faircode/email/Log.java | 2 +- app/src/main/java/eu/faircode/email/WebViewEx.java | 9 +++++---- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java index 7e2b8cc106..b32ac70da0 100644 --- a/app/src/main/java/eu/faircode/email/ApplicationEx.java +++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java @@ -159,19 +159,6 @@ public class ApplicationEx extends Application Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(@NonNull Thread thread, @NonNull Throwable ex) { - // java.lang.IllegalStateException: Unable to create layer for WebViewEx, size 768x4864 max size 8192 color type 4 has context 1 - // at android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) - // at android.os.MessageQueue.next(MessageQueue.java:326) - // at android.os.Looper.loop(Looper.java:183) - // at android.app.ActivityThread.main(ActivityThread.java:7266) - if (ex instanceof IllegalStateException && - ex.getMessage() != null && - ex.getMessage().contains("Unable to create layer for WebView")) { - int viewport_height = prefs.getInt("viewport_height", WebViewEx.DEFAULT_VIEWPORT_HEIGHT); - if (viewport_height > WebViewEx.DEFAULT_VIEWPORT_HEIGHT) - prefs.edit().putInt("viewport_height", WebViewEx.DEFAULT_VIEWPORT_HEIGHT).apply(); - } - if (!crash_reports && Log.isOwnFault(ex)) { Log.e(ex); diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index 447b9a9709..5a607a1285 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -1053,7 +1053,7 @@ public class Log { if (ex.getMessage() != null && (ex.getMessage().startsWith("Bad notification posted") || ex.getMessage().contains("ActivityRecord not found") || - //ex.getMessage().startsWith("Unable to create layer") || + ex.getMessage().startsWith("Unable to create layer") || ex.getMessage().startsWith("Illegal meta data value") || ex.getMessage().startsWith("Context.startForegroundService") || ex.getMessage().startsWith("PARAGRAPH span must start at paragraph boundary"))) diff --git a/app/src/main/java/eu/faircode/email/WebViewEx.java b/app/src/main/java/eu/faircode/email/WebViewEx.java index 0035aca810..c4925752f5 100644 --- a/app/src/main/java/eu/faircode/email/WebViewEx.java +++ b/app/src/main/java/eu/faircode/email/WebViewEx.java @@ -278,7 +278,11 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - // Unable to create layer for WebViewEx, size 1088x16384 max size 16383 color type 4 has context 1) + // java.lang.IllegalStateException: Unable to create layer for WebViewEx, size 768x4864 max size 8192 color type 4 has context 1 + // at android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) + // at android.os.MessageQueue.next(MessageQueue.java:326) + // at android.os.Looper.loop(Looper.java:183) + // at android.app.ActivityThread.main(ActivityThread.java:7266) if (viewportHeight == 0) heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED); else @@ -480,9 +484,6 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC } static int getDefaultViewportHeight(Context context) { - if (true) - return 0; - if (Helper.isGoogle() && Build.VERSION.SDK_INT > Build.VERSION_CODES.UPSIDE_DOWN_CAKE /* Android 14 */) return DEFAULT_VIEWPORT_HEIGHT * 2; else