Skip to content
Commit c8c5f134 authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

IMMS should preserve selected IME upon boot

This is another follow up CL to my refactoring CL [1], which
unintentionally changed the condition to reset default
enabled/selected IMEs when the device boots up.

My previous attempt [2] actually fixed the unexpected reset of
the enabled IMEs (Bug 67093433), but did not fix the unexpected reset
of the selected IME (Bug 113159114).

The culprit was IMMS#resetDefaultImeLocked(), which always resets the
selected IME when it gets called in a too early boot phase where
mCurMethodId is still null.  Actually it turns out that we do not need
to call IMMS#resetDefaultImeLocked() from IMMS#systemRunning() at all,
because

    buildInputMethodListLocked(!imeSelectedOnBoot /* resetDefaultEnabledIme */)

one line above already takes care of such a case.

Note that this issue is observable only on direct-boot aware devices
because of the same reason explained in my previous CL [2].

 [1]: I5b37c450db4b25b3e635b6d634293a34eec8b9d4
      7924782c
 [2]: Id624d577d941245cca944498dc6935eb364865cf
      1f9a3cbe

Fix: 113159114
Test: Manually verified as follows
  1. Check out AOSP master
  2. Build an OS image for a direct-boot aware device then flash it.
  3. Open
       development/samples/SoftKeyboard/AndroidManifest.xml
     then add
       android:directBootAware="true"
     to the IME service.
  4. tapas SoftKeyboard
  5. make -j
  6. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk
  7. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard
  8. adb shell ime set com.example.android.softkeyboard/.SoftKeyboard
  9. adb shell locksettings set-password aaaa
 10. adb reboot
 11. Make sure that
      * Sample Soft keyboard is shown by default on the unlock screen.
      * AOSP Keyboard is also enabled.
Change-Id: Icb782c01c742a9359b5a6684c360f30c5cf9cdc9
parent c96760f4
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment