Root Cause: KeyboardSettingsPreferenceController override
handlePreferenceTreeClick() without checking the preference key, it will lead to handle all preferences' click action.
Solution: Check the preference is the expected preference key
Bug: 264017256
Test: make RunSettingsRoboTests ROBOTEST_FILTER=KeyboardSettingsPreferenceControllerTest
Change-Id: Idcdadc323df5b758b4b21329227e2bb721b1c394
1. basic trackpad settings
2. trackpad gestures settgins
3. use feature flag to control gesture settings page.
Bug: 247080509
Test: local test
Change-Id: Ia7184eeb7670e5d807cb553929679972e54d8c92
The default observer delay is 10s for background
service. When a device connected to a hardware
keyboard, the delay makes soft keyboard visibility
is unsync after user switch the configuration.
Notify the SHOW_IME_WITH_HARD_KEYBOARD change
without delay.
Bug: 240210005
Test: Manual with bug steps
Change-Id: I7f8cb0df514fdea4ed0e092cd4466931ec200969
1. Separate "Keyboard" from "Language & input".
2. Use FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI to control the
different UI until Settings launches the new UI design.
Bug: 242680328
Test: local test
Change-Id: Id1ea6d3e3c2e6b83bc4b4d835c6b27e31311c530
"Yes" and "no" were redefined many times with no clear benefit, so this
consolidates them into one definition.
Bug: 243843096
Test: Build, install, and open the Settings app
Test: atest SettingsRoboTests
Change-Id: I5f84d09f223efd478461ded93aeac82bf7b128d8
We have CL[1] to fix the NPE when keyboard settings
is launched by work app. CL[1] overlooked the work
profile with multi-user case.
Work profile user ID is not available(return null)
when calling Utils#getManagedProfile by work identity.
For work case, distinguish it's running on managed
profile user(launched by work app) or not. And use
corresponding userId as:
-. If it's a managed profile user, use currentUserId.
-. For a owner user, get managed profile userId.
[1]: Iea573922ee789d9932c0de05bf71179c4f005eeb
Bug: 216395439
Test: Manual test with bugs steps
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableVirtualKeyboardFragmentTest
Change-Id: If018d2fddbbcf932927d2235bb8e99393df1e67c
IME apps can request users to enable them by directly
launching the on-screen keyboard settings page.
If keyboard settings is launched by works apps, the
current userId would be work userId. There is no managed
profile for work user so the exception happened.
-. Use current userId if it's launched by work user
-. Use primary user info for personal fragment
Fix: 216395439
Test: Manual test with issue steps
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableVirtualKeyboardFragmentTest
Change-Id: Iea573922ee789d9932c0de05bf71179c4f005eeb
* null means no policy is enfrced, any IM is allowed.
* empty means no IMs is allowed except system IMs.
Bug: 211063191
Test: manual, CtsVerifier/BYOD managed provisioning/Policy transparency
Change-Id: I35665a547c1e99129c70c834083b3183ba00208d
Add a test for AvailableVirtualKeyboardFragment
Fix: 207452897
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableVirtualKeyboardFragmentTest
Change-Id: I83d30ae9d085c2b90fd16e5f6c4100bb82b6b588
Introduces following fragments for work flow.
- Add ProfileSelectKeyboardFragment which used to display
personal/work fragment when user has work profile.
- Introduce UserAwareContext in AvailableVirtualKeyboardFragment
to support personal/work user installed input methods handling.
Bug: 174360557
Bug: 197707782
Test: Manual test as bug video
Change-Id: I1019e375c5d42de7bc7c048d5d66e8e2f58acce8
CL[1] make InputMethodPreference support:
-. Tap to corresponding IMEs settings
-. Using switch to enable/disble IMEs
Using AvailableVirtualKeyboardFragment for
language and input settings entries and
remove unused files.
[1]: I445551e4112117aabd8d7a48f53c29b7ffd8bafd
Bug: 197705032
Test: Manually test settings keyboard flow, test video in bug
Change-Id: I4d74df7d2dda71661e3298c7070459885aa308cb
* If an IME is not in the permitted IME list and is enabled,
the user should be able to disable it.
* This prevents the IME from being stuck in a state where the
user cannot disable it and as a result the user's device
becomes uncompliant with their IT admin's policy.
Manual testing steps:
* Install TestDPC
* Set up work profile using TestDPC
* Install swiftkey in the work profile
* set permitted input methods (in TestDPC) to only system
* Use adb to enable Swiftkey
* Go to Settings and verify Swiftkey can be disabled
* Once disabled, verify Swiftkey cannot be re-enabled.
Bug: 180517539
Test: manual testing
Change-Id: I7bdd3a0c4fed4d16006445b7774fd1006cc2b569
Let's update this legacy OWNERS file based on the current reality.
Hopefully this would make it easier for contributers to find available
owner reviewers.
Fix: 182385491
Test: n/a
Change-Id: If47b5c0b83d561dceacc58c8fbd3643524432d62
To log Settings metrics, the MainSwitch extends MainSwitchBar and
replace the SwitchBar in SettingsActivity.
Bug: 175181773
Test: Run robotest and apply the widget in Settings and see the ui
Change-Id: I3add3702e9058ad9192b5172c7cf0e2ccfb55a70
After the collapsing toolbar layout is applied to subsetting pages, the
title of the personal dictionary page won't be shown. This CL is to set
a title for the personal dictionary page.
Bug: 176897229
Test: manual test and visual verified
1) Navigate to Settings -> System -> Languages & input -> Personal
dictionary
2) Enable collapsing toolbar feature
3) Observe and check if the title is shown as normal
Change-Id: I0b6488bc2c8040b275ba0d5348d09aa4bad905d1
we shouldn't take users so deep into the settings IA because it's easy
to feel lost in settings after clicking on a result without additional
context.
Bug: 143055215
Test: robotest & manual
Change-Id: I337cb5ead31e1e4e7bf9be78132e90630f83ee43
This reverts commit 08f2a58459.
Reason for revert: design changed, we decide to take the user to
the entry after clicking on a search result.
It's opposite with what we did, so we revert related CL first.
Test: robotest
Change-Id: Iadb9a94a7ef7838be34a54499e2d934d6396c336
- remove duplicate index preference
- default set searchable = false when the preference has fragment
- make some fragments indexable
Bug: 143057584
Test: robotest & manual
Change-Id: I4d64f6106d2f92f0a45e8c7e26388677f593f412
- Add settings:forWork in xml
- Set mIsForWork based on xml attribute
- Delete WorkProfilePreferenceController and move its function to
BasePreferenceController
Fixes: 123376083
Test: Add work profile, go to Settings->System->Language&input,
UI should show work profile related items
Change-Id: Id2dcbb0e158c117cdfd363466a275f4e133c345e
- Use SettingsLib Indexable
- Directly use resource id in getPreferenceScreenResId
Bug: 135053028
Test: roboletric
Change-Id: I05f493b55e8b6e2091301e9231ba5615215618e6
- Add function getXmlResourceId, Fragments don't need to write
xml resource id twice.
- Remove getPreferenceControllers from Indexable.java. Because it will
move to SettingsLib later for other apps which don't need this function
Bug: 135053028
Test: robolectric
Change-Id: I1e74519aecdea3dde64a5aea79f08d766dbc0003
PER_PROFILE_IME_ENABLED is default enabled in Q. We no longer need to
have this property.
Bug: 135775619
Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases
Change-Id: I1ba4fab361b77b1ec23b1773a66dccb76667e95c
This is a follow up CL to my previous CL [1], which attempted to show
the most appropriate IME icon even when multiple IMEs are implemented
in a single APK.
This CL simplifies the way how IME icon is obtained in the Settings
app, by simply using InputMethodInfo#loadIcon(), which already does
what we want.
Notable user-visible behavior changes are:
- Like before my previous CL was submitted, android:logo will not be
used in the IME settings (again).
- Icons shown in IME settings start having (user) badges like other
settings pages.
- If no icon is available in IME,
PackageManager#getDefaultActivityIcon() will be used. This is
actually consistent with other settings pages.
[1]: I406ccc0d53e6ec69793c2fc8be8c6c1c90b34811
2cae5b8952
Bug: 28204635
Fix: 131432102
Test: Manually verified as follows.
1. Build aosp_taimen-userdebug and flash it
2. Install TestDPC.
3. Set up a work profile
4. Open Settings App -> System -> Languages & input
-> Advanced -> Virtual keyboard for work
5. Make sure the icon of "Android Keyboard (AOSP)" has a small badge.
6. Tap "Manage keyboards"
7. Make sure the icon of "Android Keyboard (AOSP)" has the same icon
as the step 5.
8. Open Settings App -> System -> Languages & input
-> Virtual keyboard
9. Make sure the icon of "Android Keyboard (AOSP)" does not have a
small badge on it.
10. Tap "Manage keyboards"
11. Make sure the icon of "Android Keyboard (AOSP)" has the same icon
as the step 9.
Change-Id: Ie9be1eb3071abcc2df7723ceb10d76fe458c4808
Duplicate preference is added on the
UserDictionaryListPreferenceController. With this change, we check
before adding.
Fix: 129079798
Test: Manually using steps mentioned in bug
Change-Id: If73880f3be460f377b8985a44fc9f9fbe6370c06
This CL adds "Work profile" section to Languages and input settings.
The new section is visible when and only when work profile is enabled.
Hence there should be no user-visible behavior difference when work
profile is not enabled.
If per-profile IME [1] is also enabled, the following 3 preferences
will be shown in the new section.
* Virtual keyboard for work
* Spell checker for work
* Personal dictionary for work
[1]: Ied99664d3dc61b97c919b220c601f90b29761b96
a878b9500e6b89dce9738179edc27bcd0d736b7e
Fix: 120748696
Test: Manually verified as follows.
1. Build and flash an AOSP build
2. adb root
3. adb shell setprop persist.debug.per_profile_ime 1
4. adb reboot
5. Install Test DPC
6. Enable managed profile with Test DPC
7. tapas SoftKeyboard && make -j
8. adb install -r --user 0 $OUT/system/app/SoftKeyboard/SoftKeyboard.apk
9. tapas SampleSpellCheckerService && make -j
10. adb install -r --user 0 \
$OUT/system/app/SampleSpellCheckerService/SampleSpellCheckerService.apk
11. Open Settings -> System -> Languages & input
12. Virtual Keyboard -> Manage keyboards:
Make sure both "Android Keyboard" and "Sample Soft Keyboard" are shown.
13. Spell checker -> Default spell checker
Make sure "Android Spell Checker" and "Sample correction" are shown.
14. Advanced -> Virtual Keyboard for Work -> Manage keyboards
Make sure that only "Android Keyboard" is shown.
15. Advanced -> Spell checker -> Default spell checker
Make sure that only "Android Spell Checker" is shown.
Change-Id: Id88928318ab1cd92963d652ae39ca772222ea4ac
Since view id changed after fragment migration,
we correct view id.
Change-Id: If81ca06423ac62fd9f6a118be0b5fe3c93356142
Fixes: 117559309
Test: robotest
Having consistent import order will reduce chance of merge
conflict between internal and external master
Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b