Commit 35476d64 authored by Alex Chu's avatar Alex Chu Committed by Commit Bot

Remove references to WebSettings.LayoutAlgorithm

from AwSettings.

Change-Id: Id4092f3588713e76419c87afa5dabec0168e5bd5
Reviewed-on: https://chromium-review.googlesource.com/651748
Commit-Queue: Alex Chu <alexchu@google.com>
Reviewed-by: default avatarBo <boliu@chromium.org>
Reviewed-by: default avatarRichard Coles <torne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501401}
parent f1c3ca49
......@@ -4,6 +4,8 @@
package com.android.webview.chromium;
import android.annotation.TargetApi;
import android.os.Build;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebSettings.RenderPriority;
......@@ -19,6 +21,7 @@ import org.chromium.base.annotations.SuppressFBWarnings;
*/
@SuppressWarnings("deprecation")
@SuppressFBWarnings("CHROMIUM_SYNCHRONIZED_METHOD")
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class ContentSettingsAdapter extends android.webkit.WebSettings {
private AwSettings mAwSettings;
......@@ -235,12 +238,39 @@ public class ContentSettingsAdapter extends android.webkit.WebSettings {
@Override
public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) {
mAwSettings.setLayoutAlgorithm(l);
switch (l) {
case NORMAL:
mAwSettings.setLayoutAlgorithm(AwSettings.LAYOUT_ALGORITHM_NORMAL);
return;
case SINGLE_COLUMN:
mAwSettings.setLayoutAlgorithm(AwSettings.LAYOUT_ALGORITHM_SINGLE_COLUMN);
return;
case NARROW_COLUMNS:
mAwSettings.setLayoutAlgorithm(AwSettings.LAYOUT_ALGORITHM_NARROW_COLUMNS);
return;
case TEXT_AUTOSIZING:
mAwSettings.setLayoutAlgorithm(AwSettings.LAYOUT_ALGORITHM_TEXT_AUTOSIZING);
return;
default:
throw new IllegalArgumentException("Unsupported value: " + l);
}
}
@Override
public synchronized LayoutAlgorithm getLayoutAlgorithm() {
return mAwSettings.getLayoutAlgorithm();
int value = mAwSettings.getLayoutAlgorithm();
switch (value) {
case AwSettings.LAYOUT_ALGORITHM_NORMAL:
return LayoutAlgorithm.NORMAL;
case AwSettings.LAYOUT_ALGORITHM_SINGLE_COLUMN:
return LayoutAlgorithm.SINGLE_COLUMN;
case AwSettings.LAYOUT_ALGORITHM_NARROW_COLUMNS:
return LayoutAlgorithm.NARROW_COLUMNS;
case AwSettings.LAYOUT_ALGORITHM_TEXT_AUTOSIZING:
return LayoutAlgorithm.TEXT_AUTOSIZING;
default:
throw new IllegalArgumentException("Unsupported value: " + value);
}
}
@Override
......
......@@ -4,16 +4,15 @@
package org.chromium.android_webview;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Handler;
import android.os.Message;
import android.os.Process;
import android.provider.Settings;
import android.support.annotation.IntDef;
import android.util.Log;
import android.webkit.WebSettings;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebSettings.PluginState;
import org.chromium.base.BuildInfo;
......@@ -23,6 +22,9 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.content_public.browser.WebContents;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Stores Android WebView specific settings that does not need to be synced to WebKit.
*
......@@ -36,6 +38,21 @@ public class AwSettings {
private static final String TAG = "AwSettings";
/* See {@link android.webkit.WebSettings}. */
@Retention(RetentionPolicy.SOURCE)
@IntDef({LAYOUT_ALGORITHM_NORMAL,
/* See {@link android.webkit.WebSettings}. */
LAYOUT_ALGORITHM_SINGLE_COLUMN,
/* See {@link android.webkit.WebSettings}. */
LAYOUT_ALGORITHM_NARROW_COLUMNS, LAYOUT_ALGORITHM_TEXT_AUTOSIZING})
public @interface LayoutAlgorithm {}
public static final int LAYOUT_ALGORITHM_NORMAL = 0;
/* See {@link android.webkit.WebSettings}. */
public static final int LAYOUT_ALGORITHM_SINGLE_COLUMN = 1;
/* See {@link android.webkit.WebSettings}. */
public static final int LAYOUT_ALGORITHM_NARROW_COLUMNS = 2;
public static final int LAYOUT_ALGORITHM_TEXT_AUTOSIZING = 3;
// This class must be created on the UI thread. Afterwards, it can be
// used from any thread. Internally, the class uses a message queue
// to call native code on the UI thread only.
......@@ -49,7 +66,8 @@ public class AwSettings {
// Lock to protect all settings.
private final Object mAwSettingsLock = new Object();
private LayoutAlgorithm mLayoutAlgorithm = LayoutAlgorithm.NARROW_COLUMNS;
@LayoutAlgorithm
private int mLayoutAlgorithm = LAYOUT_ALGORITHM_NARROW_COLUMNS;
private int mTextSizePercent = 100;
private String mStandardFontFamily = "sans-serif";
private String mFixedFontFamily = "monospace";
......@@ -1181,7 +1199,7 @@ public class AwSettings {
/**
* See {@link android.webkit.WebSettings#setLayoutAlgorithm}.
*/
public void setLayoutAlgorithm(LayoutAlgorithm l) {
public void setLayoutAlgorithm(@LayoutAlgorithm int l) {
if (TRACE) Log.d(LOGTAG, "setLayoutAlgorithm=" + l);
synchronized (mAwSettingsLock) {
if (mLayoutAlgorithm != l) {
......@@ -1194,7 +1212,8 @@ public class AwSettings {
/**
* See {@link android.webkit.WebSettings#getLayoutAlgorithm}.
*/
public LayoutAlgorithm getLayoutAlgorithm() {
@LayoutAlgorithm
public int getLayoutAlgorithm() {
synchronized (mAwSettingsLock) {
return mLayoutAlgorithm;
}
......@@ -1205,11 +1224,10 @@ public class AwSettings {
*
* @return true if Text Auto-sizing layout algorithm is enabled
*/
@SuppressLint("NewApi") // WebSettings.LayoutAlgorithm#TEXT_AUTOSIZING requires API level 19.
@CalledByNative
private boolean getTextAutosizingEnabledLocked() {
assert Thread.holdsLock(mAwSettingsLock);
return mLayoutAlgorithm == LayoutAlgorithm.TEXT_AUTOSIZING;
return mLayoutAlgorithm == LAYOUT_ALGORITHM_TEXT_AUTOSIZING;
}
/**
......
......@@ -20,7 +20,6 @@ import android.view.WindowManager;
import android.webkit.JavascriptInterface;
import android.webkit.ValueCallback;
import android.webkit.WebSettings;
import android.webkit.WebSettings.LayoutAlgorithm;
import org.junit.After;
import org.junit.Assert;
......@@ -30,6 +29,7 @@ import org.junit.runner.RunWith;
import org.chromium.android_webview.AwContents;
import org.chromium.android_webview.AwSettings;
import org.chromium.android_webview.AwSettings.LayoutAlgorithm;
import org.chromium.android_webview.AwWebResourceResponse;
import org.chromium.android_webview.test.AwTestBase.TestDependencyFactory;
import org.chromium.android_webview.test.TestAwContentsClient.DoUpdateVisitedHistoryHelper;
......@@ -994,9 +994,7 @@ public class AwSettingsTest {
private float mOldFontSize;
}
class AwSettingsLayoutAlgorithmTestHelper extends
AwSettingsTextAutosizingTestHelper<LayoutAlgorithm> {
class AwSettingsLayoutAlgorithmTestHelper extends AwSettingsTextAutosizingTestHelper<Integer> {
AwSettingsLayoutAlgorithmTestHelper(
AwTestContainerView containerView,
TestAwContentsClient contentViewClient) throws Throwable {
......@@ -1005,31 +1003,34 @@ public class AwSettingsTest {
mAwSettings.setUseWideViewPort(true);
}
@LayoutAlgorithm
@Override
protected LayoutAlgorithm getAlteredValue() {
return LayoutAlgorithm.TEXT_AUTOSIZING;
protected Integer getAlteredValue() {
return AwSettings.LAYOUT_ALGORITHM_TEXT_AUTOSIZING;
}
@LayoutAlgorithm
@Override
protected LayoutAlgorithm getInitialValue() {
return LayoutAlgorithm.NARROW_COLUMNS;
protected Integer getInitialValue() {
return AwSettings.LAYOUT_ALGORITHM_NARROW_COLUMNS;
}
@LayoutAlgorithm
@Override
protected LayoutAlgorithm getCurrentValue() {
protected Integer getCurrentValue() {
return mAwSettings.getLayoutAlgorithm();
}
@Override
protected void setCurrentValue(LayoutAlgorithm value) throws Throwable {
protected void setCurrentValue(@LayoutAlgorithm Integer value) throws Throwable {
super.setCurrentValue(value);
mAwSettings.setLayoutAlgorithm(value);
}
@Override
protected void doEnsureSettingHasValue(LayoutAlgorithm value) throws Throwable {
protected void doEnsureSettingHasValue(@LayoutAlgorithm Integer value) throws Throwable {
final float actualFontSize = getActualFontSize();
if (value == LayoutAlgorithm.TEXT_AUTOSIZING) {
if (value == AwSettings.LAYOUT_ALGORITHM_TEXT_AUTOSIZING) {
Assert.assertFalse("Actual font size: " + actualFontSize,
actualFontSize == PARAGRAPH_FONT_SIZE);
} else {
......@@ -1094,7 +1095,7 @@ public class AwSettingsTest {
AwTestContainerView containerView,
TestAwContentsClient contentViewClient) throws Throwable {
super(containerView, contentViewClient);
mAwSettings.setLayoutAlgorithm(LayoutAlgorithm.TEXT_AUTOSIZING);
mAwSettings.setLayoutAlgorithm(AwSettings.LAYOUT_ALGORITHM_TEXT_AUTOSIZING);
// The initial font size can be adjusted by font autosizer depending on the page's
// viewport width.
mInitialActualFontSize = getActualFontSize();
......
......@@ -180,7 +180,7 @@ public class AwShellActivity extends Activity {
awSettings.setDisplayZoomControls(false);
awSettings.setUseWideViewPort(true);
awSettings.setLoadWithOverviewMode(true);
awSettings.setLayoutAlgorithm(android.webkit.WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING);
awSettings.setLayoutAlgorithm(AwSettings.LAYOUT_ALGORITHM_TEXT_AUTOSIZING);
testContainerView.initialize(new AwContents(mBrowserContext, testContainerView,
testContainerView.getContext(), testContainerView.getInternalAccessDelegate(),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment