Merge "Fix keyboard hidden states." into honeycomb
This commit is contained in:
@@ -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,18 +911,13 @@ 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;
|
||||||
}
|
}
|
||||||
@@ -933,17 +925,28 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
/** {@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} */
|
||||||
|
|||||||
Reference in New Issue
Block a user