Commit Graph

137 Commits

Author SHA1 Message Date
Riley Jones
75500c02b2 Cleanup of deprecated A11y settings functions
Bug: 367414968
Test: atest com.android.settings.accessibility
Flag: EXEMPT cleanup
NO_IFTTT= Change does not alter preference list

Change-Id: I64f5f7fba112b6fb5035b88f01c04d9ee309f2c0
2025-01-21 21:07:34 +00:00
Riley Jones
dec6b37fe4 Merge "Cleanup deprecated functions in AccessibilityUtil" into main 2024-12-06 18:25:34 +00:00
Riley Jones
6107fd8591 Cleanup deprecated functions in AccessibilityUtil
Flag: EXEMPT code cleanup
Bug: 367414968
Test: atest com.android.settings.accessibility
Change-Id: If69a964720fc91ce0ad3661f956c4818f4f2f9dd
2024-12-05 23:45:33 +00:00
Daniel Norman
908bd398bd Adds null checks on callers of Nullable method getA11yServiceInfo().
Also renames mPackageName to mFeatureName. This string is used as the
user-visible feature name, e.g. TalkBack, not the APK package name.

Fix: 382054546
Test: n/a (existing presubmit)
Flag: EXEMPT minor bugfix
Change-Id: I1ce6902612d89bbb68bddf30227ca231ea98dce7
2024-12-04 19:41:07 +00:00
Riley Jones
acccaff128 Cleaning up quick settings flag in Settings app
Removes all instances of a11y_qs_enabled. Any code that would be nontrivial to remove has been deprecated for later cleanup.

Test: atest com.android.settings.accessibility
Flag: EXEMPT flag cleanup
Bug: 367414968

Change-Id: I81f3c9cee377535eaa552a170d58ec1a79d1da65
2024-12-02 20:38:10 +00:00
Chun-Ku Lin
919019ca56 [Flag cleanup] edit_shortcuts_in_full_screen is always on now
- Cleaned up the code that won't be executed when the flag is on
- Remove unused resources

Bug: 300302098
Test: Manually verify the user can change the shortcut type, and the
changes are saved
Test: atest com.android.settings.accessibility
Flag: EXEMPT removing com.android.settings.accessibility.edit_shortcuts_in_full_screen

Change-Id: I1e32b724ca3da909feda55e20fb1d51dc4680c09
2024-07-25 22:49:02 +00:00
Chun-Ku Lin
09efbe453c Pass user preferred shortcut types when launching the
AccessibilityShortcutsTutorial.

**Root cause**
When toggle the shortcut, it asks the AccessibilityManager to turn on
the shortcut and update the Settings data. Internally, the
AccessibilityManager delegate the work to AccessibilityManagerService
via a oneway binder call.

In the past, when launching the AccessibilityShortcutsTutorial, we
assume the shortcut selection are saved in the Settings before launching
the AccessibilityShortcutsTutorial. So we pass whatever are in the
Settings as what the user has selected to the tutorial.
This is not true anymore since we use the oneway AIDL call to do the
updates. The data in Settings may not yet be  updated before we use it to
launch the tutorial.

Since the user preferred shortcuts are always set before we attempt to
launch the AccessibilityShortcutsTutorial, we can rely on it instead of
the Settings value to launch the AccessibilityShortcutsTutorial for the
selected shortcut options.

**Changes in this cl**
- Mechanical refactor to extract the lines to get the user preferred
  shortcut into a method.

- Use the new method to grab the shortcut options to pass to the
  AccessibilityShortcutsTutorial to prevent the crash.

Bug: 341176890
Test: manual
    - Modify the AccessibilityManagerService locally to delay processing
      the request to update the shortcut options in Settings data
    - Turn on the shortcut toggle, and verify the app won't crash

Test: atest com.android.settings.accessibility
Flag: EXEMPT bugfix (low risk + mechanical refactor)
Change-Id: Id3cc4cc5f6667061545955881632544472aedd95
2024-05-21 23:33:55 +00:00
Chun-Ku Lin
5b08a3d7ce Make QS shortcut as the default shortcut type only if it's an a11y tool
Bug: 333602196
Test: atest ToggleAccessibilityServicePreferenceFragmentTest
Flag: android.view.accessibility.a11y_qs_shortcut aconfig Nextfood
Change-Id: I108e8ab127bcae545b92166a0147f5fee89f9e94
2024-04-19 23:20:16 +00:00
Jason Chiu
5d82f6a648 Remove the package name restriction of ACTION_UNINSTALL_PACKAGE
PackageInstaller has protected the intent action by setting
"android:priority=1".

