Fix back long press behavior

 Bug: 3486271

Change-Id: I49eb218670b4082b1fcf6daaab025ec7e0be6b8c
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 8c38e59..3c025d2 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -253,6 +253,12 @@
     }
 
     @Override
+    public boolean onKeyLongPress(int keyCode, KeyEvent event) {
+        return mController.onKeyLongPress(keyCode, event) ||
+            super.onKeyLongPress(keyCode, event);
+    }
+
+    @Override
     public boolean onKeyUp(int keyCode, KeyEvent event) {
         return mController.onKeyUp(keyCode, event) ||
             super.onKeyUp(keyCode, event);
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index da98a1c..c1f1313 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2489,15 +2489,8 @@
                 return true;
             case KeyEvent.KEYCODE_BACK:
                 if (!noModifiers) break;
-                if (event.getRepeatCount() == 0) {
-                    event.startTracking();
-                    return true;
-                } else if (mUi.showsWeb()
-                        && event.isLongPress()) {
-                    bookmarksOrHistoryPicker(true);
-                    return true;
-                }
-                break;
+                event.startTracking();
+                return true;
             case KeyEvent.KEYCODE_DPAD_LEFT:
                 if (ctrl) {
                     webView.goBack();
@@ -2562,6 +2555,18 @@
          return mUi.dispatchKey(keyCode, event);
     }
 
+    boolean onKeyLongPress(int keyCode, KeyEvent event) {
+        switch(keyCode) {
+        case KeyEvent.KEYCODE_BACK:
+            if (mUi.showsWeb()) {
+                bookmarksOrHistoryPicker(true);
+                return true;
+            }
+            break;
+        }
+        return false;
+    }
+
     boolean onKeyUp(int keyCode, KeyEvent event) {
         if (!event.hasNoModifiers()) return false;
         switch(keyCode) {