Commit Graph

77 Commits

Author SHA1 Message Date
chenjean
012ba80c50 Create a method to allow child classes to define it's main switch toggle's pref key
We'd like to make the main switch toggle's preference searchable. Since we construct the preference programmatically, this would allow the preference to be automatically scrolled to when the user is brought to this page from a search result.

Bug: 372171003
Flag: EXEMPT refactor
Test: manual
Test: atest ToggleColorInversionPreferenceFragmentTest
      atest ToggleDaltonizerPreferenceFragmentTest
      atest ToggleFeaturePreferenceFragmentTest
Change-Id: I6eed7598ad296a758573318cf4bde5de30c7005c
2024-10-08 18:08:17 +08:00
Isaac Chai
23258c2b10 fix(Color correction): Display default value in slider to match the radio button
The default value for display in the radio buttons were hard-coded and was not
being reflected to the slider correctly.

Bug: 359379399
Test: locally tested + unit tests added
Flag: com.android.server.accessibility.enable_color_correction_saturation

Change-Id: I95bd0ae1d32561dbbf6b4e87efe70595c9566de8
2024-08-15 19:53:13 +00:00
Chun-Ku Lin
ec61f8bea3 Move PreferenceControllers to member variables to prevent memory leak
- Move PreferenceControllers to xml
- Clean up the PreferenceController so that it's less tied to a fragment
- Update and clean up the related robolectric test, so there are less
  mocks needed

