Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 04ac51b2 authored by Guliz Tuncay's avatar Guliz Tuncay
Browse files

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
parent c85c84f1
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment