Let the ActionBar handle keyboard shortcuts.

Bug: 18021345
Change-Id: I5df8711dcd020f172f798745846e7b6c05c69191
This commit is contained in:
Abodunrinwa Toki
2015-06-30 17:44:04 -07:00
parent 18709f9a00
commit a04b7add4b
3 changed files with 20 additions and 1 deletions

View File

@@ -1056,6 +1056,11 @@ public abstract class ActionBar {
return false;
}
/** @hide */
public boolean onKeyShortcut(int keyCode, KeyEvent event) {
return false;
}
/** @hide */
public boolean collapseActionView() {
return false;

View File

@@ -2469,7 +2469,9 @@ public class Activity extends ContextThemeWrapper
* @return True if the key shortcut was handled.
*/
public boolean onKeyShortcut(int keyCode, KeyEvent event) {
return false;
// Let the Action Bar have a chance at handling the shortcut.
ActionBar actionBar = getActionBar();
return (actionBar != null && actionBar.onKeyShortcut(keyCode, event));
}
/**

View File

@@ -463,6 +463,18 @@ public class ToolbarActionBar extends ActionBar {
return true;
}
@Override
public boolean onKeyShortcut(int keyCode, KeyEvent event) {
Menu menu = mDecorToolbar.getMenu();
if (menu != null) {
menu.performShortcut(keyCode, event, 0);
}
// This action bar always returns true for handling keyboard shortcuts.
// This will block the window from preparing a temporary panel to handle
// keyboard shortcuts.
return true;
}
public void addOnMenuVisibilityListener(OnMenuVisibilityListener listener) {
mMenuVisibilityListeners.add(listener);
}