Prevent crash

This commit is contained in:
M66B 2021-02-18 21:39:07 +01:00
parent c228c68c71
commit 58144b7d1d
3 changed files with 23 additions and 4 deletions

View File

@ -3742,7 +3742,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
});
boolean isDark = Helper.isDarkTheme(context);
boolean canDark = WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK);
boolean canDark = WebViewEx.isFeatureSupported(WebViewFeature.FORCE_DARK);
tvDark.setVisibility(isDark && !canDark ? View.VISIBLE : View.GONE);
cbDark.setVisibility(isDark && canDark ? View.VISIBLE : View.GONE);

View File

@ -268,7 +268,7 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer
}
});
grpSafeBrowsing.setEnabled(WebViewFeature.isFeatureSupported(WebViewFeature.SAFE_BROWSING_ENABLE));
grpSafeBrowsing.setEnabled(WebViewEx.isFeatureSupported(WebViewFeature.SAFE_BROWSING_ENABLE));
ibDisconnectBlacklist.setOnClickListener(new View.OnClickListener() {
@Override

View File

@ -75,11 +75,11 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
if (WebViewFeature.isFeatureSupported(WebViewFeature.SAFE_BROWSING_ENABLE))
if (WebViewEx.isFeatureSupported(WebViewFeature.SAFE_BROWSING_ENABLE))
WebSettingsCompat.setSafeBrowsingEnabled(settings, safe_browsing);
if (html_dark &&
WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK))
WebViewEx.isFeatureSupported(WebViewFeature.FORCE_DARK))
WebSettingsCompat.setForceDark(settings,
Helper.isDarkTheme(context) ? FORCE_DARK_ON : FORCE_DARK_OFF);
}
@ -309,6 +309,25 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC
return false;
}
public static boolean isFeatureSupported(String feature) {
try {
return WebViewFeature.isFeatureSupported(feature);
} catch (Throwable ex) {
/*
java.lang.ExceptionInInitializerError
at androidx.webkit.internal.WebViewGlueCommunicator.getFactory(SourceFile:1)
at androidx.webkit.internal.WebViewFeatureInternal$LAZY_HOLDER.<clinit>(SourceFile:2)
at androidx.webkit.internal.WebViewFeatureInternal.isSupportedByWebView(SourceFile:1)
at androidx.webkit.internal.WebViewFeatureInternal.isSupported(SourceFile:13)
at androidx.webkit.internal.WebViewFeatureInternal.isSupported(SourceFile:11)
at androidx.webkit.internal.WebViewFeatureInternal.isSupported(SourceFile:4)
at androidx.webkit.WebViewFeature.isFeatureSupported(SourceFile:1)
*/
Log.w(ex);
return false;
}
}
interface IWebView {
void onSizeChanged(int w, int h, int ow, int oh);