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

Commit 6e029849 authored by Erik Wolsheimer's avatar Erik Wolsheimer
Browse files

Handle KeyEvent.FLAG_LONG_PRESS on power key

Bug: 72182865
Change-Id: I9516674ccac4a199f7bc480ae5668614f35f1f19
parent c110d259
Loading
Loading
Loading
Loading
+24 −16
Original line number Original line Diff line number Diff line
@@ -1326,6 +1326,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                // When interactive, we're already awake.
                // When interactive, we're already awake.
                // Wait for a long press or for the button to be released to decide what to do.
                // Wait for a long press or for the button to be released to decide what to do.
                if (hasLongPressOnPowerBehavior()) {
                if (hasLongPressOnPowerBehavior()) {
                    if ((event.getFlags() & KeyEvent.FLAG_LONG_PRESS) != 0) {
                        powerLongPress();
                    } else {
                        Message msg = mHandler.obtainMessage(MSG_POWER_LONG_PRESS);
                        Message msg = mHandler.obtainMessage(MSG_POWER_LONG_PRESS);
                        msg.setAsynchronous(true);
                        msg.setAsynchronous(true);
                        mHandler.sendMessageDelayed(msg,
                        mHandler.sendMessageDelayed(msg,
@@ -1337,10 +1340,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                            mHandler.sendMessageDelayed(longMsg, mVeryLongPressTimeout);
                            mHandler.sendMessageDelayed(longMsg, mVeryLongPressTimeout);
                        }
                        }
                    }
                    }
                }
            } else {
            } else {
                wakeUpFromPowerKey(event.getDownTime());
                wakeUpFromPowerKey(event.getDownTime());


                if (mSupportLongPressPowerWhenNonInteractive && hasLongPressOnPowerBehavior()) {
                if (mSupportLongPressPowerWhenNonInteractive && hasLongPressOnPowerBehavior()) {
                    if ((event.getFlags() & KeyEvent.FLAG_LONG_PRESS) != 0) {
                        powerLongPress();
                    } else {
                        Message msg = mHandler.obtainMessage(MSG_POWER_LONG_PRESS);
                        Message msg = mHandler.obtainMessage(MSG_POWER_LONG_PRESS);
                        msg.setAsynchronous(true);
                        msg.setAsynchronous(true);
                        mHandler.sendMessageDelayed(msg,
                        mHandler.sendMessageDelayed(msg,
@@ -1351,6 +1358,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                            longMsg.setAsynchronous(true);
                            longMsg.setAsynchronous(true);
                            mHandler.sendMessageDelayed(longMsg, mVeryLongPressTimeout);
                            mHandler.sendMessageDelayed(longMsg, mVeryLongPressTimeout);
                        }
                        }
                    }


                    mBeganFromNonInteractive = true;
                    mBeganFromNonInteractive = true;
                } else {
                } else {