Skip to content

Commit

Permalink
Merge pull request #3 from corcoran/jb
Browse files Browse the repository at this point in the history
Fix for home/menu unlock to work with long-press hardware key actions
  • Loading branch information
krarvind committed Nov 5, 2012
2 parents c4e0418 + 1018f3b commit fd665e0
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions policy/src/com/android/internal/policy/impl/LockScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ class LockScreen extends LinearLayout implements KeyguardScreen {
public static final int LAYOUT_SIX_EIGHT = 1;

private int mLockscreenStyle = LAYOUT_STOCK;
private boolean mUnlockKeyDown = false;

private static final int COLOR_WHITE = 0xFFFFFFFF;

Expand Down Expand Up @@ -769,6 +770,8 @@ public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
|| keyCode == KeyEvent.KEYCODE_HOME
|| keyCode == KeyEvent.KEYCODE_MENU) {
// make sure the keydown is from a screen on state
mUnlockKeyDown = true;
event.startTracking();
return true;
}
Expand All @@ -777,8 +780,12 @@ public boolean onKeyDown(int keyCode, KeyEvent event) {

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_MENU && mEnableMenuKeyInLockScreen) ||
(keyCode == KeyEvent.KEYCODE_HOME && mHomeUnlockScreen)) {
int flags = event.getFlags();
// KeyEvent.FLAG_CANCELED_LONG_PRESS checked so we don't unlock after a longpress
if (((keyCode == KeyEvent.KEYCODE_MENU && mEnableMenuKeyInLockScreen) ||
(keyCode == KeyEvent.KEYCODE_HOME && mHomeUnlockScreen)) &&
mUnlockKeyDown && (flags&KeyEvent.FLAG_CANCELED_LONG_PRESS) == 0) {
mUnlockKeyDown = false;
mCallback.goToUnlockScreen();
}
return false;
Expand Down

0 comments on commit fd665e0

Please sign in to comment.