diff options
-rw-r--r-- | core/java/android/app/Activity.java | 6 | ||||
-rw-r--r-- | core/java/android/app/Dialog.java | 16 |
2 files changed, 12 insertions, 10 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index ab9a4ecd8506..23fe731701b6 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -3927,6 +3927,7 @@ public class Activity extends ContextThemeWrapper if (keyCode == KeyEvent.KEYCODE_ESCAPE && mWindow.shouldCloseOnTouchOutside()) { event.startTracking(); + finish(); return true; } @@ -4027,10 +4028,7 @@ public class Activity extends ContextThemeWrapper } if (keyCode == KeyEvent.KEYCODE_ESCAPE - && mWindow.shouldCloseOnTouchOutside() - && event.isTracking() - && !event.isCanceled()) { - finish(); + && event.isTracking()) { return true; } diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java index d0d76a4c8285..0e201384812d 100644 --- a/core/java/android/app/Dialog.java +++ b/core/java/android/app/Dialog.java @@ -672,7 +672,16 @@ public class Dialog implements DialogInterface, Window.Callback, */ @Override public boolean onKeyDown(int keyCode, @NonNull KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_ESCAPE) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + event.startTracking(); + return true; + } + if (keyCode == KeyEvent.KEYCODE_ESCAPE) { + if (mCancelable) { + cancel(); + } else { + dismiss(); + } event.startTracking(); return true; } @@ -712,11 +721,6 @@ public class Dialog implements DialogInterface, Window.Callback, } break; case KeyEvent.KEYCODE_ESCAPE: - if (mCancelable) { - cancel(); - } else { - dismiss(); - } return true; } } |