Merge "Fix keyboard hidden states." into honeycomb

This commit is contained in:
Jeff Brown
2011-01-16 14:39:01 -08:00
committed by Android (Google) Code Review

View File

@@ -191,9 +191,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
static final int APPLICATION_PANEL_SUBLAYER = 1; static final int APPLICATION_PANEL_SUBLAYER = 1;
static final int APPLICATION_SUB_PANEL_SUBLAYER = 2; static final int APPLICATION_SUB_PANEL_SUBLAYER = 2;
// Debugging: set this to have the system act like there is no hard keyboard.
static final boolean KEYBOARD_ALWAYS_HIDDEN = false;
static public final String SYSTEM_DIALOG_REASON_KEY = "reason"; static public final String SYSTEM_DIALOG_REASON_KEY = "reason";
static public final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions"; static public final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions";
static public final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; static public final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
@@ -914,38 +911,44 @@ public class PhoneWindowManager implements WindowManagerPolicy {
} }
private int determineHiddenState(int mode, int hiddenValue, int visibleValue) { private int determineHiddenState(int mode, int hiddenValue, int visibleValue) {
if (KEYBOARD_ALWAYS_HIDDEN) { if (mLidOpen != LID_ABSENT) {
return hiddenValue; switch (mode) {
} case 1:
if (mLidOpen == LID_ABSENT) { return mLidOpen == LID_OPEN ? visibleValue : hiddenValue;
return visibleValue; case 2:
} return mLidOpen == LID_OPEN ? hiddenValue : visibleValue;
}
switch (mode) {
case 1:
return mLidOpen == LID_OPEN ? visibleValue : hiddenValue;
case 2:
return mLidOpen == LID_OPEN ? hiddenValue : visibleValue;
} }
return visibleValue; return visibleValue;
} }
/** {@inheritDoc} */ /** {@inheritDoc} */
public void adjustConfigurationLw(Configuration config) { public void adjustConfigurationLw(Configuration config) {
readLidState(); readLidState();
mPowerManager.setKeyboardVisibility(mLidOpen == LID_OPEN); mPowerManager.setKeyboardVisibility(mLidOpen == LID_OPEN);
config.hardKeyboardHidden = determineHiddenState(
mLidKeyboardAccessibility, Configuration.HARDKEYBOARDHIDDEN_YES, if (config.keyboard == Configuration.KEYBOARD_NOKEYS) {
Configuration.HARDKEYBOARDHIDDEN_NO); config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_YES;
config.navigationHidden = determineHiddenState( } else {
mLidNavigationAccessibility, Configuration.NAVIGATIONHIDDEN_YES, config.hardKeyboardHidden = determineHiddenState(mLidKeyboardAccessibility,
Configuration.NAVIGATIONHIDDEN_NO); Configuration.HARDKEYBOARDHIDDEN_YES, Configuration.HARDKEYBOARDHIDDEN_NO);
config.keyboardHidden = (config.hardKeyboardHidden }
== Configuration.HARDKEYBOARDHIDDEN_NO || mHasSoftInput)
? Configuration.KEYBOARDHIDDEN_NO if (config.navigation == Configuration.NAVIGATION_NONAV) {
: Configuration.KEYBOARDHIDDEN_YES; config.navigationHidden = Configuration.NAVIGATIONHIDDEN_YES;
} else {
config.navigationHidden = determineHiddenState(mLidNavigationAccessibility,
Configuration.NAVIGATIONHIDDEN_YES, Configuration.NAVIGATIONHIDDEN_NO);
}
if (mHasSoftInput || config.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
config.keyboardHidden = Configuration.KEYBOARDHIDDEN_NO;
} else {
config.keyboardHidden = Configuration.KEYBOARDHIDDEN_YES;
}
} }
/** {@inheritDoc} */ /** {@inheritDoc} */
public int windowTypeToLayerLw(int type) { public int windowTypeToLayerLw(int type) {
if (type >= FIRST_APPLICATION_WINDOW && type <= LAST_APPLICATION_WINDOW) { if (type >= FIRST_APPLICATION_WINDOW && type <= LAST_APPLICATION_WINDOW) {