| /* |
| * Copyright (C) 2012 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.webview.chromium; |
| |
| import android.util.Log; |
| import android.webkit.WebSettings.LayoutAlgorithm; |
| import android.webkit.WebSettings.PluginState; |
| import android.webkit.WebSettings.RenderPriority; |
| import android.webkit.WebSettings.TextSize; |
| import android.webkit.WebSettings.ZoomDensity; |
| |
| import org.chromium.android_webview.AwSettings; |
| |
| public class ContentSettingsAdapter extends android.webkit.WebSettings { |
| |
| private static final String TAG = ContentSettingsAdapter.class.getSimpleName(); |
| |
| private AwSettings mAwSettings; |
| |
| public ContentSettingsAdapter(AwSettings awSettings) { |
| mAwSettings = awSettings; |
| } |
| |
| AwSettings getAwSettings() { |
| return mAwSettings; |
| } |
| |
| @Override |
| @Deprecated |
| public void setNavDump(boolean enabled) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| @Deprecated |
| public boolean getNavDump() { |
| // Intentional no-op. |
| return false; |
| } |
| |
| @Override |
| public void setSupportZoom(boolean support) { |
| mAwSettings.setSupportZoom(support); |
| } |
| |
| @Override |
| public boolean supportZoom() { |
| return mAwSettings.supportZoom(); |
| } |
| |
| @Override |
| public void setBuiltInZoomControls(boolean enabled) { |
| mAwSettings.setBuiltInZoomControls(enabled); |
| } |
| |
| @Override |
| public boolean getBuiltInZoomControls() { |
| return mAwSettings.getBuiltInZoomControls(); |
| } |
| |
| @Override |
| public void setDisplayZoomControls(boolean enabled) { |
| mAwSettings.setDisplayZoomControls(enabled); |
| } |
| |
| @Override |
| public boolean getDisplayZoomControls() { |
| return mAwSettings.getDisplayZoomControls(); |
| } |
| |
| @Override |
| public void setAllowFileAccess(boolean allow) { |
| mAwSettings.setAllowFileAccess(allow); |
| } |
| |
| @Override |
| public boolean getAllowFileAccess() { |
| return mAwSettings.getAllowFileAccess(); |
| } |
| |
| @Override |
| public void setAllowContentAccess(boolean allow) { |
| mAwSettings.setAllowContentAccess(allow); |
| } |
| |
| @Override |
| public boolean getAllowContentAccess() { |
| return mAwSettings.getAllowContentAccess(); |
| } |
| |
| @Override |
| public void setLoadWithOverviewMode(boolean overview) { |
| mAwSettings.setLoadWithOverviewMode(overview); |
| } |
| |
| @Override |
| public boolean getLoadWithOverviewMode() { |
| return mAwSettings.getLoadWithOverviewMode(); |
| } |
| |
| @Override |
| public void setEnableSmoothTransition(boolean enable) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| public boolean enableSmoothTransition() { |
| // Intentional no-op. |
| return false; |
| } |
| |
| @Override |
| public void setUseWebViewBackgroundForOverscrollBackground(boolean view) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| public boolean getUseWebViewBackgroundForOverscrollBackground() { |
| // Intentional no-op. |
| return false; |
| } |
| |
| @Override |
| public void setSaveFormData(boolean save) { |
| mAwSettings.setSaveFormData(save); |
| } |
| |
| @Override |
| public boolean getSaveFormData() { |
| return mAwSettings.getSaveFormData(); |
| } |
| |
| @Override |
| public void setSavePassword(boolean save) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| public boolean getSavePassword() { |
| // Intentional no-op. |
| return false; |
| } |
| |
| @Override |
| public synchronized void setTextZoom(int textZoom) { |
| mAwSettings.setTextZoom(textZoom); |
| } |
| |
| @Override |
| public synchronized int getTextZoom() { |
| return mAwSettings.getTextZoom(); |
| } |
| |
| @Override |
| public void setDefaultZoom(ZoomDensity zoom) { |
| if (zoom != ZoomDensity.MEDIUM) { |
| Log.w(TAG, "setDefaultZoom not supported, zoom=" + zoom); |
| } |
| } |
| |
| @Override |
| public ZoomDensity getDefaultZoom() { |
| // Intentional no-op. |
| return ZoomDensity.MEDIUM; |
| } |
| |
| @Override |
| public void setLightTouchEnabled(boolean enabled) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| public boolean getLightTouchEnabled() { |
| // Intentional no-op. |
| return false; |
| } |
| |
| @Override |
| public synchronized void setUserAgent(int ua) { |
| // Minimal implementation for backwards compatibility: just supports resetting to default. |
| if (ua == 0) { |
| setUserAgentString(null); |
| } else { |
| Log.w(TAG, "setUserAgent not supported, ua=" + ua); |
| } |
| } |
| |
| @Override |
| public synchronized int getUserAgent() { |
| // Minimal implementation for backwards compatibility: just identifies default vs custom. |
| return AwSettings.getDefaultUserAgent().equals(getUserAgentString()) ? 0 : -1; |
| } |
| |
| @Override |
| public synchronized void setUseWideViewPort(boolean use) { |
| mAwSettings.setUseWideViewPort(use); |
| } |
| |
| @Override |
| public synchronized boolean getUseWideViewPort() { |
| return mAwSettings.getUseWideViewPort(); |
| } |
| |
| @Override |
| public synchronized void setSupportMultipleWindows(boolean support) { |
| mAwSettings.setSupportMultipleWindows(support); |
| } |
| |
| @Override |
| public synchronized boolean supportMultipleWindows() { |
| return mAwSettings.supportMultipleWindows(); |
| } |
| |
| @Override |
| public synchronized void setLayoutAlgorithm(LayoutAlgorithm l) { |
| // TODO: Remove the upstream enum and mapping once the new value is in the public API. |
| final AwSettings.LayoutAlgorithm[] chromiumValues = { |
| AwSettings.LayoutAlgorithm.NORMAL, |
| AwSettings.LayoutAlgorithm.SINGLE_COLUMN, |
| AwSettings.LayoutAlgorithm.NARROW_COLUMNS, |
| AwSettings.LayoutAlgorithm.TEXT_AUTOSIZING |
| }; |
| mAwSettings.setLayoutAlgorithm(chromiumValues[l.ordinal()]); |
| } |
| |
| @Override |
| public synchronized LayoutAlgorithm getLayoutAlgorithm() { |
| // TODO: Remove the upstream enum and mapping once the new value is in the public API. |
| final LayoutAlgorithm[] webViewValues = { |
| LayoutAlgorithm.NORMAL, |
| LayoutAlgorithm.SINGLE_COLUMN, |
| LayoutAlgorithm.NARROW_COLUMNS, |
| LayoutAlgorithm.TEXT_AUTOSIZING |
| }; |
| return webViewValues[mAwSettings.getLayoutAlgorithm().ordinal()]; |
| } |
| |
| @Override |
| public synchronized void setStandardFontFamily(String font) { |
| mAwSettings.setStandardFontFamily(font); |
| } |
| |
| @Override |
| public synchronized String getStandardFontFamily() { |
| return mAwSettings.getStandardFontFamily(); |
| } |
| |
| @Override |
| public synchronized void setFixedFontFamily(String font) { |
| mAwSettings.setFixedFontFamily(font); |
| } |
| |
| @Override |
| public synchronized String getFixedFontFamily() { |
| return mAwSettings.getFixedFontFamily(); |
| } |
| |
| @Override |
| public synchronized void setSansSerifFontFamily(String font) { |
| mAwSettings.setSansSerifFontFamily(font); |
| } |
| |
| @Override |
| public synchronized String getSansSerifFontFamily() { |
| return mAwSettings.getSansSerifFontFamily(); |
| } |
| |
| @Override |
| public synchronized void setSerifFontFamily(String font) { |
| mAwSettings.setSerifFontFamily(font); |
| } |
| |
| @Override |
| public synchronized String getSerifFontFamily() { |
| return mAwSettings.getSerifFontFamily(); |
| } |
| |
| @Override |
| public synchronized void setCursiveFontFamily(String font) { |
| mAwSettings.setCursiveFontFamily(font); |
| } |
| |
| @Override |
| public synchronized String getCursiveFontFamily() { |
| return mAwSettings.getCursiveFontFamily(); |
| } |
| |
| @Override |
| public synchronized void setFantasyFontFamily(String font) { |
| mAwSettings.setFantasyFontFamily(font); |
| } |
| |
| @Override |
| public synchronized String getFantasyFontFamily() { |
| return mAwSettings.getFantasyFontFamily(); |
| } |
| |
| @Override |
| public synchronized void setMinimumFontSize(int size) { |
| mAwSettings.setMinimumFontSize(size); |
| } |
| |
| @Override |
| public synchronized int getMinimumFontSize() { |
| return mAwSettings.getMinimumFontSize(); |
| } |
| |
| @Override |
| public synchronized void setMinimumLogicalFontSize(int size) { |
| mAwSettings.setMinimumLogicalFontSize(size); |
| } |
| |
| @Override |
| public synchronized int getMinimumLogicalFontSize() { |
| return mAwSettings.getMinimumLogicalFontSize(); |
| } |
| |
| @Override |
| public synchronized void setDefaultFontSize(int size) { |
| mAwSettings.setDefaultFontSize(size); |
| } |
| |
| @Override |
| public synchronized int getDefaultFontSize() { |
| return mAwSettings.getDefaultFontSize(); |
| } |
| |
| @Override |
| public synchronized void setDefaultFixedFontSize(int size) { |
| mAwSettings.setDefaultFixedFontSize(size); |
| } |
| |
| @Override |
| public synchronized int getDefaultFixedFontSize() { |
| return mAwSettings.getDefaultFixedFontSize(); |
| } |
| |
| @Override |
| public synchronized void setLoadsImagesAutomatically(boolean flag) { |
| mAwSettings.setLoadsImagesAutomatically(flag); |
| } |
| |
| @Override |
| public synchronized boolean getLoadsImagesAutomatically() { |
| return mAwSettings.getLoadsImagesAutomatically(); |
| } |
| |
| @Override |
| public synchronized void setBlockNetworkImage(boolean flag) { |
| mAwSettings.setImagesEnabled(!flag); |
| } |
| |
| @Override |
| public synchronized boolean getBlockNetworkImage() { |
| return !mAwSettings.getImagesEnabled(); |
| } |
| |
| @Override |
| public synchronized void setBlockNetworkLoads(boolean flag) { |
| mAwSettings.setBlockNetworkLoads(flag); |
| } |
| |
| @Override |
| public synchronized boolean getBlockNetworkLoads() { |
| return mAwSettings.getBlockNetworkLoads(); |
| } |
| |
| @Override |
| public synchronized void setJavaScriptEnabled(boolean flag) { |
| mAwSettings.setJavaScriptEnabled(flag); |
| } |
| |
| @Override |
| public void setAllowUniversalAccessFromFileURLs(boolean flag) { |
| mAwSettings.setAllowUniversalAccessFromFileURLs(flag); |
| } |
| |
| @Override |
| public void setAllowFileAccessFromFileURLs(boolean flag) { |
| mAwSettings.setAllowFileAccessFromFileURLs(flag); |
| } |
| |
| @Override |
| public synchronized void setPluginsEnabled(boolean flag) { |
| mAwSettings.setPluginsEnabled(flag); |
| } |
| |
| @Override |
| public synchronized void setPluginState(PluginState state) { |
| mAwSettings.setPluginState(state); |
| } |
| |
| @Override |
| public synchronized void setDatabasePath(String databasePath) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| public synchronized void setGeolocationDatabasePath(String databasePath) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| public synchronized void setAppCacheEnabled(boolean flag) { |
| mAwSettings.setAppCacheEnabled(flag); |
| } |
| |
| @Override |
| public synchronized void setAppCachePath(String appCachePath) { |
| mAwSettings.setAppCachePath(appCachePath); |
| } |
| |
| @Override |
| public synchronized void setAppCacheMaxSize(long appCacheMaxSize) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| public synchronized void setDatabaseEnabled(boolean flag) { |
| mAwSettings.setDatabaseEnabled(flag); |
| } |
| |
| @Override |
| public synchronized void setDomStorageEnabled(boolean flag) { |
| mAwSettings.setDomStorageEnabled(flag); |
| } |
| |
| @Override |
| public synchronized boolean getDomStorageEnabled() { |
| return mAwSettings.getDomStorageEnabled(); |
| } |
| |
| @Override |
| public synchronized String getDatabasePath() { |
| // Intentional no-op. |
| return ""; |
| } |
| |
| @Override |
| public synchronized boolean getDatabaseEnabled() { |
| return mAwSettings.getDatabaseEnabled(); |
| } |
| |
| @Override |
| public synchronized void setGeolocationEnabled(boolean flag) { |
| mAwSettings.setGeolocationEnabled(flag); |
| } |
| |
| @Override |
| public synchronized boolean getJavaScriptEnabled() { |
| return mAwSettings.getJavaScriptEnabled(); |
| } |
| |
| @Override |
| public boolean getAllowUniversalAccessFromFileURLs() { |
| return mAwSettings.getAllowUniversalAccessFromFileURLs(); |
| } |
| |
| @Override |
| public boolean getAllowFileAccessFromFileURLs() { |
| return mAwSettings.getAllowFileAccessFromFileURLs(); |
| } |
| |
| @Override |
| public synchronized boolean getPluginsEnabled() { |
| return mAwSettings.getPluginsEnabled(); |
| } |
| |
| @Override |
| public synchronized PluginState getPluginState() { |
| return mAwSettings.getPluginState(); |
| } |
| |
| @Override |
| public synchronized void setJavaScriptCanOpenWindowsAutomatically(boolean flag) { |
| mAwSettings.setJavaScriptCanOpenWindowsAutomatically(flag); |
| } |
| |
| @Override |
| public synchronized boolean getJavaScriptCanOpenWindowsAutomatically() { |
| return mAwSettings.getJavaScriptCanOpenWindowsAutomatically(); |
| } |
| |
| @Override |
| public synchronized void setDefaultTextEncodingName(String encoding) { |
| mAwSettings.setDefaultTextEncodingName(encoding); |
| } |
| |
| @Override |
| public synchronized String getDefaultTextEncodingName() { |
| return mAwSettings.getDefaultTextEncodingName(); |
| } |
| |
| @Override |
| public synchronized void setUserAgentString(String ua) { |
| mAwSettings.setUserAgentString(ua); |
| } |
| |
| @Override |
| public synchronized String getUserAgentString() { |
| return mAwSettings.getUserAgentString(); |
| } |
| |
| @Override |
| public void setNeedInitialFocus(boolean flag) { |
| mAwSettings.setShouldFocusFirstNode(flag); |
| } |
| |
| @Override |
| public synchronized void setRenderPriority(RenderPriority priority) { |
| // Intentional no-op. |
| } |
| |
| @Override |
| public void setCacheMode(int mode) { |
| mAwSettings.setCacheMode(mode); |
| } |
| |
| @Override |
| public int getCacheMode() { |
| return mAwSettings.getCacheMode(); |
| } |
| |
| @Override |
| public void setMediaPlaybackRequiresUserGesture(boolean require) { |
| mAwSettings.setMediaPlaybackRequiresUserGesture(require); |
| } |
| |
| @Override |
| public boolean getMediaPlaybackRequiresUserGesture() { |
| return mAwSettings.getMediaPlaybackRequiresUserGesture(); |
| } |
| } |