diff options
author | benm@chromium.org <benm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-17 19:26:21 +0000 |
---|---|---|
committer | benm@chromium.org <benm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-17 19:26:21 +0000 |
commit | 3d959153b8f761a75822373e3751072aacd48e81 (patch) | |
tree | 44d9a178f0664ed852d1d518205971efcf5fb6b4 /android_webview/java/src | |
parent | e9ccf415e95e656fcc657cccbd92e8b4122ac008 (diff) | |
download | chromium_src-3d959153b8f761a75822373e3751072aacd48e81.zip chromium_src-3d959153b8f761a75822373e3751072aacd48e81.tar.gz chromium_src-3d959153b8f761a75822373e3751072aacd48e81.tar.bz2 |
[Android WebView] Reflect system font scale in WebView text rendering.
We should take into account the font scale factor the user has chosen
when drawing text in the WebView.
(Also fixes presubmit warnings in AwSettings.java)
BUG=335343
Review URL: https://codereview.chromium.org/140913003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245582 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/java/src')
-rw-r--r-- | android_webview/java/src/org/chromium/android_webview/AwSettings.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java index 6cc8e53..6ba9ac6 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java @@ -10,6 +10,7 @@ import android.os.Handler; import android.os.Message; import android.os.Process; import android.provider.Settings; +import android.util.Log; import android.webkit.WebSettings; import android.webkit.WebSettings.PluginState; @@ -87,6 +88,9 @@ public class AwSettings { private final boolean mPasswordEchoEnabled; + // Font scale factor determined by Android system setting. + private final float mFontScale; + // Not accessed by the native side. private boolean mBlockNetworkLoads; // Default depends on permission of embedding APK. private boolean mAllowContentUrlAccess = true; @@ -181,7 +185,9 @@ public class AwSettings { while (mIsUpdateWebkitPrefsMessagePending) { mAwSettingsLock.wait(); } - } catch (InterruptedException e) {} + } catch (InterruptedException e) { + Log.e(TAG, "Interrupted waiting to sync settings to native", e); + } } } } @@ -215,6 +221,8 @@ public class AwSettings { // Respect the system setting for password echoing. mPasswordEchoEnabled = Settings.System.getInt(context.getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, 1) == 1; + mFontScale = context.getResources().getConfiguration().fontScale; + mTextSizePercent *= mFontScale; mSupportLegacyQuirks = supportsLegacyQuirks; } @@ -537,8 +545,9 @@ public class AwSettings { */ public void setTextZoom(final int textZoom) { synchronized (mAwSettingsLock) { - if (mTextSizePercent != textZoom) { - mTextSizePercent = textZoom; + int scaledTextZoomPercent = (int)(textZoom * mFontScale); + if (mTextSizePercent != scaledTextZoomPercent) { + mTextSizePercent = scaledTextZoomPercent; mEventHandler.updateWebkitPreferencesLocked(); } } |