From 720123718e924914176f3baf143d46d14fefa3ea Mon Sep 17 00:00:00 2001 From: Jelle Kralt Date: Thu, 11 Sep 2014 10:46:47 +0200 Subject: [PATCH] Added option to disable/enable zoom controls This change supports Android and Amazon Fire OS --- src/amazon/InAppBrowser.java | 18 +++++++++++++++++- src/android/InAppBrowser.java | 18 +++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/amazon/InAppBrowser.java b/src/amazon/InAppBrowser.java index 25f593c..5c6ed76 100644 --- a/src/amazon/InAppBrowser.java +++ b/src/amazon/InAppBrowser.java @@ -78,6 +78,7 @@ public class InAppBrowser extends CordovaPlugin { private static final String EXIT_EVENT = "exit"; private static final String LOCATION = "location"; private static final String HIDDEN = "hidden"; + private static final String ZOOM = "zoom"; private static final String LOAD_START_EVENT = "loadstart"; private static final String LOAD_STOP_EVENT = "loadstop"; private static final String LOAD_ERROR_EVENT = "loaderror"; @@ -90,6 +91,7 @@ public class InAppBrowser extends CordovaPlugin { private EditText edittext; private CallbackContext callbackContext; private boolean showLocationBar = true; + private boolean showZoomControls = true; private boolean openWindowHidden = false; private String buttonLabel = "Done"; private boolean clearAllCache= false; @@ -422,6 +424,15 @@ public class InAppBrowser extends CordovaPlugin { return this.showLocationBar; } + /** + * Should we show the zoom controls? + * + * @return boolean + */ + private boolean getShowZoomControls() { + return this.showZoomControls; + } + private InAppBrowser getInAppBrowser(){ return this; } @@ -435,12 +446,17 @@ public class InAppBrowser extends CordovaPlugin { public String showWebPage(final String url, HashMap features) { // Determine if we should hide the location bar. showLocationBar = true; + showZoomControls = true; openWindowHidden = false; if (features != null) { Boolean show = features.get(LOCATION); if (show != null) { showLocationBar = show.booleanValue(); } + Boolean zoom = features.get(ZOOM); + if (zoom != null) { + showZoomControls = zoom.booleanValue(); + } Boolean hidden = features.get(HIDDEN); if (hidden != null) { openWindowHidden = hidden.booleanValue(); @@ -614,7 +630,7 @@ public class InAppBrowser extends CordovaPlugin { AmazonWebSettings settings = inAppWebView.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); - settings.setBuiltInZoomControls(true); + settings.setBuiltInZoomControls(getShowZoomControls()); settings.setPluginState(com.amazon.android.webkit.AmazonWebSettings.PluginState.ON); //Toggle whether this is enabled or not! diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java index f97e0b2..2f07db0 100644 --- a/src/android/InAppBrowser.java +++ b/src/android/InAppBrowser.java @@ -71,6 +71,7 @@ public class InAppBrowser extends CordovaPlugin { // private static final String BLANK = "_blank"; private static final String EXIT_EVENT = "exit"; private static final String LOCATION = "location"; + private static final String ZOOM = "zoom"; private static final String HIDDEN = "hidden"; private static final String LOAD_START_EVENT = "loadstart"; private static final String LOAD_STOP_EVENT = "loadstop"; @@ -84,6 +85,7 @@ public class InAppBrowser extends CordovaPlugin { private EditText edittext; private CallbackContext callbackContext; private boolean showLocationBar = true; + private boolean showZoomControls = true; private boolean openWindowHidden = false; private String buttonLabel = "Done"; private boolean clearAllCache= false; @@ -408,6 +410,15 @@ public class InAppBrowser extends CordovaPlugin { return this.showLocationBar; } + /** + * Should we show the zoom controls? + * + * @return boolean + */ + private boolean getShowZoomControls() { + return this.showZoomControls; + } + private InAppBrowser getInAppBrowser(){ return this; } @@ -421,12 +432,17 @@ public class InAppBrowser extends CordovaPlugin { public String showWebPage(final String url, HashMap features) { // Determine if we should hide the location bar. showLocationBar = true; + showZoomControls = true; openWindowHidden = false; if (features != null) { Boolean show = features.get(LOCATION); if (show != null) { showLocationBar = show.booleanValue(); } + Boolean zoom = features.get(ZOOM); + if (zoom != null) { + showZoomControls = zoom.booleanValue(); + } Boolean hidden = features.get(HIDDEN); if (hidden != null) { openWindowHidden = hidden.booleanValue(); @@ -595,7 +611,7 @@ public class InAppBrowser extends CordovaPlugin { WebSettings settings = inAppWebView.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); - settings.setBuiltInZoomControls(true); + settings.setBuiltInZoomControls(getShowZoomControls()); settings.setPluginState(android.webkit.WebSettings.PluginState.ON); //Toggle whether this is enabled or not!