From 3ee06efef34b7f619b6b31b58447c64eda9fc0e7 Mon Sep 17 00:00:00 2001 From: Marcin Kosiba Date: Tue, 15 Jul 2014 17:59:51 +0100 Subject: [PATCH] Add a WebView.zoomBy API. The WebView has zoomIn/zoomOut APIs which zoom in/out by a fixed amount. This adds a more flexible API. BUG: 13399510 Change-Id: Ia505048d5b1c48f9a3ff1c4ce7129ed2f55804f8 --- api/current.txt | 1 + core/java/android/webkit/WebView.java | 17 +++++++++++++++++ core/java/android/webkit/WebViewProvider.java | 2 ++ 3 files changed, 20 insertions(+) diff --git a/api/current.txt b/api/current.txt index 2204fbb86fef6..d3a8813303d15 100644 --- a/api/current.txt +++ b/api/current.txt @@ -36700,6 +36700,7 @@ package android.webkit { method public void setWebViewClient(android.webkit.WebViewClient); method public deprecated boolean showFindDialog(java.lang.String, boolean); method public void stopLoading(); + method public boolean zoomBy(float); method public boolean zoomIn(); method public boolean zoomOut(); field public static final java.lang.String SCHEME_GEO = "geo:0,0?q="; diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index adf480334277c..9cf3e4f1eb1ac 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1944,6 +1944,23 @@ public class WebView extends AbsoluteLayout return mProvider.canZoomOut(); } + /** + * Performs a zoom operation in this WebView. + * + * @param zoomFactor the zoom factor to apply. The zoom factor will be clamped to the Webview's + * zoom limits. This value must be in the range 0.01 to 100.0 inclusive. + * + * @return false if no zoom changes, true otherwise. + */ + public boolean zoomBy(float zoomFactor) { + checkThread(); + if (zoomFactor < 0.01) + throw new IllegalArgumentException("zoomFactor must be greater than 0.01."); + if (zoomFactor > 100.0) + throw new IllegalArgumentException("zoomFactor must be less than 100."); + return mProvider.zoomBy(zoomFactor); + } + /** * Performs zoom in in this WebView. * diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java index b6fd363da6769..13cd2bdd49692 100644 --- a/core/java/android/webkit/WebViewProvider.java +++ b/core/java/android/webkit/WebViewProvider.java @@ -238,6 +238,8 @@ public interface WebViewProvider { public boolean canZoomOut(); + public boolean zoomBy(float zoomFactor); + public boolean zoomIn(); public boolean zoomOut();