Fix Keyboard Theme update when device orientation changed
As CL[1] introduces diplayContext to address IME service context's Resources / DisplayMetrics update when switching IME window to another display after onConfigurationChange. In LatinIME#onInitializeInterface, we only update keyboard theme context and displayContent when the displayId is changed, but overlooked even the displayId is the same, the display context's resource configuration might changed like the device orientation changd. It leads getDefaultKeyboardHeight will get wrong config_max_keyboard_height fraction value when rotating to landcape because the context resources didn't get updated. Add a check to update keyboard theme context when the current display configuation is changed accordingly. [1]: I0ed6a079af1ed90c75fee1d36d5ce3ef3c41f8ed Fix: 186507147 Test: manual as issue steps 1) Turn on auto-rotate 2) Open Settings 3) Rotating the device to landscape mode 4) Tap “Search settings", verify if the soft-keyboard shown and the size is expected. Change-Id: I288a31baf04fa2e63d6b4a14ad81b401cb36ece5main
parent
685abcb913
commit
407f8a3216
|
@ -803,7 +803,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
// create new display context and re-init keyboard layout with this context.
|
// create new display context and re-init keyboard layout with this context.
|
||||||
final WindowManager wm = getSystemService(WindowManager.class);
|
final WindowManager wm = getSystemService(WindowManager.class);
|
||||||
final int newDisplayId = wm.getDefaultDisplay().getDisplayId();
|
final int newDisplayId = wm.getDefaultDisplay().getDisplayId();
|
||||||
if (mCurDisplayId != newDisplayId) {
|
if (mCurDisplayId != newDisplayId || !mDisplayContext.getResources().getConfiguration()
|
||||||
|
.equals(getResources().getConfiguration())) {
|
||||||
mCurDisplayId = newDisplayId;
|
mCurDisplayId = newDisplayId;
|
||||||
mDisplayContext = createDisplayContext(wm.getDefaultDisplay());
|
mDisplayContext = createDisplayContext(wm.getDefaultDisplay());
|
||||||
mKeyboardSwitcher.updateKeyboardTheme(mDisplayContext);
|
mKeyboardSwitcher.updateKeyboardTheme(mDisplayContext);
|
||||||
|
|
Loading…
Reference in New Issue