public boolean onKey(DialogInterface dialoginterface, int i, KeyEvent keyevent) { if (i == 82 || i == 4) { if (keyevent.getAction() == 0 && keyevent.getRepeatCount() == 0) { dialoginterface = mDialog.getWindow(); if (dialoginterface != null) { dialoginterface = dialoginterface.getDecorView(); if (dialoginterface != null) { dialoginterface = dialoginterface.getKeyDispatcherState(); if (dialoginterface != null) { dialoginterface.startTracking(keyevent, this); return true; } } } } else if (keyevent.getAction() == 1 && !keyevent.isCanceled()) { Object obj = mDialog.getWindow(); if (obj != null) { obj = ((Window) (obj)).getDecorView(); if (obj != null) { obj = ((View) (obj)).getKeyDispatcherState(); if (obj != null && ((android.view.KeyEvent.DispatcherState) (obj)).isTracking(keyevent)) { mMenu.close(true); dialoginterface.dismiss(); return true; } } } } } return mMenu.performShortcut(i, keyevent, 0); }