diff --git a/app/build.gradle b/app/build.gradle index c61d801d16..fe8b4eb2e0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -341,7 +341,7 @@ dependencies { def activity_version = "1.5.0" // 1.6.0-alpha03 def fragment_version = "1.5.0" def windows_version = "1.0.0" // 1.1.0-alpha01 - def webkit_version = "1.5.0-alpha01" + def webkit_version = "1.5.0-beta01" def recyclerview_version = "1.2.1" // 1.3.0-alpha02 def coordinatorlayout_version = "1.2.0" def constraintlayout_version = "2.1.4" // 2.2.0-alpha01 diff --git a/app/src/main/java/eu/faircode/email/ActivityAMP.java b/app/src/main/java/eu/faircode/email/ActivityAMP.java index bbe0c30aee..9f76007bf8 100644 --- a/app/src/main/java/eu/faircode/email/ActivityAMP.java +++ b/app/src/main/java/eu/faircode/email/ActivityAMP.java @@ -24,6 +24,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; @@ -161,7 +162,7 @@ public class ActivityAMP extends ActivityBase { WebSettings settings = wvAmp.getSettings(); boolean dark = (Helper.isDarkTheme(this) && !force_light); boolean canDarken = WebViewEx.isFeatureSupported(this, WebViewFeature.ALGORITHMIC_DARKENING); - if (canDarken) + if (canDarken && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) WebSettingsCompat.setAlgorithmicDarkeningAllowed(settings, dark); } diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 4c214afc94..1a7f2dddc7 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -6248,6 +6248,25 @@ public class AdapterMessage extends RecyclerView.Adapter= Build.VERSION_CODES.Q) WebSettingsCompat.setAlgorithmicDarkeningAllowed(settings, dark); settings.setLoadsImagesAutomatically(true); diff --git a/app/src/main/java/eu/faircode/email/WebViewEx.java b/app/src/main/java/eu/faircode/email/WebViewEx.java index 79833096cb..633f25726e 100644 --- a/app/src/main/java/eu/faircode/email/WebViewEx.java +++ b/app/src/main/java/eu/faircode/email/WebViewEx.java @@ -121,7 +121,7 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC // https://developer.android.com/reference/android/webkit/WebSettings#setAlgorithmicDarkeningAllowed(boolean) // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme boolean canDarken = WebViewEx.isFeatureSupported(context, WebViewFeature.ALGORITHMIC_DARKENING); - if (canDarken) + if (canDarken && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) WebSettingsCompat.setAlgorithmicDarkeningAllowed(settings, dark && !force_light); setBackgroundColor(canDarken && dark && !force_light ? Color.TRANSPARENT : Color.WHITE); @@ -368,7 +368,10 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC } public static boolean isFeatureSupported(Context context, String feature) { - if (WebViewFeature.ALGORITHMIC_DARKENING.equals(feature)) + if (WebViewFeature.ALGORITHMIC_DARKENING.equals(feature)) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) + return false; + try { PackageInfo pkg = WebViewCompat.getCurrentWebViewPackage(context); if (pkg != null && pkg.versionCode / 100000 < 5005) // Version 102.* @@ -376,6 +379,7 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC } catch (Throwable ex) { Log.e(ex); } + } try { return WebViewFeature.isFeatureSupported(feature); diff --git a/app/src/main/res/layout/dialog_dark.xml b/app/src/main/res/layout/dialog_dark.xml new file mode 100644 index 0000000000..0a733d61c4 --- /dev/null +++ b/app/src/main/res/layout/dialog_dark.xml @@ -0,0 +1,32 @@ + + + + + + + +