package us.costan.chrome.impl;
import org.chromium.android_webview.AwContents;
import org.chromium.android_webview.AwSettings;
import org.chromium.content.browser.ContentSettings;
import android.annotation.SuppressLint;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebSettings.RenderPriority;
import android.webkit.WebSettings.ZoomDensity;
import us.costan.chrome.ChromeSettings;
/** Proxies between ChromeSettings and ContentsSettings / WebSettings. */
public class ChromeSettingsProxy extends ChromeSettings {
/** The AwContents powering the ChromeView whose settings we're proxying. */
private AwContents awContents_;
/** ContentsSettings proxy target. */
private ContentSettings contents_;
/** WebSettings proxy target. */
private AwSettings web_;
public ChromeSettingsProxy(AwContents awContents) {
awContents_ = awContents;
contents_ = awContents_.getContentSettings();
web_ = awContents_.getSettings();
}
@Override
public void setSupportZoom(boolean support) {
web_.setSupportZoom(support);
}
@Override
public boolean supportZoom() {
return web_.supportZoom();
}
@Override
public void setMediaPlaybackRequiresUserGesture(boolean require) {
web_.setMediaPlaybackRequiresUserGesture(require);
}
@Override
public boolean getMediaPlaybackRequiresUserGesture() {
return web_.getMediaPlaybackRequiresUserGesture();
}
@Override
public void setBuiltInZoomControls(boolean enabled) {
web_.setBuiltInZoomControls(enabled);
}
@Override
public boolean getBuiltInZoomControls() {
return web_.getBuiltInZoomControls();
}
@Override
public void setDisplayZoomControls(boolean enabled) {
web_.setDisplayZoomControls(enabled);
}
@Override
public boolean getDisplayZoomControls() {
return web_.getDisplayZoomControls();
}
@Override
public void setAllowFileAccess(boolean allow) {
web_.setAllowFileAccess(allow);
}
@Override
public boolean getAllowFileAccess() {
return web_.getAllowFileAccess();
}
@Override
public void setAllowContentAccess(boolean allow) {
web_.setAllowContentAccess(allow);
}
@Override
public boolean getAllowContentAccess() {
return web_.getAllowContentAccess();
}
@Override
public void setLoadWithOverviewMode(boolean overview) {
web_.setLoadWithOverviewMode(overview);
}
@Override
public boolean getLoadWithOverviewMode() {
return web_.getLoadWithOverviewMode();
}
@Override
public void setSaveFormData(boolean save) {
web_.setSaveFormData(save);
}
@Override
public boolean getSaveFormData() {
return web_.getSaveFormData();
}
@Override
public void setSavePassword(boolean save) {
// TODO Auto-generated method stub
}
@Override
public boolean getSavePassword() {
// TODO Auto-generated method stub
return false;
}
@Override
public void setTextZoom(int textZoom) {
web_.setTextZoom(textZoom);
}
@Override
public int getTextZoom() {
return web_.getTextZoom();
}
@Override
public void setDefaultZoom(ZoomDensity zoom) {
// TODO Auto-generated method stub
}
@Override
public ZoomDensity getDefaultZoom() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setLightTouchEnabled(boolean enabled) {
// TODO Auto-generated method stub
}
@Override
public boolean getLightTouchEnabled() {
// TODO Auto-generated method stub
return false;
}
@Override
public void setUseWideViewPort(boolean use) {
web_.setUseWideViewPort(use);
}
@Override
public boolean getUseWideViewPort() {
return web_.getUseWideViewPort();
}
@Override
public void setSupportMultipleWindows(boolean support) {
web_.setSupportMultipleWindows(support);
}
@Override
public boolean supportMultipleWindows() {
return web_.supportMultipleWindows();
}
@Override
public void setLayoutAlgorithm(LayoutAlgorithm l) {
AwSettings.LayoutAlgorithm algorithm = AwSettings.LayoutAlgorithm.NORMAL;
switch(l) {
case NORMAL:
algorithm = AwSettings.LayoutAlgorithm.NORMAL;
case SINGLE_COLUMN:
algorithm = AwSettings.LayoutAlgorithm.SINGLE_COLUMN;
case NARROW_COLUMNS:
algorithm = AwSettings.LayoutAlgorithm.NARROW_COLUMNS;
}
web_.setLayoutAlgorithm(algorithm);
}
@Override
public LayoutAlgorithm getLayoutAlgorithm() {
switch (web_.getLayoutAlgorithm()) {
case NORMAL:
return LayoutAlgorithm.NORMAL;
case SINGLE_COLUMN:
return LayoutAlgorithm.SINGLE_COLUMN;
case NARROW_COLUMNS:
return LayoutAlgorithm.NARROW_COLUMNS;
case TEXT_AUTOSIZING:
return LayoutAlgorithm.NORMAL;
default:
return LayoutAlgorithm.NORMAL;
}
}
@Override
public void setStandardFontFamily(String font) {
web_.setStandardFontFamily(font);
}
@Override
public String getStandardFontFamily() {
return web_.getStandardFontFamily();
}
@Override
public void setFixedFontFamily(String font) {
web_.setFixedFontFamily(font);
}
@Override
public String getFixedFontFamily() {
return getFixedFontFamily();
}
@Override
public void setSansSerifFontFamily(String font) {
web_.setSansSerifFontFamily(font);
}
@Override
public String getSansSerifFontFamily() {
return web_.getSansSerifFontFamily();
}
@Override
public void setSerifFontFamily(String font) {
web_.setSerifFontFamily(font);
}
@Override
public String getSerifFontFamily() {
return web_.getSerifFontFamily();
}
@Override
public void setCursiveFontFamily(String font) {
web_.setCursiveFontFamily(font);
}
@Override
public String getCursiveFontFamily() {
return web_.getCursiveFontFamily();
}
@Override
public void setFantasyFontFamily(String font) {
web_.setFantasyFontFamily(font);
}
@Override
public String getFantasyFontFamily() {
return web_.getFantasyFontFamily();
}
@Override
public void setMinimumFontSize(int size) {
web_.setMinimumFontSize(size);
}
@Override
public int getMinimumFontSize() {
return web_.getMinimumFontSize();
}
@Override
public void setMinimumLogicalFontSize(int size) {
web_.setMinimumLogicalFontSize(size);
}
@Override
public int getMinimumLogicalFontSize() {
return web_.getMinimumLogicalFontSize();
}
@Override
public void setDefaultFontSize(int size) {
web_.setDefaultFontSize(size);
}
@Override
public int getDefaultFontSize() {
return web_.getDefaultFontSize();
}
@Override
public void setDefaultFixedFontSize(int size) {
web_.setDefaultFixedFontSize(size);
}
@Override
public int getDefaultFixedFontSize() {
return web_.getDefaultFixedFontSize();
}
@Override
public void setLoadsImagesAutomatically(boolean flag) {
web_.setLoadsImagesAutomatically(flag);
}
@Override
public boolean getLoadsImagesAutomatically() {
return web_.getLoadsImagesAutomatically();
}
@Override
public void setBlockNetworkImage(boolean flag) {
// TODO Auto-generated method stub
}
@Override
public boolean getBlockNetworkImage() {
// TODO Auto-generated method stub
return false;
}
@Override
public void setBlockNetworkLoads(boolean flag) {
web_.setBlockNetworkLoads(flag);
}
@Override
public boolean getBlockNetworkLoads() {
return web_.getBlockNetworkLoads();
}
@SuppressLint("SetJavaScriptEnabled")
@Override
public void setJavaScriptEnabled(boolean flag) {
web_.setJavaScriptEnabled(flag);
}
@Override
public void setAllowUniversalAccessFromFileURLs(boolean flag) {
web_.setAllowUniversalAccessFromFileURLs(flag);
}
@Override
public void setAllowFileAccessFromFileURLs(boolean flag) {
web_.setAllowFileAccessFromFileURLs(flag);
}
@Override
public void setPluginState(PluginState state) {
web_.setPluginState(state);
}
@Override
public void setDatabasePath(String databasePath) {
// TODO Auto-generated method stub
}
@Override
public void setGeolocationDatabasePath(String databasePath) {
// TODO Auto-generated method stub
}
@Override
public void setAppCacheEnabled(boolean flag) {
web_.setAppCacheEnabled(flag);
}
@Override
public void setAppCachePath(String appCachePath) {
web_.setAppCachePath(appCachePath);
}
@Override
public void setAppCacheMaxSize(long appCacheMaxSize) {
// TODO Auto-generated method stub
}
@Override
public void setDatabaseEnabled(boolean flag) {
web_.setDatabaseEnabled(flag);
}
@Override
public void setDomStorageEnabled(boolean flag) {
web_.setDomStorageEnabled(flag);
}
@Override
public boolean getDomStorageEnabled() {
return web_.getDomStorageEnabled();
}
@Override
public String getDatabasePath() {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean getDatabaseEnabled() {
return web_.getDatabaseEnabled();
}
@Override
public void setGeolocationEnabled(boolean flag) {
web_.setGeolocationEnabled(flag);
}
@Override
public boolean getJavaScriptEnabled() {
return contents_.getJavaScriptEnabled();
}
@Override
public boolean getAllowUniversalAccessFromFileURLs() {
return web_.getAllowUniversalAccessFromFileURLs();
}
@Override
public boolean getAllowFileAccessFromFileURLs() {
return web_.getAllowFileAccessFromFileURLs();
}
@Override
public PluginState getPluginState() {
return web_.getPluginState();
}
@Override
public void setJavaScriptCanOpenWindowsAutomatically(boolean flag) {
web_.setJavaScriptCanOpenWindowsAutomatically(flag);
}
@Override
public boolean getJavaScriptCanOpenWindowsAutomatically() {
return web_.getJavaScriptCanOpenWindowsAutomatically();
}
@Override
public void setDefaultTextEncodingName(String encoding) {
web_.setDefaultTextEncodingName(encoding);
}
@Override
public String getDefaultTextEncodingName() {
return web_.getDefaultTextEncodingName();
}
@Override
public void setUserAgentString(String ua) {
web_.setUserAgentString(ua);
}
@Override
public String getUserAgentString() {
return web_.getUserAgentString();
}
@Override
public void setNeedInitialFocus(boolean flag) {
// TODO Auto-generated method stub
}
@Override
public void setRenderPriority(RenderPriority priority) {
// TODO Auto-generated method stub
}
@Override
public void setCacheMode(int mode) {
web_.setCacheMode(mode);
}
@Override
public int getCacheMode() {
return web_.getCacheMode();
}
}