summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdnan Begovic <adnan@cyngn.com>2015-06-16 14:34:58 -0700
committerAdnan Begovic <adnan@cyngn.com>2015-06-17 11:58:37 -0700
commitc0cad1ef3b740b62e563c4c0a375ec4b6bb38fc5 (patch)
tree3e3ec445d603d5c2bf1b82da17e277735dcb5389
parent40c053f56819ceaaa2dafeddc8f2cb5d6d277a8b (diff)
downloadpackages_apps_InCallUI-c0cad1ef3b740b62e563c4c0a375ec4b6bb38fc5.tar.gz
packages_apps_InCallUI-c0cad1ef3b740b62e563c4c0a375ec4b6bb38fc5.tar.bz2
packages_apps_InCallUI-c0cad1ef3b740b62e563c4c0a375ec4b6bb38fc5.zip
InCallUi: Mitigate redial/recent call double tap state loss.
In some instances, double tapping the redial/recent button forces the device into a state where a call can never be made again. Mitigate this by forcing InCallActivity to be reset as well as clearing account selection on tear down. Change-Id: Ibc07175ed802bc29bcbe584d5b7fc7a7f3a0cf8a
-rw-r--r--src/com/android/incallui/InCallPresenter.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/com/android/incallui/InCallPresenter.java b/src/com/android/incallui/InCallPresenter.java
index 2ffba4fa..7ca624a9 100644
--- a/src/com/android/incallui/InCallPresenter.java
+++ b/src/com/android/incallui/InCallPresenter.java
@@ -393,6 +393,9 @@ public class InCallPresenter implements CallList.Listener,
updateListeners = true;
mInCallActivity = null;
+ // Cancel any pending dialogs
+ cancelAccountSelection();
+
// We attempt cleanup for the destroy case but only after we recalculate the state
// to see if we need to come back up or stay shut down. This is why we do the
// cleanup after the call to onCallListChange() instead of directly here.
@@ -1357,9 +1360,10 @@ public class InCallPresenter implements CallList.Listener,
boolean showCircularReveal, boolean newTask) {
final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
- | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
+ | Intent.FLAG_ACTIVITY_NO_USER_ACTION | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
if (newTask) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
}
intent.setClass(mContext, InCallActivity.class);