diff options
author | Dianne Hackborn <hackbod@google.com> | 2009-09-14 21:23:11 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2009-09-14 21:23:11 -0700 |
commit | 288cdf822559af1b3ba22d6271d5fae8ae98b077 (patch) | |
tree | 0fea444a4395a8f81745c70d438491c5bd933f92 /phone/com/android/internal/policy/impl/PhoneWindow.java | |
parent | 8fdb89bb33dc50dae1198f0b35dfd8ad2bc2c344 (diff) | |
download | base-288cdf822559af1b3ba22d6271d5fae8ae98b077.tar.gz |
Various fixes for back key handling.
Change-Id: I8ad314722ce38711ce5c57c4fd3b2942cfe099a7
Diffstat (limited to 'phone/com/android/internal/policy/impl/PhoneWindow.java')
-rw-r--r-- | phone/com/android/internal/policy/impl/PhoneWindow.java | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/phone/com/android/internal/policy/impl/PhoneWindow.java b/phone/com/android/internal/policy/impl/PhoneWindow.java index fac4182..d8d2788 100644 --- a/phone/com/android/internal/policy/impl/PhoneWindow.java +++ b/phone/com/android/internal/policy/impl/PhoneWindow.java @@ -1195,19 +1195,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } case KeyEvent.KEYCODE_BACK: { - // Currently don't do anything with long presses. if (event.getRepeatCount() > 0) break; if (featureId < 0) break; - if (featureId == FEATURE_OPTIONS_PANEL) { - PanelFeatureState st = getPanelState(featureId, false); - if (st != null && st.isInExpandedMode) { - // If the user is in an expanded menu and hits back, it - // should go back to the icon menu - reopenMenu(true); - return true; - } - } - closePanel(featureId); + // Currently don't do anything with long press. + dispatcher.startTracking(event, this); return true; } @@ -1321,17 +1312,20 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { case KeyEvent.KEYCODE_BACK: { if (featureId < 0) break; - if (featureId == FEATURE_OPTIONS_PANEL) { - PanelFeatureState st = getPanelState(featureId, false); - if (st != null && st.isInExpandedMode) { - // If the user is in an expanded menu and hits back, it - // should go back to the icon menu - reopenMenu(true); - return true; + if (event.isTracking() && !event.isCanceled()) { + if (featureId == FEATURE_OPTIONS_PANEL) { + PanelFeatureState st = getPanelState(featureId, false); + if (st != null && st.isInExpandedMode) { + // If the user is in an expanded menu and hits back, it + // should go back to the icon menu + reopenMenu(true); + return true; + } } + closePanel(featureId); + return true; } - closePanel(featureId); - return true; + break; } case KeyEvent.KEYCODE_HEADSETHOOK: |