Commit 148c09b8 authored by Daniel Park's avatar Daniel Park Committed by Commit Bot

[Long Back Press for History] Detect back button long press

Bug: 800033
Change-Id: I53c2b05a204f30b187efa4b703525c76a5a9dfb9
Reviewed-on: https://chromium-review.googlesource.com/940331
Commit-Queue: Daniel Park <danielpark@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547765}
parent 8092f39d
......@@ -29,6 +29,7 @@ import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
......@@ -278,6 +279,8 @@ public class ChromeTabbedActivity
private AppIndexingUtil mAppIndexingUtil;
private Runnable mShowHistoryRunnable;
/**
* Whether an initial tab needs to be created during UI initialization.
*/
......@@ -2031,6 +2034,13 @@ public class ChromeTabbedActivity
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Detecting a long press of the back button via onLongPress is broken in Android N.
// To work around this, use a postDelayed, which is supported in all versions.
if (keyCode == KeyEvent.KEYCODE_BACK && !isTablet()) {
if (mShowHistoryRunnable == null) mShowHistoryRunnable = this ::showFullHistoryForTab;
mHandler.postDelayed(mShowHistoryRunnable, ViewConfiguration.getLongPressTimeout());
return super.onKeyDown(keyCode, event);
}
if (!mUIInitialized) {
return super.onKeyDown(keyCode, event);
}
......@@ -2040,6 +2050,16 @@ public class ChromeTabbedActivity
|| super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && !isTablet()) {
mHandler.removeCallbacks(mShowHistoryRunnable);
}
return super.onKeyUp(keyCode, event);
}
private void showFullHistoryForTab() {}
@Override
public void onProvideKeyboardShortcuts(List<KeyboardShortcutGroup> data, Menu menu,
int deviceId) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment