From f71343ddf0f10db762f1b4ad5717f04742f83b66 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Fri, 31 May 2013 17:59:11 -0700 Subject: Fix regression in long-press home behavior on tablets. Some config.xml resources have values that vary based on the configuration. A previous change caused initialization to occur at a time when the configuration is was not yet available. This change fixes the problem. Bug: 8891502 Change-Id: Ia768dc2308cc6ae5f11812c6bce6a6e116cfd759 --- .../internal/policy/impl/PhoneWindowManager.java | 37 ++++++++++++++-------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'policy') diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index a4275a3..b0cd11ae 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -885,20 +885,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { com.android.internal.R.integer.config_lidNavigationAccessibility); mLidControlsSleep = mContext.getResources().getBoolean( com.android.internal.R.bool.config_lidControlsSleep); - - mLongPressOnHomeBehavior = mContext.getResources().getInteger( - com.android.internal.R.integer.config_longPressOnHomeBehavior); - if (mLongPressOnHomeBehavior < LONG_PRESS_HOME_NOTHING || - mLongPressOnHomeBehavior > LONG_PRESS_HOME_ASSIST) { - mLongPressOnHomeBehavior = LONG_PRESS_HOME_NOTHING; - } - - mDoubleTapOnHomeBehavior = mContext.getResources().getInteger( - com.android.internal.R.integer.config_doubleTapOnHomeBehavior); - if (mDoubleTapOnHomeBehavior < DOUBLE_TAP_HOME_NOTHING || - mDoubleTapOnHomeBehavior > DOUBLE_TAP_HOME_RECENT_SYSTEM_UI) { - mDoubleTapOnHomeBehavior = LONG_PRESS_HOME_NOTHING; - } + readConfigurationDependentBehaviors(); // register for dock events IntentFilter filter = new IntentFilter(); @@ -952,6 +939,27 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } + /** + * Read values from config.xml that may be overridden depending on + * the configuration of the device. + * eg. Disable long press on home goes to recents on sw600dp. + */ + private void readConfigurationDependentBehaviors() { + mLongPressOnHomeBehavior = mContext.getResources().getInteger( + com.android.internal.R.integer.config_longPressOnHomeBehavior); + if (mLongPressOnHomeBehavior < LONG_PRESS_HOME_NOTHING || + mLongPressOnHomeBehavior > LONG_PRESS_HOME_ASSIST) { + mLongPressOnHomeBehavior = LONG_PRESS_HOME_NOTHING; + } + + mDoubleTapOnHomeBehavior = mContext.getResources().getInteger( + com.android.internal.R.integer.config_doubleTapOnHomeBehavior); + if (mDoubleTapOnHomeBehavior < DOUBLE_TAP_HOME_NOTHING || + mDoubleTapOnHomeBehavior > DOUBLE_TAP_HOME_RECENT_SYSTEM_UI) { + mDoubleTapOnHomeBehavior = LONG_PRESS_HOME_NOTHING; + } + } + @Override public void setInitialDisplaySize(Display display, int width, int height, int density) { if (display.getDisplayId() != Display.DEFAULT_DISPLAY) { @@ -1332,6 +1340,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { int navigationPresence) { mHaveBuiltInKeyboard = (keyboardPresence & PRESENCE_INTERNAL) != 0; + readConfigurationDependentBehaviors(); readLidState(); applyLidSwitchState(); -- cgit v1.1