Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94a679da authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

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.
parent 323216be
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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() ||
+7 −7
Original line number Diff line number Diff line
@@ -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;
    }