diff options
author | Dianne Hackborn <hackbod@google.com> | 2009-07-28 17:51:07 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2009-07-28 17:51:07 -0700 |
commit | 1dc1ccaf5c8cc136b71537f310a3f13150aaef41 (patch) | |
tree | 1ea9256a6d561a918cc225c8258a4baa1e60fbed | |
parent | 1d903521ffc93b5128ebc445d7dd046ee0d5fbc4 (diff) | |
download | base-donut.tar.gz |
Fix issue #1999179: search -> click result -> press home = search dialog is shown then hiddenandroid-sdk-tools_r2android-sdk-1.6_r2android-sdk-1.6_r1android-sdk-1.6-docs_r1android-1.6_r2android-1.6_r1.5android-1.6_r1.4android-1.6_r1.3android-1.6_r1.2android-1.6_r1.1android-1.6_r1donut-release2donut-releasedonut
Re-arrange various things to ensure that the search dialog is told about system windows being
closed before it is told about the navigation back to home.
3 files changed, 11 insertions, 12 deletions
diff --git a/mid/com/android/internal/policy/impl/MidWindowManager.java b/mid/com/android/internal/policy/impl/MidWindowManager.java index 6bf399f..2bff15b 100644 --- a/mid/com/android/internal/policy/impl/MidWindowManager.java +++ b/mid/com/android/internal/policy/impl/MidWindowManager.java @@ -973,11 +973,10 @@ public class MidWindowManager implements WindowManagerPolicy { } private void sendCloseSystemWindows(String reason) { - Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); - if (reason != null) { - intent.putExtra(SYSTEM_DIALOG_REASON_KEY, reason); + try { + ActivityManagerNative.getDefault().closeSystemDialogs(reason); + } catch (RemoteException e) { } - mContext.sendBroadcast(intent); } public int rotationForOrientationLw(int orientation, int lastRotation, diff --git a/phone/com/android/internal/policy/impl/PhoneWindow.java b/phone/com/android/internal/policy/impl/PhoneWindow.java index db43a9c..6341771 100644 --- a/phone/com/android/internal/policy/impl/PhoneWindow.java +++ b/phone/com/android/internal/policy/impl/PhoneWindow.java @@ -239,11 +239,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (!mKeycodeCameraTimeoutActive) return; mKeycodeCameraTimeoutActive = false; mDecor.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); + sendCloseSystemWindows(); // Broadcast an intent that the Camera button was longpressed Intent intent = new Intent(Intent.ACTION_CAMERA_BUTTON, null); intent.putExtra(Intent.EXTRA_KEY_EVENT, (KeyEvent) msg.obj); getContext().sendOrderedBroadcast(intent, null); - sendCloseSystemWindows(); } break; case MSG_SEARCH_LONG_PRESS_COMPLETE: { if (getKeyguardManager().inKeyguardRestrictedInputMode() || diff --git a/phone/com/android/internal/policy/impl/PhoneWindowManager.java b/phone/com/android/internal/policy/impl/PhoneWindowManager.java index 0392c7e..8140b3d 100644 --- a/phone/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/phone/com/android/internal/policy/impl/PhoneWindowManager.java @@ -954,8 +954,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { ActivityManagerNative.getDefault().stopAppSwitches(); } catch (RemoteException e) { } - mContext.startActivity(mHomeIntent); sendCloseSystemWindows(); + mContext.startActivity(mHomeIntent); } } }); @@ -965,8 +965,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { ActivityManagerNative.getDefault().stopAppSwitches(); } catch (RemoteException e) { } - mContext.startActivity(mHomeIntent); sendCloseSystemWindows(); + mContext.startActivity(mHomeIntent); } } @@ -1700,11 +1700,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { static void sendCloseSystemWindows(Context context, String reason) { if (ActivityManagerNative.isSystemReady()) { - Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); - if (reason != null) { - intent.putExtra(SYSTEM_DIALOG_REASON_KEY, reason); + try { + ActivityManagerNative.getDefault().closeSystemDialogs(reason); + } catch (RemoteException e) { } - context.sendBroadcast(intent); } } @@ -1816,12 +1815,14 @@ public class PhoneWindowManager implements WindowManagerPolicy { ActivityManagerNative.getDefault().stopAppSwitches(); } catch (RemoteException e) { } + sendCloseSystemWindows(); mContext.startActivity(mHomeIntent); } else { // This code brings home to the front or, if it is already // at the front, puts the device to sleep. try { ActivityManagerNative.getDefault().stopAppSwitches(); + sendCloseSystemWindows(); int result = ActivityManagerNative.getDefault() .startActivity(null, mHomeIntent, mHomeIntent.resolveTypeIfNeeded(mContext.getContentResolver()), @@ -1833,7 +1834,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { // bummer, the activity manager, which is in this process, is dead } } - sendCloseSystemWindows(); return true; } |