Test: manual
Fix: 332228634
Change-Id: If0794e5957366d8b26acd0362b59c6c9076a0c4f
2024-04-17 16:26:52 +08:00
Jason Chiu
d2b586c939 Merge "[Safer intents] Accessibility" into main 2024-03-27 02:03:11 +00:00
Jason Chiu
d785397930 [Safer intents] Accessibility
To avoid implicit intents, make intents launch explicitly.

Bug: 323061508
Test: build
Change-Id: I5be489f4e6b855156b8dd6b8e54b0b6116f728ad
2024-03-25 17:05:41 +08:00
Daniel Norman
8ce099c2cd Remove usages of bugfix flag cleanup_accessibility_warning_dialog.
Flag has been in Trunkfood for over a month.

Includes one mechanical refactor to move a method from a now-removed
file into a private method in the class that uses it: createDisableDialog

(This flag guarded a preliminary cleanup and minor bug fix for
b/303511250, but the actual feature for b/303511250 is tracked in a
different flag 'skip_accessibility_warning_dialog_for_trusted_services')

Bug: 303511250
Test: existing tests in Presubmit (no change to behavior)
Change-Id: Iccf439adb2806e988310f503fb3891a6bd022054
2024-03-19 23:05:07 +00:00
Chun-Ku Lin
5cdf972b50 Make QS shortcut type as default preferred shortcut for A11yService that
associate with a TileService

Bug: 322712028
Test: manual (Turn on the shortcut for the first time for various
feature with or without tile. Verify only the A11yService with tile
would show QS as the shortcut when directly turn on the main shortcut
toggle)
Test: atest com.android.settings.accessibility

Flag: aconfig android.view.accessibility.a11y_qs_shortcut
Change-Id: I569b417639d2db8b7eddd818a2b9037ed4be2509
2024-03-18 00:14:43 +00:00
Chun-Ku Lin
1d1b9e451f Move the default shortcut types in a separate utility method.
Bug: 322701168
Test: atest
Flag: N/A (Strict mechanical refactors, no behavior change)
Change-Id: I1beb36e5aeeec0f303228b57baf034a000a72b75
2024-01-29 02:17:49 +00:00
Chun-Ku Lin
64e946c7fa Convert a11y shortcut edit screen to a full screen.
Bug: 300302098

Flag: adb shell device_config put accessibility com.android.settings.accessibility.edit_shortcuts_in_full_screen true

Test: manual
Test: atest com.android.settings.accessibility.shortcuts

Change-Id: I0b5e367fed962ff01036122ce7ff32a8ae47fbc3
2023-12-14 20:50:33 +00:00
Daniel Norman
126de9691a Use A11yManagerService to check if the A11yService warning is required.
Bug: 303511250
Test: m RunSettingsRoboTests ROBOTEST_FILTER=ToggleAccessibilityServicePreferenceFragmentTest
Change-Id: Ibef748bd82ba166e377be0611df113ac09d052bc
2023-11-28 01:54:21 +00:00
Daniel Norman
9f6e77a094 Minor refactoring to replace duplicated logic with existing methods.
Bug: 303511250
Test: tested in child change in the topic
Change-Id: I0995ce5fc685257ba69f7e4aa733de74aeb1fde3
2023-11-28 00:07:17 +00:00
Daniel Norman
77db500fcb Tech debt cleanup: Consolidates A11yService warning dialog.
Both frameworks/base and the Settings app define almost-identical copies
of a warning dialog shown when enabling an accessibility service.
The frameworks/base version was used for contexts outside of Settings
(e.g. while editing the volume key shortcut after triggering it with
2+ features already enabled) while the Settings version was used in
the Settings app.

This change replaces version used in Settings with the version defined
in frameworks/base.

The warning dialog's functionality is tested in
AccessibilityServiceWarningTest in frameworks/base.

Feature flag:
`adb shell device_config override accessibility android.view.accessibility.deduplicate_accessibility_warning_dialog true`

Bug: 303511250
Test: atest AccessibilityServiceWarningTest
Test: existing A11ySettings robotests
Change-Id: Iad2f13040d53d82a4afb0353fae3ac355b5548d6
2023-11-10 18:38:53 +00:00
Chaohui Wang
08a1c9876e Revert^2 "Migrate to CompoundButton.OnCheckedChangeListener"
8979681a8d

