Fix bugs 226264 and 2265943 - Home stopped responding to touch, but all-apps & notification panel
still work
I knew it was a problem with mWaitingForResult, which I'm still not convinced we need, but
Jeff Sharkey was able to find repro steps, so he's my new hero. The steps were:
1. Open add menu (long pressing or menu > add)
2. Turn off the screen
3. Turn back on & unlock
4. Poof.
The problem was that when we get ACTION_CLOSE_SYSTEM_DIALOGS intents, we're dismissing the dialogs,
not canceling them. I think we actually want to cancel them, but there's no easy way to do that
with the Activity class, so just clear mWaitingForResult by hand in closeSystemDialogs().
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index cbf09b0..859a75e 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -831,6 +831,9 @@
} catch (Exception e) {
// An exception is thrown if the dialog is not visible, which is fine
}
+
+ // Whatever we were doing is hereby canceled.
+ mWaitingForResult = false;
}
@Override
@@ -839,11 +842,9 @@
// Close the menu
if (Intent.ACTION_MAIN.equals(intent.getAction())) {
+ // also will cancel mWaitingForResult.
closeSystemDialogs();
- // Whatever we were doing is hereby canceled.
- mWaitingForResult = false;
-
// Set this flag so that onResume knows to close the search dialog if it's open,
// because this was a new intent (thus a press of 'home' or some such) rather than
// for example onResume being called when the user pressed the 'back' button.