Settings app changes spell checker settings directly without TSM APIs
Previously, Settings application was using TextServicesManager APIs to
update any of the spell checker settings (i.e., enabled/disabled, spell
checker, subtype). Since these APIs are used only by the Settings
application, there is no need to expose it to other services and the
Settings application can directly write them to secure settings since it
has the WRITE_SECURE_SETTINGS permission.
Bug: 62950392
Test: Manually as follows.
1. Build and flash an OS image.
2. Complete the setup wizard (if any).
3. Make sure AOSP Keyboard (com.android.inputmethod.latin) is installed
4. Install SampleSpellCheckerService
4.1 tapas SampleSpellCheckerService
4.2. make -j
4.3. adb install -r out/target/product/generic/system/app/SampleSpellCheckerService/SampleSpellCheckerService.apk
5. Go to spell checker settings in the system settings
6. Select 'SampleSpellCheckerService' through Settings app
7. Run
adb shell settings get secure selected_spell_checker
and make sure it returns the following value
com.example.android.samplespellcheckerservice/.SampleSpellCheckerService
8. Run
adb shell settings get secure selected_spell_checker_subtype
and make sure it returns '0'
9. Select 'Android Spell Checker (AOSP)' through Settings app
10. Run
adb shell settings get secure selected_spell_checker
and make sure it returns the following value
com.android.inputmethod.latin/.spellcheck.AndroidSpellCheckerService
11. Run
adb shell settings get secure selected_spell_checker_subtype
and make sure it returns '0'
12. Tap 'Languages' on the spell checker settings to select 'French'
13. Run
adb shell settings get secure selected_spell_checker_subtype
and make sure it returns '102517'
14. Select 'SampleSpellCheckerService' again through Settings app
15. Run
adb shell settings get secure selected_spell_checker
and make sure it returns the following value
com.example.android.samplespellcheckerservice/.SampleSpellCheckerService
16. Run
adb shell settings get secure selected_spell_checker_subtype
and make sure it returns '0'
Test: Manually as follows.
1. Build and flash an OS image.
2. Complete the setup wizard (if any).
3. Make sure AOSP Keyboard (com.android.inputmethod.latin) is installed
4. Install SampleSpellCheckerService
4.1 tapas SampleSpellCheckerService
4.2. make -j
4.3. adb install -r out/target/product/generic/system/app/SampleSpellCheckerService/SampleSpellCheckerService.apk
5. Set the current spell checker service to be AOSP SCS by
adb shell settings put secure selected_spell_checker com.android.inputmethod.latin/.spellcheck.AndroidSpellCheckerService
6. Run a test program that has TextView and tap on one of the
TextViews and type some text.
7. Observe that there is a connection to AOSP SCS by
adb shell dumpsys textservices
8. Set the current spell checker service to be
SampleSpellCheckerService SCS by
adb shell settings put secure selected_spell_checker com.example.android.samplespellcheckerservice/.SampleSpellCheckerService
9. Tap on the same TextView as in Step 6
10. Observe that there is a connection to SampleSpellCheckerService
SCS (for this TextView) by
adb shell dumpsys textservices
Change-Id: I2f3d5282a342bcb42abf995d6e7834241e11cd4f
Loading
Please register or sign in to comment