summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/ViewRootImpl.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index cda58e383bf9..4cac85f74424 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -7511,7 +7511,6 @@ public final class ViewRootImpl implements ViewParent,
animationCallback.onBackCancelled();
} else {
topCallback.onBackInvoked();
- return FINISH_HANDLED;
}
break;
}
@@ -7519,14 +7518,16 @@ public final class ViewRootImpl implements ViewParent,
if (keyEvent.getAction() == KeyEvent.ACTION_UP) {
if (!keyEvent.isCanceled()) {
topCallback.onBackInvoked();
- return FINISH_HANDLED;
} else {
Log.d(mTag, "Skip onBackInvoked(), reason: keyEvent.isCanceled=true");
}
}
}
-
- return FINISH_NOT_HANDLED;
+ if (keyEvent.getAction() == KeyEvent.ACTION_UP) {
+ // forward a cancelled event so that following stages cancel their back logic
+ keyEvent.cancel();
+ }
+ return FORWARD;
}
@Override