summaryrefslogtreecommitdiff
path: root/phone/com/android/internal/policy/impl/PhoneWindow.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2009-09-14 21:23:11 -0700
committerDianne Hackborn <hackbod@google.com>2009-09-14 21:23:11 -0700
commit288cdf822559af1b3ba22d6271d5fae8ae98b077 (patch)
tree0fea444a4395a8f81745c70d438491c5bd933f92 /phone/com/android/internal/policy/impl/PhoneWindow.java
parent8fdb89bb33dc50dae1198f0b35dfd8ad2bc2c344 (diff)
downloadbase-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.java34
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: