// Copyright (c) 2014 mogoweb. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /* * 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.mogoweb.chrome.impl; import org.chromium.android_webview.AwSettings; import android.util.Log; public class ContentSettingsAdapter extends com.mogoweb.chrome.WebSettings { private static final String TAG = ContentSettingsAdapter.class.getSimpleName(); private AwSettings mAwSettings; public ContentSettingsAdapter(AwSettings awSettings) { mAwSettings = awSettings; } AwSettings getAwSettings() { return mAwSettings; } @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 }; 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 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 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(); } }