Expose canZoomIn and canZoomOut for WebView.
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 1cc5ab7..573a4e7 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -2248,7 +2248,7 @@
if (mDrawHistory) {
return mHistoryWidth;
} else if (mHorizontalScrollBarMode == SCROLLBAR_ALWAYSOFF
- && mZoomManager.isZoomedOut()) {
+ && !mZoomManager.canZoomOut()) {
// only honor the scrollbar mode when it is at minimum zoom level
return computeHorizontalScrollExtent();
} else {
@@ -2262,7 +2262,7 @@
if (mDrawHistory) {
return mHistoryHeight;
} else if (mVerticalScrollBarMode == SCROLLBAR_ALWAYSOFF
- && mZoomManager.isZoomedOut()) {
+ && !mZoomManager.canZoomOut()) {
// only honor the scrollbar mode when it is at minimum zoom level
return computeVerticalScrollExtent();
} else {
@@ -4493,7 +4493,7 @@
mAnchorY = viewToContentY((int) mZoomManager.mZoomCenterY + mScrollY);
// don't reflow when zoom in; when zoom out, do reflow if the
// new scale is almost minimum scale;
- boolean reflowNow = mZoomManager.isZoomedOut()
+ boolean reflowNow = !mZoomManager.canZoomOut()
|| (mZoomManager.mActualScale <= 0.8 * mZoomManager.mTextWrapScale);
// force zoom after mPreviewZoomOnly is set to false so that the
// new view size will be passed to the WebKit
@@ -5557,6 +5557,20 @@
}
/**
+ * @return TRUE if the WebView can be zoomed in.
+ */
+ public boolean canZoomIn() {
+ return mZoomManager.canZoomIn();
+ }
+
+ /**
+ * @return TRUE if the WebView can be zoomed out.
+ */
+ public boolean canZoomOut() {
+ return mZoomManager.canZoomOut();
+ }
+
+ /**
* Perform zoom in in the webview
* @return TRUE if zoom in succeeds. FALSE if no zoom changes.
*/
diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java
index 4028004..f39e178 100644
--- a/core/java/android/webkit/ZoomManager.java
+++ b/core/java/android/webkit/ZoomManager.java
@@ -138,8 +138,12 @@
return exceedsMinScaleIncrement(scale, mActualScale);
}
- public boolean isZoomedOut() {
- return mActualScale - mMinZoomScale <= MINIMUM_SCALE_INCREMENT;
+ public boolean canZoomIn() {
+ return mMaxZoomScale - mActualScale > MINIMUM_SCALE_INCREMENT;
+ }
+
+ public boolean canZoomOut() {
+ return mActualScale - mMinZoomScale > MINIMUM_SCALE_INCREMENT;
}
public boolean zoomIn() {