Fix issue #1999179: search -> click result -> press home = search dialog is shown then hidden

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.
This commit is contained in:
Dianne Hackborn
2009-07-28 17:51:07 -07:00
parent 323216beeb
commit 94a679daba
2 changed files with 8 additions and 8 deletions

View File

@@ -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() ||

View File

@@ -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;
}