Bug: 352606511
Test: manually check the Color Correction screen is shown correctly, and
choosing color correction options are reflected correctly
Test: atest DaltonizerRadioButtonPreferenceControllerTest
Test: atest ToggleDaltonizerPreferenceFragmentTest
Flag: EXEMPT (moving controller to xml can't be flagged)

Change-Id: I89b9366cfd7a398bb0572d34226d31d49373fd94
2024-07-15 21:34:14 +00:00
Isaac Chai
4bf537a815 Color correction saturation level settings
Adding settings UI for color saturation level change, guarded by feature
flag.

Test: Locally tested + unit tests added
Bug: 322829049
Flag: com.android.server.accessibility.enable_color_correction_saturation

Change-Id: Ifa816647b16534ab6da770584d3de0628734aed5
2024-05-15 20:58:44 +00:00
Chaohui Wang
2541381259 Fix references to resources for Settings
Bug: 293810334
Test: m Settings
Change-Id: Ie140278f492ef7e1c062ec1ecae2866c521a86aa
2023-08-08 01:56:05 +00:00
jasonwshsu
8145631ab8 Migrate to DashboardFragment in ToggleFeaturePreferenceFragment
Root Cause: ToggleFeaturePrefreferenceFragment becomes heavy when more and more features come in.

Solution: Mirgrate to DashboardFragment, a plugin-style preference controllers, can help us separate the preference and its logic into its own controller.

* This is the first step for the whole migration. Change to extend DashboardFragment and fill up the missing override functions.
* Reorder fields and functions to the recommended general approach.

Bug: 171272809
Test: make RunSettingsRoboTests
ROBOTEST_FILTER=com.android.settings.accessibility

Change-Id: I852091700a4b3b3c7bbdbc82f0b5dc47c087d61c
2022-07-13 00:40:55 +08:00
menghanli
9c9a5e4c41 Setup ToggleDaltonizerPreferenceFragment test infrastructure
Bug: 229831598
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ToggleDaltonizerPreferenceFragmentTest
Change-Id: I157a8aa63bcb6fc816b51957bd64425e710c438d
2022-06-07 08:59:20 +08:00
Sally Yuen
2de32a631f Merge "Set a pane title on the some a11y windows' root views" 2022-05-25 16:06:15 +00:00
Sally
301d621608 Set a pane title on the some a11y windows' root views
This allows a service to identify a window based on the title.
Configuration changes will restart the activity, losing a11y focus.
A11y focus may be retained by matching windows and unique ids. This
CL allows matching by window/pane title.

Test: manual
Bug: 175182916
Bug: 175184180
Change-Id: Iae4627795c2a35e57b651d9e7ce7527a0ddb1353
2022-05-17 17:36:21 -07:00
Edgar Wang
68d12953e7 Update learn more string of FooterPrefernce
Replace FooterPreference#SetLearnMoreContentDescription() with
FooterPreference#SetLearnMoreText().

This is a requirement: All links, controls, and buttons should
also have comprehensible text or tooltip text, so users can identify its
purpose, independent of context, such as when using the URL list from
TalkBack’s local context menu.

Bug: 215045903
Test: manual & robotest
Change-Id: Ib657ba336c5688c1434a58611dea3891001afe14
2022-05-13 08:13:36 +00:00
menghanli
a9e6e8c811 Fix quick settings tooltip changed when color correction fab clicked
Root cause: Users click on color correction fab to make foreground activity recreate. When recreated, the ag/13472947 makes the MainSwitch updates to ON status and get the callback for #onPreferenceToggled. It pops up the direct-use style tooltip rather than the edit style tooltip.
Soluton: Reference #updateSwitchBarToggleSwitch to early returns if values are same.

Bug: 229167631
Test: Manual testing
Change-Id: I6781fd509db7538898ad6ff0ae47124c9b9e1bc5
2022-04-20 19:18:43 +08:00
menghanli
50520c2d3f Fix inconsistent shortcut strings on accessibility setting and edit dialog
Root cause: Base class provides an override function for accessibility settings shortcut preference. But, it cannot update to the edit dialog.
Solution: Refine the resilience function and base class apply into accessibility settings shortcut preference and edit dailog.

Bug: 228830417
Test: Manual testing on all accessibility page and edit dialog
Change-Id: I84bc63a39cd9cfa7e12944dff20ee6b92879008d
2022-04-15 00:31:03 +00:00
menghanli
99a9171108 Customized accessibility framework features quick setting tooltips content
- Lowercase for one-handed mode, color correction, color inversion, extra dim in quick settings tooltips if these words are not first words.

Bug: 220655084
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityShortcutPreferenceFragmentTest ToggleFeaturePreferenceFragmentTest LaunchAccessibilityActivityPreferenceFragmentTest ToggleAccessibilityServicePreferenceFragmentTest
Change-Id: I309ca48cecb80942112c9d5adde5857c062706c8
2022-03-10 06:40:54 +08:00
menghanli
01d02d3d8e Show different tooltips for QS features auto-added and non-auto-added
There are 2 different kinds of auto-added / non-auto-added subtext in QS tooltips for framework features. Show animation in the settings page for full flow for non-framework services.

Bug: 218968108
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityQuickSettingsTooltipWindowTest AccessibilityShortcutPreferenceFragmentTest
Change-Id: I462cfcece959df8b9d97fab8e28337bceca9e25e
2022-02-15 16:09:30 +08:00
menghanli
27e442ded7 Polish humanize strings for color correction page
- Add intro for purpose or behavior
- Remove correction mode category title
- Reformat deuteranomaly, protanomaly, and tritanomaly title and summary

Bug: 218408547
Test: Manual testing
Change-Id: I0cca0c063ab15b4065c0e3a277181a8cf44a70ce
2022-02-14 10:00:30 +08:00
menghanli
9e4a9d6742 Support color correction quick settings tooltips when feature on
Bug: 210356011
Test: Manual testing
Change-Id: I0a981850d0cf9db0154b1381f365a5fd4b18a9f1
2022-01-26 07:55:27 +08:00
menghanli
ba9f097b03 Integrate Accessibility quick setting tooltips widget into ToggleFeaturePreferenceFragment
- Show tooltips when main switch is on
- Reshow tooltips when rotate device
- Add abstract functions for child components to show tooltips

Bug: 210356011
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ToggleFeaturePreferenceFragmentTest
Change-Id: I543d8af7d24a9fc82659625961850f975a7a0787
2022-01-26 07:54:57 +08:00
Daniel Hsieh
55bc49860b Refactor SettingsContentObserver and add it to follow typing feature.
Refactor SettingsContentObserver and rename it to
AccessibilitySettingsContentObserver. Besides, we register it to observe
follow typing feature preference value.

The reasons behind refactor:
1. We change callback signature due to the consistency for register it
by preference key, not by Uri.
2. We refactor the default preference key to a seperate method. Since
the default value is related to accessibility, we rename it with
accessibility prefix.
3. We can register different callback for difference collections of
preference keys.

Default preference keys: They existed in the previous constructor.
1. Settings.Secure.ACCESSIBILITY_ENABLED
2. Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES

Bug: 194668976
Test: make RunSettingsRoboTests ROBOTEST_FILTER=
           AccessibilitySettingsTest
           AccessibilitySettingsContentObserverTest
           AccessibilityShortcutPreferenceFragmentTest
           MagnificationFollowTypingPreferenceControllerTest
           ToggleFeaturePreferenceFragmentTest
           ToggleScreenMagnificationPreferenceFragmentTest
Change-Id: Iafd27e044ebe2536ae7ae55c1c80af54f7f0f822
2022-01-20 08:38:27 +00:00
menghanli
bae720ffc3 Provides TC ID for accessibility framework feature for "about" and "learn more" part
Goal: Improve readability which is a bit difficult because of string concatenation for accurate translation.
Root cause: In some locales, framework features name would be a word rather than a product name. Hence it need to be in the different position in a sentence.
Solution: Use whole sentence to translate instead of concatenating the string could solve this issue.

Bug: 185478543
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityFooterPreferenceControllerTest
Change-Id: Id198805329be9c773df87f38a074ae956e4d0cdb
2021-07-14 15:15:48 +08:00
menghanli
a606c43adf Provides TC ID for accessibility framework feature for "shortcut" part
Goal: Improve readability which is a bit difficult because of string concatenation for accurate translation.
Root cause: In some locales, framework features name would be a word rather than a product name. Hence it need to be in the different position in a sentence.
Solution: Use whole sentence to translate instead of concatenating the string could solve this issue.

Bug: 185478543
Test: Manually testing
Change-Id: I5a0f04e7ab0d7aa789e10ce6f611cde9bf3660c1
2021-07-06 15:53:28 +00:00
menghanli
1949a5d69f [Material Next] Move “main switch” right below illustration
Bug: 187688296
Test: Manual testing
Change-Id: Ic36b6deaad410fce49dcc19861a11307fb479f55
2021-05-12 00:56:50 +00:00
menghanli
cdcc3ae52c [Material Next] Update accessibility tool footer style
1. Implement API extends Material Next FooterBarPreference and support Accessibility API for icons
2. Apply solutions to accessibility tools and framework tools in
accessibility settings page.
3. Apply DashboardFragment for Caption preference for xml parser

Bug: 185973304
Test: make RunSettingsRoboTests -j52
Change-Id: I6b80bc80190d6666e3fbcd462442a9f2c0e60bba
2021-04-30 07:19:29 +08:00
Stanley Wang
86cc0579f3 Replace the SwitchBar with MainSwitch.
- Update wi-fi calling switch.
- Update the switches in Accessibility

Fix: 178673860
Fix: 177968565
Test: Run robotest and apply the widget in Settings and see the ui
Change-Id: Id10e6a110f418ea500a2eaf3c54752bef4f36507
2021-02-23 16:21:52 +08:00
jasonwshsu
1a1ae82460 Modify flow in ToggleFeaturePreferenceFragment
* Show edit shortcut dialog should belong to the basic feature, so move
them back to ToggleFeaturePreferenceFragment
* Add test cases for UserShortcutType to prepare to further refactor

Bug: 158540780
Test: atest ToggleFeaturePreferenceFragmentTest
Change-Id: Ia84bea5581f85d199f395b2065652ce69738abbf
2020-09-26 04:30:04 +00:00
Edgar Wang
dd032d3734 Update inclusive language for Accessibility Settings
Update language to comply with Android's inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for reference

Bug: 161896447
Test: robotest & manual
Change-Id: I67032d4beb7c8ae6b5a3271ea75ca38be4351484
2020-08-06 14:51:19 +08:00
jasonwshsu
d2572c3295 Change to use ComponentName instead of String in log.
* align framework log to use the same format in ag/11250012

Bug: 151285965
Test: manual test
Change-Id: Ia76e3d88c116ffa37fb022aed2866acc0f315bd9
2020-05-09 22:18:18 +08:00
jasonwshsu
e76f541f7c Logs accessibility service user trigger status.
* Uses the atom AccessibilityServiceReported in westworld.

Bug: 151285965
Test: make statsd_testdrive && ./out/host/linux-x86/bin/statsd_testdrive 267
Change-Id: Id6a109e4e90c09f2310d92533cd4632875712f81
2020-04-29 20:16:14 +08:00
Peter_Liang
cfe3e454ac Tutorial improvement for Accessibility shortcut (1/n).
Because can't save the value into setting keys for the service before version R, and in order to let tutorial dialog can get the consistent value, using alternative that each fragment with shortcut to must implement the new abstract method.

Bug: 148989018
Test: manual test
Change-Id: Iba2a7daa70eb00f0bba37317c9355531fbb77628
2020-04-23 12:18:23 +08:00
Hiroki Sato
0e75d475ec Hide Bluetooth, Reset, Accessibility Settings in ARC
This is an upstreaming change of http://ag/8541963 and
http://ag/10296201 to hide some items from settings search.

This CL also adds javadoc to some settings classes to fix pre-upload
warnings.

Bug: 153704887
Test: Manual. In ARC build, "bluetooth" and "accessibility" no longer shows related settings.
Change-Id: Ic3e9217944251adbea1bdd67baf66d3a9e89583a
2020-04-10 16:00:57 +09:00
menghanli
5638acbc82 Use HTML text preference for rich content
Implements for Color Correction, Color Inversion, and Magnify

Bug: 148837311
Test: Manual test
Change-Id: I5e5b311b6ae8e42cca3ef9048c8b8b0de52d13bc
2020-02-12 19:12:26 +08:00
menghanli
6eb3912f31 Accessibility Service & Shortcut Redesign - Primary action - toggle button design
Implements DividerSwitchPreference to replace ToggleSwitch

Bug: 142528112
Test: Manual test

Change-Id: I0d80d16bfa941f7ee333a2c5680a25a26c42809d
2020-02-07 20:49:13 +08:00
menghanli
1869e01f3e Fix Startup fails when click "Color correction" of the selection menu in "Color correction" page
Setting provider observar is register onResume() and release of onPause().
The selection menu is activity-base dialog to cause the app does not to monitor the value change.

Bug: 148832544
Test: Manual test
Change-Id: I01354d5096c00ba39336e27aa45169d8768f8594
2020-02-04 17:44:40 +08:00
menghanli
b82931520f Support accessibility shortcut secondary action (11/n)
Refactor current shortcut design to base fragment and provide
protected function to customize the legacy design,
magnification or no need shortcut app.

Bug: 142530063
Bug: 142531156
Test: make RunSettingsRoboTests2

Change-Id: I51c951ef8f819a1940ddfe33b009b40ed5ec0530
2020-02-02 10:51:44 +08:00
menghanli
bf46032074 Support accessibility shortcut secondary action (10/n)
Integrate with Talkback enabled and change the behavior as below:
1. Show 3-finger swipe up from bottom summary
2. Show 3-finger icons for edit shortcut dialog
3. Dismiss the running the edit shortcut dialog

Bug: 142530063
Bug: 142531156
Bug: 147989432
Test: make RunSettingsRoboTests2
Change-Id: I2f34b8eebfdc5a385d72402e95a8b1d0bde4a428
2020-01-21 15:58:43 +08:00
Menghan Li
9fbf51d450 Merge "Support accessibility shortcut secondary action (9/n)" 2020-01-20 13:51:13 +00:00
menghanli
756d819c42 Color correction improvement (5/n)
"Use Color correction" should be replaced by "Correct colors"

Bug: 145968068
Bug: 147988288
Test: make RunSettingsRoboTests2
Change-Id: I90ef36a99b34a82eb9f29f8b79d9aaa8d56441d1
2020-01-20 14:29:30 +08:00
menghanli
87147f55f0 Support accessibility shortcut secondary action (9/n)
Reorder layout and add title for each category block.

Bug: 142530063
Bug: 142531156
Test: make RunSettingsRoboTests2
Change-Id: I0f4067aaf9c42c3ce065eebd0e75ad4153f7e9dc
2020-01-18 00:24:20 +08:00
menghanli
5d0f336fec Support accessibility shortcut secondary action (8/n)
Integrate with the multiple shortcut selections and change the behavior as below:
- Get the shortcut type from system provider or shared_prefs if this is first time to use.
- Update the shared_prefs for what user seen.

Bug: 142530063
Bug: 142531156
Test: make RunSettingsRoboTests2
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityUtilTest
Change-Id: I58aeb960e2c4aa0bc2432be34c1372c0de89117a
2020-01-16 22:57:11 +08:00
menghanli
cb718d7d25 Color correction improvement (4/n)
Integrate with the multiple shortcut selections and change the behavior as below:
- Register a setting content observer to monitor the service on/off
status to update switch toggle UI.

Bug: 145968068
Test: make RunSettingsRoboTests2
Change-Id: Ib195aab720d965a7a3047070999783fe9525bfd9
2020-01-16 10:35:42 +08:00
jasonwshsu
fb576356aa Accessibility shortcut secondary action - handle all preferred shortcut type key
- save and restore all preferredShortcutType: SOFTWARE, HARDWARE, TRIPLETAP

Bug: 142530063
Test: manual
Change-Id: I7dd714d1516f49e89c42822241f9cb2b41ae2d2e
2020-01-14 12:15:14 +08:00
menghanli
334dc4f20b Support accessibility shortcut secondary action (7/n)
Implements sharedPreference to keep the user preferred shortcut for each
service.

Bug: 142530063
Bug: 142531156
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ToggleFeaturePreferenceFragmentTest
Test: make RunSettingsRoboTests2
Change-Id: I2a7c54ddc32764f6d88f2efed87982d469acc183
2020-01-13 12:34:04 +08:00
jasonwshsu
8ef01d25fb Accessibility shortcut secondary action - save and restore shortcut key
- Implement onCheckboxClicked() to save shortcut key
- restore shortcut key when onViewCreated()
- Use preferredShortcutType to handle settings key

Bug: 142530063
Test: make -j52 RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityUtilTest
Change-Id: Iabe636641968d346e52becea19b6e201ea5bc1fb
2020-01-06 13:56:48 +08:00
menghanli
a5d8e12766 Support accessibility shortcut secondary action (6/n)
Implements new edit shortcut dialog selection and save what user
prefered key back for color inversion, color correction, magnifiction,
downlaoded service - LEGACY, INVISIBLE, INTUITIVE case.

Bug: 142530063
Bug: 142531156
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityUtilTest
Test: make RunSettingsRoboTests2
Change-Id: I94607db918047ae4082457dd33f17c8675934e2c
2019-12-31 17:42:06 +08:00
menghanli
b7306044c9 Create settings for color inversion (2/n)
Provide a setting for new color inversion design.

Bug: 146019226
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ColorInversionPreferenceControllerTest
Test: make RunSettingsRoboTests2
Change-Id: I1d081c6321ee96d48e8f52304893e4a5fb59333a
2019-12-26 06:39:44 +00:00
jasonwshsu
0dd53520a5 Accessibility shortcut secondary action - improve shortcutPreference
1. Use setWidgetLayoutResource() for the controllable widget at the
right side.
2. Improve listener structure.
3. Extend checkbox clickable area.

Bug: 142530063
Test: make -j52 RunSettingsRoboTests ROBOTEST_FILTER=ShortcutPreferenceTest
Change-Id: Iebb9f62653914a0d7200c627f01cf7953d576960
2019-12-24 10:37:55 +08:00
Kevin Chang
ea3d3520c3 Support accessibility shorcut secondary action (4/n)
Replace metrics constants of different edit dialogs.

Bug: 142531156
Test: Maunal
Change-Id: I52b3d481d815edab17b954283ae5e366723a842c
2019-12-18 16:37:14 +08:00
Kevin Chang
e65ed3ebb0 Support accessibility shorcut secondary action (3/n)
Combine the UI with both shortcut preference and edit dialog.

This CL only contains UI and related connections.
Related logic implementation will be added in next CL.

Since the drawable resources are not ready, put the mock
drawables as temporary. Once the drawbles are provided by UX,
create a CL to replace the related resources.

Bug: 142530063
Bug: 142531156
Test: Maunal
Change-Id: I21e4c6e99c2d1731c15d7c9553594160b8809eb5
2019-12-18 09:25:16 +08:00
menghanli
657189062f Color correction improvement (3/n)
1. Add summary in accessibility settings page by controller
2. Fix "XmlControllerAttributeTest" for ColorCorrection

Bug: 145968068
Bug: 146319816
Test: make RunSettingsRoboTests2
Change-Id: Ia4dfb2290953eea33c266bd9f7c825c956bcc93a
2019-12-17 13:44:40 +08:00
menghanli
0eae582909 Color correction improvement (2/n)
Implement RadioButtonPreference and its controller to replace ListPreference
New strings for accessibility daltonizer service
- radio button title and summary

Bug: 145968068
Test: make RunSettingsRoboTests ROBOTEST_FILTER=DaltonizerPreferenceControllerTest
Change-Id: Ic91d8648906f35991682a259879095cbbd4cc678
2019-12-12 05:14:39 +00:00
Kevin Chang
a6308c09a8 Change string of switchbar and installed service category title
Bug: 122897712
Test: Visual
Change-Id: I0f56b4b7375e651a74189dd17e6b3bd8b99ccfca
2019-10-14 11:05:59 +08:00