Commit Graph

54 Commits

Author SHA1 Message Date
danielwbhuang
7aaff67c3c Log metrics for PK settings topics
1. Log metrics for touchpad settings
2. Log metrics for modifier keys remapping
3. Log metrics for physical keyboard settings

Bug: 271391879
Test: manual, atest
Change-Id: I3f948927719ec6fc3dca78cdcb995c3037d8f97f
2023-06-26 16:33:10 +08:00
Vincent Wang
818f77cd1f Test Fix SettingRobolectricTest Fail
Bug: b/275023433
Test: NA
Change-Id: If2dcb8f6c196327129ccc9375b190e394c994efa
2023-05-09 06:26:39 +00:00
danielwbhuang
0b79c92348 [Fixed] Reverse scrolling setting is reversed
If useTouchpadNaturalScrolling is false, "Reverse scrolling" should be on.

[The API value]
useTouchpadNaturalScrolling: false

[The expected UX behavior]
Reverse scrolling: on
fingers upward, scroll up, content moves down

The description of "useTouchpadNaturalScrolling":
Returns true if moving two fingers upwards on the touchpad should scroll down, which is known as natural scrolling.

The description of "Reverse scrolling":
Content moves up when you scroll down.

Bug: 280047007
Test: manual and passed atest TrackpadReverseScrollingPreferenceControllerTest
Change-Id: Ia5e30fa14b599ddcffae99005114f10412ccad3c
2023-05-03 23:59:55 +08:00
Wilson Wu
ce7ad1f8a0 Merge "Fix wrong user in personal profile" into udc-dev 2023-03-31 09:56:56 +00:00
Wilson Wu
a7620427b5 Fix wrong user in personal profile
If the user is profile, it should use the current
user's profile parent to create the context instead
of always using the primary user(system user).

Bug: 264867495
Test: Manual test with work profile enabled, multi user flow, etc
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableVirtualKeyboardFragmentTest
Change-Id: I66d1462441359c40dda2a38c7534500791db9c83
2023-03-29 17:36:34 +08:00
danielwbhuang
cc749159df Open the settings page for a specific physical keyboard
1. Check open from a notification
2. Check open from Bluetooth entry
3. If the inputDeviceIdentifier is not null, open the next page
   directly.
4. Add extra to record the class of sender for the future metrics.

Demo: http://screencast/cast/NDU4MTYxOTIzMTg4MzI2NHxiYTQ0ODE5Ny02YQ

Bug: 269212353
Test: manual, atest
[Pass] atest KeyboardSettingsPreferenceControllerTest
[Pass] atest PhysicalKeyboardPreferenceControllerTest

Change-Id: Ie874003260896bbb949806623913e70486e4731d
2023-03-28 14:15:08 +00:00
Lifu Tang
caa1b51ef2 Revert "Remove duplicate strings."
Revert submission 19748582-settings_yesno

Reason for revert: Common strings in English could be translated into different strings in other languages.

Reverted changes: /q/submissionid:19748582-settings_yesno

