From a5c32d6ecc9da6d47cf59554bebf5d0dbe4f99d2 Mon Sep 17 00:00:00 2001 From: Joe Onorato Date: Thu, 19 Nov 2009 10:28:49 -0800 Subject: [PATCH] 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(). --- src/com/android/launcher2/Launcher.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index cbf09b0b08..859a75e5ce 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -831,6 +831,9 @@ public final class Launcher extends Activity } 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 @@ public final class Launcher extends Activity // 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.