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

Commit 0e67e553 authored by Sven Dawitz's avatar Sven Dawitz Committed by Steve Kondik
Browse files

CM71: Add option to wake phone with volume keys

- Added on public user demand
- Originates from EVO, where power button is hard to press
  and no trackball available for waking device
- Option located under TrackballWake option
- No check for available volume buttons done, since i asume, each
  device got volume buttons. correct me if i am wrong.

Note: removed loads of trailing spaces with auto save actions.
blame the original creator (;

Change-Id: Ia45a68cc0d034b816939e2563f5c3596279b252b
parent cf9ff87e
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2323,6 +2323,12 @@ public final class Settings {
         */
        public static final String TRACKBALL_UNLOCK_SCREEN = "trackball_unlock_screen";

        /**
         * Whether to wake the screen with the volume keys. The value is boolean (1 or 0).
         * @hide
         */
        public static final String VOLUME_WAKE_SCREEN = "volume_wake_screen";

        /**
         * Whether to use the custom quick unlock screen control
         * @hide
+100 −88
Original line number Diff line number Diff line
@@ -242,7 +242,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    boolean mCameraKeyPressable = false;
    static final long NEXT_DURATION = 400;
    private boolean mBottomBar;
    
    int mPointerLocationMode = 0;
    PointerLocationView mPointerLocationView = null;
    InputChannel mPointerLocationInputChannel;
@@ -304,6 +303,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    // Behavior of trackball wake
    boolean mTrackballWakeScreen;

    // Behavior of volume wake
    boolean mVolumeWakeScreen;

    // Behavior of volbtn music controls
    boolean mVolBtnMusicControls;
    // Behavior of cambtn music controls
@@ -349,6 +351,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    "fancy_rotation_anim"), false, this);
            resolver.registerContentObserver(Settings.System.getUriFor(
                    Settings.System.TRACKBALL_WAKE_SCREEN), false, this);
            resolver.registerContentObserver(Settings.System.getUriFor(
                    Settings.System.VOLUME_WAKE_SCREEN), false, this);
            resolver.registerContentObserver(Settings.System.getUriFor(
                    Settings.System.VOLBTN_MUSIC_CONTROLS), false, this);
            resolver.registerContentObserver(Settings.System.getUriFor(
@@ -762,6 +766,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    "fancy_rotation_anim", 0) != 0 ? 0x80 : 0;
            mTrackballWakeScreen = (Settings.System.getInt(resolver,
                    Settings.System.TRACKBALL_WAKE_SCREEN, 1) == 1);
            mVolumeWakeScreen = (Settings.System.getInt(resolver,
                    Settings.System.VOLUME_WAKE_SCREEN, 0) == 1);
            mVolBtnMusicControls = (Settings.System.getInt(resolver,
                    Settings.System.VOLBTN_MUSIC_CONTROLS, 1) == 1);
            mCamBtnMusicControls = (Settings.System.getInt(resolver,
@@ -1215,7 +1221,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        return AnimationUtils.loadAnimation(mContext,
                com.android.internal.R.anim.lock_screen_behind_enter);
    }
    
    static ITelephony getTelephonyService() {
        ITelephony telephonyService = ITelephony.Stub.asInterface(
                ServiceManager.checkService(Context.TELEPHONY_SERVICE));
@@ -2051,7 +2056,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {

            final boolean isWakeKey = (policyFlags
                    & (WindowManagerPolicy.FLAG_WAKE | WindowManagerPolicy.FLAG_WAKE_DROPPED)) != 0
                    || ((keyCode == BTN_MOUSE) && mTrackballWakeScreen);
                    || ((keyCode == BTN_MOUSE) && mTrackballWakeScreen)
                    || ((keyCode == KeyEvent.KEYCODE_VOLUME_UP) && mVolumeWakeScreen)
                    || ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) && mVolumeWakeScreen);

            // make sure keyevent get's handled as power key on volume-wake
            if(!isScreenOn && mVolumeWakeScreen && isWakeKey && ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)
                    || (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)))
                keyCode=KeyEvent.KEYCODE_POWER;

            if (down && isWakeKey) {
                if (keyguardActive) {