Bug: 272603842
Test: build and open Settings app
Test: atest SettingsRoboTests
Change-Id: Iaad301c5513478fb95e40987ea3ccb4f923d71fa
2023-03-15 22:39:24 +00:00
danielwbhuang
cf4be05b64 Update KeyboardLayoutPickerControllerTest
The logic is changed, so we need to update the test. (https://screenshot.googleplex.com/AnrJgmGfK2fPxmQ.png)

Bug: 270109384
Test: atest KeyboardLayoutPickerControllerTest
[1/8] com.android.settings.inputmethod.KeyboardLayoutPickerControllerTest#isAlwaysAvailable: PASSED (5.876s)
[2/8] com.android.settings.inputmethod.KeyboardLayoutPickerControllerTest#test_createPreferenceHierarchy_shouldAddTwoPreference: PASSED (192ms)
[3/8] com.android.settings.inputmethod.KeyboardLayoutPickerControllerTest#testOnDeviceRemove_getSameDevice_shouldFinish: PASSED (5.797s)
[4/8] com.android.settings.inputmethod.KeyboardLayoutPickerControllerTest#testLifecycle_onStart_shouldRegisterInputManager: PASSED (1.495s)
[5/8] com.android.settings.inputmethod.KeyboardLayoutPickerControllerTest#test_createPreferenceHierarchy_shouldAddOnePreference: PASSED (75ms)
[6/8] com.android.settings.inputmethod.KeyboardLayoutPickerControllerTest#testOnDeviceRemove_getDifferentDevice_shouldNotFinish: PASSED (366ms)
[7/8] com.android.settings.inputmethod.KeyboardLayoutPickerControllerTest#testLifecycle_onStop_shouldCancelRegisterInputManager: PASSED (65ms)
[8/8] com.android.settings.inputmethod.KeyboardLayoutPickerControllerTest#testLifecycle_onStart_NoInputDevice_shouldReturn: PASSED (309ms)

Change-Id: I018873cba9e73c6d684d828858cc1b08d3f2f7f9
2023-03-07 16:31:15 +08:00
danielwbhuang
1f3261467d Set preference visible to false when there is no keyboard.
1. Physical keyboard settings should only show up if at least one PK is connected.
2. Update tests.
3. Fix NullPointerException.

Bug: 269983475
Bug: 270109384
Bug: 271357910
Test: atest and manual
Change-Id: If7798587fb386dbf669fc249cab304d91a26879b
2023-03-03 18:16:55 +08:00
Josep del Rio
8411d1c663 Use InputSettings in Settings app
At the moment the settings app will make use of certain exposed
functions in InputManager that are being moved to a separate
class. This CL migrates those usages to the new internal API.

Bug: 267758905
Test: compiles, and should pass presubmit
Change-Id: I30dcb83aa1cc8830650fe856775a462ed37c2dda
2023-02-10 16:37:49 +00:00
danielwbhuang
6007a4bc0c Add Trackpad settings tests
1. TrackpadBottomPreferenceControllerTest
2. TrackpadPointerSpeedPreferenceControllerTest
3. TrackpadReverseScrollingPreferenceControllerTest
4. TrackpadTapToClickPreferenceControllerTest

Bug: 247080509
Test: manual, make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.inputmethod.*"
Change-Id: I61d6dd9bb807ec636e4103efc5b9ccc28d5bc2c1
2023-02-01 14:37:04 +08:00
Daniel Huang
aa88bca296 Merge "Integrate UI with APIs for trackpad settgins." 2023-01-12 05:33:48 +00:00
danielwbhuang
6125f9a9fa Integrate UI with APIs for trackpad settgins.
1. Integrate with trackpad settings dummy APIs.
2. Integrate with trackpad gesture APIs.

Bug: 247080509
Test: manual, make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.inputmethod.*"
Change-Id: Ic180e28896bb0a5aa71eb0eb63d3824bd342ff45
2023-01-11 22:42:15 +08:00
jasonwshsu
829a671265 Fix preferences under Related category can not launch its own page in bluetooth device details page
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
2023-01-05 10:48:55 +00:00
Vaibhav Devmurari
aa3ec01f9f Change keyboard layout parameters to include Layout type.
Test: atest KeyboardLayoutPickerControllerTest
Bug: 259530132
Change-Id: I112d2c25ca5eeacee445e247bf40a57d358e7f42
2022-12-21 00:32:21 +00:00
Kweku Adams
5949fccc7a Remove duplicate strings.
"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
2022-08-26 00:07:08 +00:00
Jonathan Scott
b7f4f56cad Add missing settings strings.
Also re-enable and fix tests.

Test: manual
Fixes: 226183482
Fixes: 218799125
Fixes: 219375624

Change-Id: I9605f1f4e2e834baf63e015e96639567c5481b5f
2022-05-05 09:12:59 +00:00
Wilson Wu
ddb5147649 Fix NPE if keyboard settings is launched by work apps
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
2022-02-10 15:13:26 +08:00
Wilson Wu
56d8703fcb Introduce AvailableVirtualKeyboardFragmentTest
Add a test for AvailableVirtualKeyboardFragment

Fix: 207452897
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableVirtualKeyboardFragmentTest
Change-Id: I83d30ae9d085c2b90fd16e5f6c4100bb82b6b588
2022-01-25 14:29:24 +08:00
Wilson Wu
bc72945561 Use AvailableVirtualKeyboardFragment for IME settings
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
2021-09-15 18:10:47 +08:00
Raff Tsai
74942cee5e Migrate VirtualKeyboardFragment to DashboardFragment
Fixes: 134451794
Test: robolectric
Change-Id: I2a40090178b3daea894bdad570549c7bfa34e4e6
2019-06-13 15:17:00 +08:00
Fan Zhang
9859b8b0b0 Fix failing robotest
Fixes: 124531152
Test: robotests
Change-Id: I4442ae543b062ef17b4bfd828134ede879d2b22d
2019-02-15 16:15:39 -08:00
James Lemieux
f1dade40d2 Use binary resource support in robolectric
The resources available to tests are now exactly the merged resources
located in the APK under test.

Bug: 74359828
Test: make -j56 RunSettingsRoboTests
Change-Id: I050db81a92decefea23314b5ec7a62f77ff4bb2b
2018-12-12 19:53:49 -08:00
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
tmfang
f12e6adcdc Settings Fragment Migration (Fix test cases)
Fix all Roboletric test cases.
In this CL, some test cases are broken.
So, We ignored these test cases temporarily.

Test: make RunSettingsRoboTests -j56
Bug: 110259478
Change-Id: I1a3075438a614432a2de4f2d96d8abf9a83ce58c
2018-07-11 18:24:51 -07:00
tmfang
99cc23d0da Settings Fragment Migration (Change imports)
This commit *only* changes imports and optimize imports.
We don't do anything else.

This patch can't compile pass and run test case.
We will update other patches to fix these problem.

Change list.

1. import android.app.Fragment; ->
   import androidx.fragment.app.Fragment;
2. import android.app.DialogFragment; ->
   import androidx.fragment.app.DialogFragment;
3. import android.app.ListFragment; ->
   import androidx.fragment.app.ListFragment;
4. import android.app.LoaderManager; ->
   import androidx.loader.app.LoaderManager;
5. import android.content.AsyncTaskLoader; ->
   import androidx.loader.content.AsyncTaskLoader;
6. import android.content.Loader; ->
   import androidx.loader.content.Loader;
7. import android.app.FragmentTransaction; ->
   import androidx.fragment.app.FragmentTransaction;
8. import android.app.FragmentManager; ->
   import androidx.fragment.app.FragmentManager;
9. import android.app.LoaderManager.LoaderCallbacks; ->
    import androidx.loader.app.LoaderManager.LoaderCallbacks;

Bug: 110259478
Test: Can't test it.
Change-Id: I0a3f98fff34a3494a839c3c42aeabcec3df2c8b3
2018-07-11 18:23:51 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
android-build-team Robot
02ec86a17b Merge "Establish permanently unavailable settings" 2018-05-09 18:14:32 +00:00
Matthew Fritze
f87a1f3f41 Establish permanently unavailable settings
Distinguish between settings which are permanently unavailable on
the device, and temporarily unavailable. This enables us to restrict
which setting slices are exposed in onSliceGetDescendants.

The primary changes in this CL are renaming:
"DISABLED_UNSUPPORTED" -> "UNSUPPORTED_ON_DEVICE"
to be more clear the the setting will cannot be accessed on the device, and,
adding a new enum to encapsulate settings which are currently unavailable, but
could be enabled in the future.

Also remove UNAVAILABLE_UNKNOWN. Devs should never need this enum.

Bug: 78910582
Bug: 79245656
Test: robotests
Change-Id: I58821a6cfd6134b3b351657b6edf5f74ead00643
2018-05-09 08:36:59 -07:00
jyhshiangwang
4d015b17b3 Use ListFormatter to join strings
Currently in Settings we are using R.string.join_many_items_first, R.string.join_many_items_middle and R.string.join_many_items_last to manually join strings. The join code is messy and the joined string is incorrect in some languages, so we migrate all string join to just use ListFormatter.getInstance().format().

Bug: b/78248791
Test: robotests
Change-Id: I898339978e6e2027587e28994b0280fa46821fd6
2018-05-02 11:15:32 +08:00
rafftsai
9bd1ac38c5 InputMethodAndSubtypeEnabler use DashboardFragment
- Move preference log to InputMethodAndSubtypePreferenceController
- Add input_methods_subtype.xml

Test: manual
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.inputmethod
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.core
Test: atest UniquePreferenceTest

Change-Id: I45b6e8303d94ef07d17016eeed1d728432a70d98
2018-04-25 17:34:04 -07:00
TreeHugger Robot
a94f9175c0 Merge "Fix a incorrect class cast in GameControllerPreferenceCtrl" 2018-04-25 01:36:51 +00:00
Fan Zhang
7d7a9b1837 Fix a incorrect class cast in GameControllerPreferenceCtrl
Also convert the controller to TogglePrefCtrl, and register it in xml.

Change-Id: Ifbc95364b47690117b2875cba1cdc4761ad205be
Bug: 71972185
Test: make RunSettingsRoboTests
2018-04-25 00:33:22 +00:00
Fan Zhang
ee3b74a61f Create a new string for keyboard disconnected state
Change-Id: I454bbb3b8e0ee22c0f7a5a340b86dfd5607de86e
Fixes: 77957016
Test: robotests
2018-04-23 14:59:19 -07:00
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
tmfang
f1191f6bf9 KeyboardLayoutPickerFragment uses DashboardFragment
- Build a controller to generate a list of preferences and add to screen.
- Move some logic to controller.
- Add some test cases for controller.

Test: manual
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.inputmethod
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.core
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.dashboard
      atest UniquePreferenceTest
Change-Id: I4ebe486ade3439b9814b11866c402dcf881f21a7
2018-04-17 17:35:29 -07:00
Emily Chuang
5e3718d354 Migrate UserDictionaryList to DashboardFragment
- Build a controller to generate/manage a list of preferences.
- Move some logics to the controller and add tests.

Test: manual
Test: make RunSettingsRoboTests -j
      atest UniquePreferenceTest SettingsGatewayTest
Change-Id: Ia3d885cb8917c7d5498b87818e24b938f0d95dbb
2018-04-17 12:27:24 -07:00
Yohei Yukawa
7129b374bb Reenable pre-N style hard keyboard layout settings
This CL logically reverts Settings app changes for Bug 25752812, which
aimed to improve UX by tightly integrating physical keyboard layout
with input method subtype.

What went wrong is that the concept of input method subtype is not
widely accepted by the ecosystem actually.  Until we figoure out any
other better way here, let's revert back to the good old way that
enables users to specify multiple keyboard layouts per physical
keyboard device, not one layout per one input method subtype.

Note that we cannot simply revert the CL that originally introduced
the new flow [1] because it was indeed a huge CL that also touched IME
settings, which we want to continue using.  In that sense, this CL is
a kind of re-implementation of the previous style on top of the recent
language settings flow.

Note also that a fix [2] fox Bug 25062009 was also ported from
previous InputMethodAndLanguageSetting to
KeyboardLayoutPickerFragment.

 [1]: I728d7ee185827ed328c16cb7abce244557a26518
      976bb3f459
 [2]: I4483dfc89afc8d148b2cfa7c6a5f66d2a02f712a
      17b6319884

Fix: 66498367
Test: make -j RunSettingsRoboTests
Test: Manually done with two Bluetooth keyboards
Change-Id: I7a2ed6dd39dcd8207d3d94e12cd01d5d67ba4bb5
2018-03-09 01:54:55 +00:00
James Lemieux
22a39c2b93 Use external/robolectric-shadows/run_robotests.mk
This allows Settings to test against the latest framework changes.

Also replaced TestConfig with traditional robolectric.properties.

Bug: 73173204
Bug: 73892008
Test: make -j56 RunSettingsRoboTests
Change-Id: I3135b4fa5f095ba79b282a76f45dd9baa2584bc7
2018-03-04 03:50:08 -08:00
Ben Lin
c28b46f2ea Introduce boolean flags to show/hide items for Language & input.
This adds seven new boolean flags:
config_show_phone_language
config_show_virtual_keyboard_pref
config_show_physical_keyboard_pref
config_show_spellcheckers_settings
config_show_tts_settings_summary
config_show_pointer_speed
config_show_vibrate_input_devices

Which when individually set to false, will hide the item from "Language
& input" in System. It will also hide them from surfacing in search
results.

Bug: 62379555
Test: Individual controller tests are all updated.

Change-Id: I9ef1c3037b0bec6ffa5a627006507f4f16e534c4
2018-01-10 11:27:58 -08:00
jeffreyhuang
cbfb099a40 Rename SDK_VERSION_O to SDK_VERSION
Test: make RunSettingsRoboTests -j40
Change-Id: I6715062d8addadda441e32809db1af55f15e3a90
2017-12-05 16:43:54 -08:00
jeffreyhuang
153d14b0f3 move inputmethod test package to sdk 26
Test: make RunSettingsRoboTests -j40
Change-Id: I4d0435d8833bf1ff767688109e239c6729fdead9
2017-11-30 12:28:14 -08:00
Maurice Lam
e18902ec67 Update Robolectric to 3.4.2
Bug: 66693279
Test: m RunSettingsRoboTests
      m RunSettingsRoboTests-jacoco
Change-Id: I9df619c3d68f0af2ee2ae944a15998275129f7c2
2017-09-22 18:34:00 +00:00
Fan Zhang
31d8a89220 Misc polishing fixes for Settings
- Never return null when querying userDictionaryLocales
- Auto mirror mobile setting icon in RTL to match status bar.

Fixes: 65298627
Fixes: 65361092
Test: robotests
Change-Id: I0f9827f7bc23baf4895712c0f86584aeccfb9c73
2017-09-06 10:58:52 -07:00
Fan Zhang
0d64577205 Fix search indexing for game controller "use vibrator"
Change-Id: I34848a58b5ac4cdf58c7dd5f40677b78e764f2dc
Fix: 64035933
Test: robotests
2017-07-26 21:51:57 +00:00
Fan Zhang
6539c9a1d0 Load only unique dictionary words
- Move UserDictionarySettings to sub package
- Convert cursor to loader

Fix: 22058788
Test: robotests

Change-Id: I1e8828abee58362b815abc210c044b678bf9d578
2017-07-13 16:05:35 -07:00
Andrew Sapperstein
9f1e911759 Refactor test runner to use static list of resource paths
Previously everything lived in an inner class method of
SettingsRobolectricTestRunner. That method has now been turned into
a static method so that it can be called by other runners.

Bug: 62460102
Test: robotests
Change-Id: I6612b1f26404587301c534c8ba60e39d59d6c840
2017-06-09 09:21:26 -07:00
Fan Zhang
b1bdf90c35 Bidi wrap keyboard names before displaying them.
This is needed because keyboard names can contain characters from mixed
locale. Without Bidi wrapping the labels will be garbled and not
readable.

Change-Id: I47668a65d7bef8828ad0424097834929ec12700d
Fix: 37353900
Test: make RunSettingsRoboTests
2017-04-20 11:23:14 -07:00
Fan Zhang
2a9255b33c Misc fixes for items under system setting
- Show summary under virtual keyboard: list all avaiable keyboards
- Set about phone subtext to device model string.
- Update DND Suggestion text

Change-Id: I20acffcf691d1354c7636f5851b376099844700f
Fix: 35959817
Fix: 36395109
Test: robotests
2017-03-25 02:43:23 +00:00
Doris Ling
34cfd2e24f Combine Language & region and Input & gestures in System settings.
Merge preferences into one page, and update test.

Bug: 34976047
Test: make RunSettingsRoboTests
Change-Id: I5f15192e42f6054c02d4c8ffa9f25db3075da409
2017-02-06 11:46:48 -08:00