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

Commit d1444b63 authored by Bryce Lee's avatar Bryce Lee Committed by Android Git Automerger
Browse files

am 1d97aa4d: Merge "Allow single press of physical button to go home without...

am 1d97aa4d: Merge "Allow single press of physical button to go home without sleeping." into lmp-mr1-modular-dev

* commit '1d97aa4d':
  Allow single press of physical button to go home without sleeping.
parents f89c6f3c 1d97aa4d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.view;

import android.annotation.IntDef;
import android.annotation.SystemApi;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.CompatibilityInfo;
@@ -104,6 +105,13 @@ public interface WindowManagerPolicy {
     */
    public final static String EXTRA_HDMI_PLUGGED_STATE = "state";

    /**
     * Set to {@code true} when intent was invoked from pressing the home key.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_FROM_HOME_KEY = "android.intent.extra.FROM_HOME_KEY";

    /**
     * Pass this event to the user / app.  To be returned from
     * {@link #interceptKeyBeforeQueueing}.
+21 −5
Original line number Diff line number Diff line
@@ -153,6 +153,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    static final int SHORT_PRESS_POWER_GO_TO_SLEEP = 1;
    static final int SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP = 2;
    static final int SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP_AND_GO_HOME = 3;
    static final int SHORT_PRESS_POWER_GO_HOME = 4;

    static final int LONG_PRESS_POWER_NOTHING = 0;
    static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1;
@@ -971,6 +972,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                            PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE);
                    launchHomeFromHotKey();
                    break;
                case SHORT_PRESS_POWER_GO_HOME:
                    launchHomeFromHotKey();
                    break;
            }
        }
    }
@@ -2991,7 +2995,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                        } catch (RemoteException e) {
                        }
                        sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY);
                        startDockOrHome();
                        startDockOrHome(true /*fromHomeKey*/);
                    }
                }
            });
@@ -3009,7 +3013,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            } else {
                // Otherwise, just launch Home
                sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY);
                startDockOrHome();
                startDockOrHome(true /*fromHomeKey*/);
            }
        }
    }
@@ -5822,19 +5826,31 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        return null;
    }

    void startDockOrHome() {
    void startDockOrHome(boolean fromHomeKey) {
        awakenDreams();

        Intent dock = createHomeDockIntent();
        if (dock != null) {
            try {
                if (fromHomeKey) {
                    dock.putExtra(WindowManagerPolicy.EXTRA_FROM_HOME_KEY, fromHomeKey);
                }
                mContext.startActivityAsUser(dock, UserHandle.CURRENT);
                return;
            } catch (ActivityNotFoundException e) {
            }
        }

        mContext.startActivityAsUser(mHomeIntent, UserHandle.CURRENT);
        Intent intent;

        if (fromHomeKey) {
            intent = new Intent(mHomeIntent);
            intent.putExtra(WindowManagerPolicy.EXTRA_FROM_HOME_KEY, fromHomeKey);
        } else {
            intent = mHomeIntent;
        }

        mContext.startActivityAsUser(intent, UserHandle.CURRENT);
    }

    /**
@@ -5849,7 +5865,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            } catch (RemoteException e) {
            }
            sendCloseSystemWindows();
            startDockOrHome();
            startDockOrHome(false /*fromHomeKey*/);
        } else {
            // This code brings home to the front or, if it is already
            // at the front, puts the device to sleep.