Change-Id: I60edd3aabf49afbe4aa016af780baa68d928bddf
2023-11-07 14:17:15 +00:00
Sebastian Pickl
8979681a8d Revert "Migrate to CompoundButton.OnCheckedChangeListener"
Revert submission 25147565-onSwitchChanged-CompoundButton

Reason for revert: breaking builds 

Bug:309601476

Reverted changes: /q/submissionid:25147565-onSwitchChanged-CompoundButton

Change-Id: Ie746db87d9c642599593aa3d5e5baf6b7ba89c0e
2023-11-07 13:26:36 +00:00
Chaohui Wang
71d1f021af Migrate to CompoundButton.OnCheckedChangeListener
Switch and SwitchCompat are both CompoundButton.

Using CompoundButton in Java will helps migration in the future.

Bug: 306658427
Test: manual - check Settings pages
Change-Id: If2e08a9a9557ec66a3b31ef18cd2e15943098a59
2023-11-07 20:22:27 +08:00
Daniel Norman
05924bf3e6 Simplifies serviceSupportsAccessibilityButton by checking service info.
This should also address a bug where this method used to only check
class name instead of package+class.

Bug: 264307062
Test: atest ToggleAccessibilityServicePreferenceFragmentTest
Change-Id: Ia5f602c6fbc1d23c88dc3d5076c701445b692887
2023-01-06 12:14:47 -08:00
menghanli
f76e31fe48 Fix unbundled accessibility features settings crash when launched
Root cause: The ag/19938064 introduces Settings Core change preference value changed metrics log format. It tries to lookupMetricsCategory() at Fragment#instantiate() stage. It has not onAttach() to activity by FragmentManager#add() or #replace(). The features were added by ag/15824482.
Solution: PutInt new MATRICS_CATEGORY extra in previous class to avoid giving context for FeatureFactory.getFactory to custom 1P accessibility services for SettingsGoogle overlay.

Bug: 259355675
Test: manual test
Change-Id: Ic37d41be6a54fe388f211c1c397d0b9b87b5fb56
2022-11-18 22:18:27 +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
075364f147 Clean up accessibility quick settings "tooltips" for singular purpose
Bug: 220655084
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityQuickSettingsTooltipWindowTest LaunchAccessibilityActivityPreferenceFragmentTest ToggleAccessibilityServicePreferenceFragmentTest
Change-Id: I771ad407b04375be2679c2237a970ee418b9bf37
2022-03-10 07:51:48 +08: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
61479cde86 Integrate new accessibility tileService attr into settings
- Accessibilty service: AccessibilityService_tileService
- Accesibility shortcut: AccessibilityShortcutTarget_tileService

Bug: 216614718
Test: manual test
Change-Id: I24baff13300dfc9a242fcfffe0a4888575ca0c9f
2022-02-09 11:46:40 +08:00
menghanli
0d6909dc0f Support accessibility settings load title from quick settings panel
- ToggleAccessibilityServicePreferenceFragment for unbundle accessibility service
- LaunchAccessibilityActivityPreferenceFragment for unbundle accessibility shortcut-activity

Bug: 210356011
Test: make RunSettingsRoboTests ROBOTEST_FILTER=LaunchAccessibilityActivityPreferenceFragmentTest ToggleAccessibilityServicePreferenceFragmentTest
Change-Id: I78dcb8dcb2778819ec4bb130a041211598f6d9c
2022-02-09 08:15:22 +08:00
menghanli
0577a068b8 Show quick setting tooltips after shortcut edit dialog dismiss
- ToggleAccessibilityServicePreferenceFragment for unbundle accessibility service
- LaunchAccessibilityActivityPreferenceFragment for unbundle accessibility shortcut-activity

Bug: 210356011
Test: Manual testing
Change-Id: I3bbaa6c0e5a4359e696c776a300520c4572b31f7
2022-02-09 08:15:22 +08:00
menghanli
9855997b3c Show quick setting tooltips after shortcut tutorial dialog dismiss
- ToggleAccessibilityServicePreferenceFragment for unbundle
accessibility service
- LaunchAccessibilityActivityPreferenceFragment for unbundle
accessibility shortcut-activity

Bug: 210356011
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityGestureNavigationTutorialTest
Change-Id: I6f9e7e206ae7642d91e658ceb18b9e7ce4244a22
2022-02-09 08:15:22 +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
Eric Biggers
b4060ef65b Remove FDE support from accessibility settings
With FDE (Full Disk Encryption), secure start-up (i.e. requiring a PIN /
pattern / password to boot the device) was incompatible with
accessibility services.  Thus, the accessibility settings would ask the
user to disable secure start-up when enabling an accessibility service.

