new iteration of the navigation UI
use live webviews
Change-Id: Ie787c76470e445548d358374f83f33a1b0b0b5cf
diff --git a/src/com/android/browser/BrowserWebView.java b/src/com/android/browser/BrowserWebView.java
index a1d8c2d..6cdc063 100644
--- a/src/com/android/browser/BrowserWebView.java
+++ b/src/com/android/browser/BrowserWebView.java
@@ -22,6 +22,7 @@
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewConfiguration;
import android.webkit.WebView;
import java.util.Map;
@@ -38,6 +39,10 @@
private TitleBarBase mTitleBar;
private int mCaptureSize;
private Bitmap mCapture;
+ private boolean mNavMode;
+ private boolean mTracking;
+ private int mSlop;
+ float mDownX, mDownY;
/**
* @param context
@@ -79,11 +84,17 @@
}
private void init() {
+ mNavMode = false;
+ mSlop = ViewConfiguration.get(mContext).getScaledTouchSlop();
mCaptureSize = mContext.getResources().getDimensionPixelSize(R.dimen.tab_capture_size);
mCapture = Bitmap.createBitmap(mCaptureSize, mCaptureSize,
Bitmap.Config.RGB_565);
}
+ protected void setNavMode(boolean enabled) {
+ mNavMode = enabled;
+ }
+
@Override
protected int getTitleHeight() {
return (mTitleBar != null) ? mTitleBar.getEmbeddedHeight() : 0;
@@ -116,13 +127,36 @@
@Override
public boolean onTouchEvent(MotionEvent evt) {
- if (MotionEvent.ACTION_DOWN == evt.getActionMasked()) {
- mUserInitiated = true;
- } else if (MotionEvent.ACTION_UP == evt.getActionMasked()
- || (MotionEvent.ACTION_CANCEL == evt.getActionMasked())) {
- mUserInitiated = false;
+ if (mNavMode) {
+ if (MotionEvent.ACTION_DOWN == evt.getActionMasked()) {
+ mDownX = evt.getX();
+ mDownY = evt.getY();
+ mTracking = true;
+ return true;
+ } else if (mTracking && MotionEvent.ACTION_MOVE == evt.getActionMasked()) {
+ if (mSlop < Math.abs(evt.getX() - mDownX)
+ || mSlop < Math.abs(evt.getY() - mDownY)) {
+ mTracking = false;
+ }
+ return mTracking;
+ } else if (mTracking && MotionEvent.ACTION_UP == evt.getActionMasked()) {
+ performClick();
+ mTracking = false;
+ return true;
+ } else if (mTracking && MotionEvent.ACTION_CANCEL == evt.getActionMasked()) {
+ mTracking = false;
+ return true;
+ }
+ return super.onTouchEvent(evt);
+ } else {
+ if (MotionEvent.ACTION_DOWN == evt.getActionMasked()) {
+ mUserInitiated = true;
+ } else if (MotionEvent.ACTION_UP == evt.getActionMasked()
+ || (MotionEvent.ACTION_CANCEL == evt.getActionMasked())) {
+ mUserInitiated = false;
+ }
+ return super.onTouchEvent(evt);
}
- return super.onTouchEvent(evt);
}
@Override