Android 13: fixed force dark / webview

pull/208/head
M66B 2 years ago
parent b97fc1ae23
commit d5d7be98ee

@ -27,6 +27,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
@ -164,8 +165,11 @@ public class ActivityAMP extends ActivityBase {
private void setDarkMode() { private void setDarkMode() {
WebSettings settings = wvAmp.getSettings(); WebSettings settings = wvAmp.getSettings();
boolean dark = (Helper.isDarkTheme(this) && !force_light); boolean dark = (Helper.isDarkTheme(this) && !force_light);
if (WebViewEx.isFeatureSupported(WebViewFeature.FORCE_DARK)) if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
WebSettingsCompat.setForceDark(settings, dark ? FORCE_DARK_ON : FORCE_DARK_OFF); if (WebViewEx.isFeatureSupported(WebViewFeature.FORCE_DARK))
WebSettingsCompat.setForceDark(settings, dark ? FORCE_DARK_ON : FORCE_DARK_OFF);
} else
settings.setAlgorithmicDarkeningAllowed(dark && !force_light);
} }
private void load() { private void load() {

@ -25,6 +25,7 @@ import static androidx.webkit.WebSettingsCompat.FORCE_DARK_ON;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -85,8 +86,11 @@ public class FragmentDialogOpenFull extends FragmentDialogBase {
WebSettingsCompat.setSafeBrowsingEnabled(settings, safe_browsing); WebSettingsCompat.setSafeBrowsingEnabled(settings, safe_browsing);
boolean dark = (Helper.isDarkTheme(context) && !force_light); boolean dark = (Helper.isDarkTheme(context) && !force_light);
if (WebViewEx.isFeatureSupported(WebViewFeature.FORCE_DARK)) if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
WebSettingsCompat.setForceDark(settings, dark ? FORCE_DARK_ON : FORCE_DARK_OFF); if (WebViewEx.isFeatureSupported(WebViewFeature.FORCE_DARK))
WebSettingsCompat.setForceDark(settings, dark ? FORCE_DARK_ON : FORCE_DARK_OFF);
} else
settings.setAlgorithmicDarkeningAllowed(dark && !force_light);
settings.setLoadsImagesAutomatically(true); settings.setLoadsImagesAutomatically(true);
settings.setBlockNetworkLoads(false); settings.setBlockNetworkLoads(false);

@ -117,10 +117,15 @@ public class WebViewEx extends WebView implements DownloadListener, View.OnLongC
WebSettings settings = getSettings(); WebSettings settings = getSettings();
boolean dark = Helper.isDarkTheme(context); boolean dark = Helper.isDarkTheme(context);
boolean canForce = WebViewEx.isFeatureSupported(WebViewFeature.FORCE_DARK); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
if (canForce) boolean canForce = WebViewEx.isFeatureSupported(WebViewFeature.FORCE_DARK);
WebSettingsCompat.setForceDark(settings, dark && !force_light ? FORCE_DARK_ON : FORCE_DARK_OFF); if (canForce)
setBackgroundColor(canForce && force_light ? Color.WHITE : Color.TRANSPARENT); WebSettingsCompat.setForceDark(settings, dark && !force_light ? FORCE_DARK_ON : FORCE_DARK_OFF);
setBackgroundColor(canForce && force_light ? Color.WHITE : Color.TRANSPARENT);
} else {
settings.setAlgorithmicDarkeningAllowed(dark && !force_light);
setBackgroundColor(force_light ? Color.WHITE : Color.TRANSPARENT);
}
float fontSize = 16f /* Default */ * float fontSize = 16f /* Default */ *
(browser_zoom ? 1f : message_zoom / 100f); (browser_zoom ? 1f : message_zoom / 100f);

Loading…
Cancel
Save