From a2e2f7f93f317f8562b44d5cad015f2d79c0bfd4 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 4 Jul 2022 08:49:20 +0200 Subject: [PATCH] Prevent flickering --- .../main/java/eu/faircode/email/WebViewEx.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/WebViewEx.java b/app/src/main/java/eu/faircode/email/WebViewEx.java index 72a5ca6908..3548baf681 100644 --- a/app/src/main/java/eu/faircode/email/WebViewEx.java +++ b/app/src/main/java/eu/faircode/email/WebViewEx.java @@ -43,12 +43,15 @@ import androidx.webkit.WebSettingsCompat; import androidx.webkit.WebViewCompat; import androidx.webkit.WebViewFeature; +import java.util.Objects; + public class WebViewEx extends WebView implements DownloadListener, View.OnLongClickListener { private int height; private int maxHeight; private boolean legacy; private IWebView intf; private Runnable onPageLoaded; + private String hash; private static String userAgent = null; @@ -219,6 +222,21 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC settings.setBlockNetworkImage(!show_images); } + @Override + public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) { + try { + // Prevent flickering + String h = (data == null ? null : Helper.md5(data.getBytes())); + if (Objects.equals(hash, h)) + return; + this.hash = h; + } catch (Throwable ex) { + Log.w(ex); + } + + super.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl); + } + @Override public void setMinimumHeight(int minHeight) { super.setMinimumHeight(minHeight);