diff options
author | Tanguy Pruvot <tanguy.pruvot@gmail.com> | 2012-02-04 09:16:35 +0100 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2012-02-18 11:47:45 -0800 |
commit | 5855e94087c98263b4764e8d91d94a41264f32fb (patch) | |
tree | 00dbb3d2d780cb00687c3a4c5d2e500c58fb5037 /policy | |
parent | b98591a79effbcb79fe344b2ddd7dd86c941dd73 (diff) | |
download | frameworks_base-5855e94087c98263b4764e8d91d94a41264f32fb.zip frameworks_base-5855e94087c98263b4764e8d91d94a41264f32fb.tar.gz frameworks_base-5855e94087c98263b4764e8d91d94a41264f32fb.tar.bz2 |
wake phone with volume keys
From CM71, for devices where power button is hard to press
Change-Id: I402394d2599e18b70283a7e8b9d5d6c8ce1e38c7
Diffstat (limited to 'policy')
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 0322658..0f8c81b 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -352,6 +352,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { WindowState mFocusedWindow; IApplicationToken mFocusedApp; + // Behavior of volume wake + boolean mVolumeWakeScreen; + private final InputHandler mPointerLocationInputHandler = new BaseInputHandler() { @Override public void handleMotion(MotionEvent event, InputQueue.FinishedCallback finishedCallback) { @@ -479,6 +482,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { resolver.registerContentObserver(Settings.Secure.getUriFor( Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR), false, this); resolver.registerContentObserver(Settings.System.getUriFor( + Settings.System.VOLUME_WAKE_SCREEN), false, this); + resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.ACCELEROMETER_ROTATION), false, this); resolver.registerContentObserver(Settings.System.getUriFor( Settings.System.USER_ROTATION), false, this); @@ -949,6 +954,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { mIncallPowerBehavior = Settings.Secure.getInt(resolver, Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT); + mVolumeWakeScreen = (Settings.System.getInt(resolver, + Settings.System.VOLUME_WAKE_SCREEN, 0) == 1); int accelerometerDefault = Settings.System.getInt(resolver, Settings.System.ACCELEROMETER_ROTATION, DEFAULT_ACCELEROMETER_ROTATION); @@ -2745,7 +2752,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn) { final boolean down = event.getAction() == KeyEvent.ACTION_DOWN; final boolean canceled = event.isCanceled(); - final int keyCode = event.getKeyCode(); + int keyCode = event.getKeyCode(); final boolean isInjected = (policyFlags & WindowManagerPolicy.FLAG_INJECTED) != 0; @@ -2790,7 +2797,15 @@ public class PhoneWindowManager implements WindowManagerPolicy { result = 0; final boolean isWakeKey = (policyFlags - & (WindowManagerPolicy.FLAG_WAKE | WindowManagerPolicy.FLAG_WAKE_DROPPED)) != 0; + & (WindowManagerPolicy.FLAG_WAKE | WindowManagerPolicy.FLAG_WAKE_DROPPED)) != 0 + || ((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) { // If the keyguard is showing, let it decide what to do with the wake key. |