summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Josep del Río <joseprio@google.com> 2024-02-14 11:36:44 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-02-14 11:36:44 +0000
commita892df451e0fc6fed0f1a6073f2fa8c5e7dff0b4 (patch)
treee515eeda3f8628c5e5c666ca1c7712c7ed4359f3
parent394de1197cd7d752c82407ea22ef394443d5cc5b (diff)
parent4601313ad7d64f15a7be76af5b3d44b59e26e410 (diff)
Merge "Close dialogs and activity on Escape down" into main
-rw-r--r--core/java/android/app/Activity.java6
-rw-r--r--core/java/android/app/Dialog.java16
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;
}
}