Extract out Secure Settings wrapper from InputMethodSettings
This is a replacement refactoring of my previous commit [1], which
aimed to achieve a special UX on direct-boot enabled devices.
One of reasons why InputMethodUtils.InputMethodSettings is used in so
many places is because the special handlig for direct-boot mode is
implemented there. This commit aims to break this hard dependency by
extracting out the Secure Settings wrapper from InputMethodSettings to
SecureSettingsWrapper so that other components can also access to the
same storage without instantiating InputMethodSettings.
The user observable behavior should be semantically the same.
[1]: I9c6f9bb3d51174198e5f73588637f87ea0d90e11
68645a638ad1bfb734b2b0f56b17fe206bb891c5
Bug: 309837937
Test: presubmit
Test: Manually verified as follows:
1. Build aosp_bluejay-trunk_staging-userdebug then flash it.
2. make -j SoftKeyboard
3. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk
4. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard
5. adb shell ime set com.example.android.softkeyboard/.SoftKeyboard
6. adb shell ime disable com.android.inputmethod.latin/.LatinIME
7. adb shell settings get secure enabled_input_methods
-> com.example.android.softkeyboard/.SoftKeyboard
8. adb shell settings get secure default_input_method
-> com.example.android.softkeyboard/.SoftKeyboard
9. adb shell locksettings set-password aaaa
10. adb reboot
11. Wait until the lock screen is shown
12. adb shell settings get secure enabled_input_methods
-> com.android.inputmethod.latin/.LatinIME
13. adb shell settings get secure default_input_method
-> com.android.inputmethod.latin/.LatinIME
14. Type "aaaa" and hit the enter button
15. Wait until the home screen is shown
16. adb shell settings get secure enabled_input_methods
-> com.example.android.softkeyboard/.SoftKeyboard
17. adb shell settings get secure default_input_method
-> com.example.android.softkeyboard/.SoftKeyboard
18. adb shell ime list -s
-> com.android.inputmethod.latin/.LatinIME
19. Type "aaaa" to unlock the user
20. adb shell ime list -s
-> com.example.android.softkeyboard/.SoftKeyboard
Change-Id: I909186c2438760a973cc963664a187c5acadd88f
3 files changed