Now that FDE support has been removed in favor of FBE (File Based
Encryption), this is no longer necessary.  Remove it.

Bug: 208476087
Change-Id: I5f6e512f223df63e1b4d1c181fc8b3fe683dcd5f
2022-01-11 18:53:51 -08:00
Jason Hsu
1ed5b468f4 Merge "Support ability to add different page id for different accessibility service page in settings." into sc-v2-dev am: 768722fed4 am: da247a3042
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15824482

Change-Id: I58f6e45441389cd1d54d5399aa48c219d4a81ed4
2021-09-23 07:26:46 +00:00
jasonwshsu
3d0f12d043 Support ability to add different page id for different accessibility service page in settings.
Bug: 190344664
Test: build pass
Change-Id: I6cc90b27dcbb5075d13e3c59fe754309182b4d0a
2021-09-22 18:36:46 +08:00
lucychang
7f94301cd4 Log accessibility privacy warning status (2/2)
Uses the atom NonA11yToolServiceWarningReported in westworld to log
the accessibility privacy warning service has been disabled in
accessibility setting.

Bug: 180983963
Test: m statsd_testdrive && statsd_testdrive 384
Change-Id: I4fb23066159f3086aaaeff521f305266e58cf42d
2021-08-19 22:41:07 +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
Peter_Liang
652c425acb Fixing the crash when tapping the "Downloaded apps" in Accessibility page.
Root cause:
When Accessibility settings parse the application which is from google
play store, the settings have no check if the resource is valid before
delivery the parameter into the corresponding fragment.

Solution:
Check if the resource is valid before creating the image uri.

Bug: 190716289
Test: manual test
Change-Id: I56eba2232ddf6ed5b2e526d4698479465a012e52
2021-06-11 03:24:06 +00:00
Stanley Wang
bbab97c955 Merge "Fix the problem of the TalkBack function can not be turned on." into sc-dev 2021-06-09 06:37:29 +00:00
Stanley Wang
fab609f892 Fix the problem of the TalkBack function can not be turned on.
- Check the states of the switch and the accessibility service.
  If the states are different, update the state of accessibility
  service.

Fix: 190309601
Test: robotest and test the TalkBack manually.
Change-Id: Id8c28223b1958087e7cdc481348487376afa2203
2021-06-08 20:34:55 +08:00
menghanli
78c093b0b3 Move DialogEumn into AccessibilityDialogUtils
Bug: 190022774
Test: Manual testing
Change-Id: I391089b675b415c26bbacd028caf1d1ab617e707
2021-06-07 13:38:50 +08:00
Ryan Lin
296c42e4ce Merge "Add uninstall option in the capabilities confirm dialog" into sc-dev 2021-02-24 13:12:45 +00:00
ryanlwlin
4806a38516 Add uninstall option in the capabilities confirm dialog
Uninstall option is visible only when the application of the
service is not system App. It provides an efficient way to
uninstall the App if users are shocked with the perimssions
they need to grant.

Bug: 176877955
Test: Install an App with AccessibilityService and uninstall
it with this option.

Change-Id: I6b60cc56d8d34c2983458a676b500035551ec9df
2021-02-23 20:43:27 +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
9f54ab9afa Redesign roles of variable mUserShortcutTypesCache & mUserShortcutTypes
* mUserShortcutTypesCache -> get value from savedInstanceState only
* mUserShortcutTypes -> use local variables to replace its mission

Bug: 158540780
Test: atest ToggleFeaturePreferenceFragmentTest
Change-Id: I1473f89ed743261f616e8d19733bae829c9dbb02
2020-11-05 14:24:09 +08:00
jasonwshsu
48b546eccf Extract UserShortcutType functions from ToggleFeaturePreferenceFragment
* Simplify StringJoiner to '+' since it only have one case
* Simplify Collections usage to use removeIf() and findFirst() directly
* Change class name SharedPreferenceUtils to PreferredShortcuts

Bug: 158540780
Test: atest ToggleFeaturePreferenceFragmentTest
Test: atest PreferredShortcutsTest
Change-Id: I02f03ccba09b6d7edaa5c0c8223ab3561a5e976b
2020-10-09 00:34:04 +00: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
21f8cb3a44 Refactor Reset options 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: I94969f6903d047b9bc41b1e8c14096c92c460b38
2020-08-04 23:33:50 +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