Merge "WebView: Add set/getAlgorithmicDarkening APIs"
This commit is contained in:
@@ -55228,6 +55228,7 @@ package android.webkit {
|
||||
public abstract class WebSettings {
|
||||
ctor public WebSettings();
|
||||
method @Deprecated public abstract boolean enableSmoothTransition();
|
||||
method public boolean getAllowAlgorithmicDarkening();
|
||||
method public abstract boolean getAllowContentAccess();
|
||||
method public abstract boolean getAllowFileAccess();
|
||||
method public abstract boolean getAllowFileAccessFromFileURLs();
|
||||
@@ -55249,7 +55250,7 @@ package android.webkit {
|
||||
method public abstract boolean getDomStorageEnabled();
|
||||
method public abstract String getFantasyFontFamily();
|
||||
method public abstract String getFixedFontFamily();
|
||||
method public int getForceDark();
|
||||
method @Deprecated public int getForceDark();
|
||||
method public abstract boolean getJavaScriptCanOpenWindowsAutomatically();
|
||||
method public abstract boolean getJavaScriptEnabled();
|
||||
method public abstract android.webkit.WebSettings.LayoutAlgorithm getLayoutAlgorithm();
|
||||
@@ -55272,6 +55273,7 @@ package android.webkit {
|
||||
method public abstract int getTextZoom();
|
||||
method public abstract boolean getUseWideViewPort();
|
||||
method public abstract String getUserAgentString();
|
||||
method public void setAllowAlgorithmicDarkening(boolean);
|
||||
method public abstract void setAllowContentAccess(boolean);
|
||||
method public abstract void setAllowFileAccess(boolean);
|
||||
method @Deprecated public abstract void setAllowFileAccessFromFileURLs(boolean);
|
||||
@@ -55293,7 +55295,7 @@ package android.webkit {
|
||||
method @Deprecated public abstract void setEnableSmoothTransition(boolean);
|
||||
method public abstract void setFantasyFontFamily(String);
|
||||
method public abstract void setFixedFontFamily(String);
|
||||
method public void setForceDark(int);
|
||||
method @Deprecated public void setForceDark(int);
|
||||
method @Deprecated public abstract void setGeolocationDatabasePath(String);
|
||||
method public abstract void setGeolocationEnabled(boolean);
|
||||
method public abstract void setJavaScriptCanOpenWindowsAutomatically(boolean);
|
||||
@@ -55324,9 +55326,9 @@ package android.webkit {
|
||||
method public abstract void setUserAgentString(@Nullable String);
|
||||
method public abstract boolean supportMultipleWindows();
|
||||
method public abstract boolean supportZoom();
|
||||
field public static final int FORCE_DARK_AUTO = 1; // 0x1
|
||||
field public static final int FORCE_DARK_OFF = 0; // 0x0
|
||||
field public static final int FORCE_DARK_ON = 2; // 0x2
|
||||
field @Deprecated public static final int FORCE_DARK_AUTO = 1; // 0x1
|
||||
field @Deprecated public static final int FORCE_DARK_OFF = 0; // 0x0
|
||||
field @Deprecated public static final int FORCE_DARK_ON = 2; // 0x2
|
||||
field public static final int LOAD_CACHE_ELSE_NETWORK = 1; // 0x1
|
||||
field public static final int LOAD_CACHE_ONLY = 3; // 0x3
|
||||
field public static final int LOAD_DEFAULT = -1; // 0xffffffff
|
||||
|
||||
@@ -15749,6 +15749,7 @@ package android.webkit {
|
||||
method @Deprecated public abstract void setUseWebViewBackgroundForOverscrollBackground(boolean);
|
||||
method @Deprecated public abstract void setUserAgent(int);
|
||||
method public abstract void setVideoOverlayForEmbeddedEncryptedVideoEnabled(boolean);
|
||||
field public static final long ENABLE_SIMPLIFIED_DARK_MODE = 214741472L; // 0xcccb1e0L
|
||||
}
|
||||
|
||||
public class WebStorage {
|
||||
|
||||
@@ -19,6 +19,8 @@ package android.webkit;
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.SystemApi;
|
||||
import android.compat.annotation.ChangeId;
|
||||
import android.compat.annotation.EnabledSince;
|
||||
import android.compat.annotation.UnsupportedAppUsage;
|
||||
import android.content.Context;
|
||||
|
||||
@@ -134,6 +136,20 @@ public abstract class WebSettings {
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface CacheMode {}
|
||||
|
||||
/**
|
||||
* Enable web content to apply light or dark style according to the app's theme
|
||||
* and WebView to attempt to darken web content by algorithmic darkening when
|
||||
* appropriate.
|
||||
*
|
||||
* Refer to {@link #setAllowAlgorithmicDarkening} for detail.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@ChangeId
|
||||
@EnabledSince(targetSdkVersion = android.os.Build.VERSION_CODES.TIRAMISU)
|
||||
@SystemApi
|
||||
public static final long ENABLE_SIMPLIFIED_DARK_MODE = 214741472L;
|
||||
|
||||
/**
|
||||
* Default cache usage mode. If the navigation type doesn't impose any
|
||||
* specific behavior, use cached resources when they are available
|
||||
@@ -239,6 +255,7 @@ public abstract class WebSettings {
|
||||
* automatically darkened.
|
||||
*
|
||||
* @see #setForceDark
|
||||
* @deprecated refer to {@link #setForceDark}
|
||||
*/
|
||||
public static final int FORCE_DARK_OFF = 0;
|
||||
|
||||
@@ -250,6 +267,7 @@ public abstract class WebSettings {
|
||||
* be inverted.
|
||||
*
|
||||
* @see #setForceDark
|
||||
* @deprecated refer to {@link #setForceDark}
|
||||
*/
|
||||
public static final int FORCE_DARK_AUTO = 1;
|
||||
|
||||
@@ -258,6 +276,7 @@ public abstract class WebSettings {
|
||||
* as to emulate a dark theme.
|
||||
*
|
||||
* @see #setForceDark
|
||||
* @deprecated refer to {@link #setForceDark}
|
||||
*/
|
||||
public static final int FORCE_DARK_ON = 2;
|
||||
|
||||
@@ -1533,6 +1552,13 @@ public abstract class WebSettings {
|
||||
*
|
||||
* @param forceDark the force dark mode to set.
|
||||
* @see #getForceDark
|
||||
* @deprecated The "force dark" model previously implemented by WebView was complex
|
||||
* and didn't interoperate well with current Web standards for
|
||||
* prefers-color-scheme and color-scheme. In apps with
|
||||
* {@code targetSdkVersion} ≥ {@link android.os.Build.VERSION_CODES#TIRAMISU}
|
||||
* this API is a no-op and WebView will always use the dark style defined by web content
|
||||
* authors if the app's theme is dark. To customize the behavior, refer to
|
||||
* {@link #setAllowAlgorithmicDarkening}.
|
||||
*/
|
||||
public void setForceDark(@ForceDark int forceDark) {
|
||||
// Stub implementation to satisfy Roboelectrc shadows that don't override this yet.
|
||||
@@ -1544,12 +1570,56 @@ public abstract class WebSettings {
|
||||
*
|
||||
* @return the currently set force dark mode.
|
||||
* @see #setForceDark
|
||||
* @deprecated refer to {@link #setForceDark}.
|
||||
*/
|
||||
public @ForceDark int getForceDark() {
|
||||
// Stub implementation to satisfy Roboelectrc shadows that don't override this yet.
|
||||
return FORCE_DARK_AUTO;
|
||||
}
|
||||
|
||||
/**
|
||||
* Control whether algorithmic darkening is allowed.
|
||||
*
|
||||
* <p class="note">
|
||||
* <b>Note:</b> This API and the behaviour described only apply to apps with
|
||||
* {@code targetSdkVersion} ≥ {@link android.os.Build.VERSION_CODES#TIRAMISU}.
|
||||
*
|
||||
* <p>
|
||||
* WebView always sets the media query {@code prefers-color-scheme} according to the app's
|
||||
* theme attribute {@link android.R.styleable#Theme_isLightTheme isLightTheme}, i.e.
|
||||
* {@code prefers-color-scheme} is {@code light} if isLightTheme is true or not specified,
|
||||
* otherwise it is {@code dark}. This means that the web content's light or dark style will
|
||||
* be applied automatically to match the app's theme if the content supports it.
|
||||
*
|
||||
* <p>
|
||||
* Algorithmic darkening is disallowed by default.
|
||||
* <p>
|
||||
* If the app's theme is dark and it allows algorithmic darkening, WebView will attempt to
|
||||
* darken web content using an algorithm, if the content doesn't define its own dark styles
|
||||
* and doesn't explicitly disable darkening.
|
||||
*
|
||||
* <p>
|
||||
* If Android is applying Force Dark to WebView then WebView will ignore the value of
|
||||
* this setting and behave as if it were set to true.
|
||||
*
|
||||
* @param allow allow algorithmic darkening or not.
|
||||
*/
|
||||
public void setAllowAlgorithmicDarkening(boolean allow) {
|
||||
// Stub implementation to satisfy Roboelectrc shadows that don't override this yet.
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if algorithmic darkening is allowed or not for this WebView.
|
||||
* The default is false.
|
||||
*
|
||||
* @return if the algorithmic darkening is allowed or not.
|
||||
* @see #setAllowAlgorithmicDarkening
|
||||
*/
|
||||
public boolean getAllowAlgorithmicDarkening() {
|
||||
// Stub implementation to satisfy Roboelectrc shadows that don't override this yet.
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user