Commit Graph

1701 Commits

Author SHA1 Message Date
Treehugger Robot
3d626d8e8b Merge "Partial flag clean up: Remove large mouse pointer in A11y Setting screen" into main 2025-01-22 10:13:34 -08:00
Sunny Shao
d38e43b82f [Catalyst] Initial migration for "Display size and text" screen
Test: Manual
Bug: 372776688
Flag: com.android.settings.flags.catalyst_text_reading_screen
Change-Id: Iadbf36cee58083b8182ed5b275912a9e3a15b119
2025-01-22 02:58:29 +00:00
Menghan Li
48a229cb88 Merge "chore(magnification suw): Hide feedback preference in setup wizard" into main 2025-01-19 21:50:38 -08:00
Menghan Li
4c9bf742bf chore(magnification suw): Hide feedback preference in setup wizard
Bug: 380346799
Flag: com.android.server.accessibility.enable_low_vision_hats
Test: atest MagnificationFeedbackPreferenceControllerTest
            MagnificationFollowTypingPreferenceControllerTest
            MagnificationJoystickPreferenceControllerTest
            MagnificationOneFingerPanningPreferenceControllerTest
            ToggleScreenMagnificationPreferenceFragmentTest
Change-Id: I84f673235a8a4d97667edaabf72d46b985f33351
2025-01-19 20:00:58 -08:00
Yongshun Liu
c0e9a84e85 Merge "a11y: Make images optional for single choice list view dialog" into main 2025-01-16 15:07:19 -08:00
Wenyu Zhang
c29bde48a7 Merge "a11y: Hook ignore minor cursor movement setting to its controller" into main 2025-01-16 14:45:21 -08:00
Yongshun Liu
09b11ff3d3 a11y: Make images optional for single choice list view dialog
This makes `ItemInfoArrayAdapter.ItemInfo` support text-only choices. It
is to better accommodate the new dialogs.

Bug: b/389991440
Flag: com.android.settings.accessibility.enable_magnification_cursor_following_dialog
Test: None
Change-Id: If7514631a72631cf0fce85623fe30c8261f678c9
2025-01-16 21:27:02 +00:00
Wenyu Zhang
4de40b3959 a11y: Hook ignore minor cursor movement setting to its controller
Change-Id: I2c0ac1c36cc600f551d2a89ab3ec6d1405ac58d9
Test: ToggleAutoclickIgnoreMinorCursorMovementControllerTest
Bug: b/388845718
Flag: com.android.server.accessibility.enable_autoclick_indicator
2025-01-16 13:11:46 +00:00
Chun-Ku Lin
38ed880811 Partial flag clean up: Remove large mouse pointer in A11y Setting screen
Customization on mouse pointer has been moved to other screen, which is
released in 24Q4. Cleaning up the reference in a11y settings earlier for
cleaner ColorAndMotionScreen catalyst migration.

Bug: 346358375
Flag: EXEMPT partial clan up on android.view.flags.enable_vector_cursor_a11y_settings
Test: build succeed
Change-Id: Ie5c22f6cd1a55102240a86e13f17591e29ddbbf8
2025-01-15 23:29:51 +00:00
chenjean
ea305dc01e fix(HCT):Ensure HCT Notification ID does not conflict in the Settings app
The current HCT notification uses NOTIFICATION_ID=1. The Settings app has a few other notifications also use NOTIFICATION_ID=1 like Bluetooth and Sim etc. When using the same NOTIFICATION_ID for a notification, it updates the existing notification, causing the original one to disappear. To avoid this, we use a unique NOTIFICATION_ID.

Bug: 388530317
Flag: EXEMPT resource only update
Test: manual
Test: atest HighContrastTextMigrationReceiverTest
Change-Id: Ieda6836190726b14cd3522f61e7992e5a5698231
2025-01-15 18:15:38 +08:00
Wenyu Zhang
d683d18132 a11y: Add "Ignore minor cursor movement" autoclick setting
When "Ignore minor cursor movement" is on, the small cursor movement
within the cursor area ring will not interrupt the autoclick timer.

Screenshot: http://b/388845718#comment2

Change-Id: Ib6a8ca8463358a3e2de5ae6be8afd5113a5826ba
Test: ToggleAutoclickIgnoreMinorCursorMovementControllerTest
Bug: b/388845718
Flag: com.android.server.accessibility.enable_autoclick_indicator
2025-01-13 21:31:03 +00:00
Chris Antol
caa87b9c34 Merge "Fix sensitivity to writability declarations" into main 2025-01-10 11:00:17 -08:00
Wenyu Zhang
aea94181aa Merge "a11y: Initialize slider position with cursor area size setting" into main 2025-01-09 17:58:57 -08:00
Chris Antol
2000e9f96c Fix sensitivity to writability declarations
Bug: 388877875
Test: N/A - CTS test to follow
Flag: com.android.settingslib.flags.settings_catalyst
Change-Id: I32d92b427bafe474f0e082923603781ad561cdd8
NO_IFTTT=sensitivity level not a field in legacy Preference Controller
2025-01-09 17:19:55 -08:00
Wenyu Zhang
e031b30d1d a11y: Initialize slider position with cursor area size setting
When the preference loads, initialize the slider position using the
cursor area size value from settings.

In addition, match slider seekbar range and the cursor area size range.

Change-Id: Ib6a8ca8463358a3e2de5ae6be8afd5113a5826be
Bug: b/383901288
Test: ToggleAutoclickCursorAreaSizeControllerTest
Flag: com.android.server.accessibility.enable_autoclick_indicator
2025-01-09 22:31:17 +00:00
Jacky Wang
2ac3cdfb22 Fix memory leak on Accessibility screen
The root cause is that androidx.preference.Preference does not implement
equals and hashCode methods, but it is used as Map key (see bug comment2
for more details). Given that Preference.getParent() can find the
category, we can simplify the data structure from Map to List.

Bug: 388696327
Flag: EXEMPT bugfix
Test: Resume/Pause Accessibility screen 100 times
Change-Id: Ib70acbf2147048730f8a4e8fd66731f9efdadecf
2025-01-09 18:57:38 +08:00
Menghan Li
291e62ffd1 Merge changes from topic "SurveyFeatureProvider_isSurveyAvailable" into main
* changes:
  Add HaTS entrypoint for Magnification page
  Add controller for magnification feedback preference
  Add a new API: checkSurveyAvailable
2025-01-09 01:14:45 -08:00
Menghan Li
e218280902 Add HaTS entrypoint for Magnification page
This entry point allows users to access and adjust Magnification
settings for low vision accessibility. Visibility is controlled by
the aconfig flag and SurveyFeatureProvider#isSurveyAvailable.

NO_IFTTT=Revisit preference_list scope

Bug: 380346799
Test: atest ToggleScreenMagnificationPreferenceFragmentTest
Flag: com.android.server.accessibility.enable_low_vision_hats
Change-Id: I81a55487734fe7b139391a6c95834c7313e54d7a
2025-01-09 07:01:21 +00:00
Menghan Li
3f67747684 Add controller for magnification feedback preference
The controller's logic determines the visibility of this preference
based on the availability of surveys, as reported by
SurveyFeatureProvider.isSurveyAvailable.

Bug: 380346799
Test: atest MagnificationFeedbackPreferenceControllerTest
Flag: com.android.server.accessibility.enable_low_vision_hats
Change-Id: I7fe7aa4418a6be38e9e7af7efc76a9a25266198b
2025-01-09 07:00:09 +00:00
Wenyu Zhang
6052ab619f a11y: Plumb autoclick cursor area size settings to PrefController
Screen recording: http://go/scrcast/NTk0ODczOTE4MDAzNjA5Nnw0ZGNhMzVmYS0wYg

Bug: b/383901288
Test: ToggleAutoclickCursorAreaSizeControllerTest
Change-Id: I745ef71d035d379e06a747f085ef9b0fef60d968
Flag: com.android.server.accessibility.enable_autoclick_indicator
2025-01-07 23:37:39 +00:00
Wenyu Zhang
6e89c83c9d a11y: Fix Android Lint
Add NonNull annotation. Fix Android Lint in http://ag/31174874.

Bug: b/383901288
Change-Id: Ibe296525ebdc298b3b23b8df51bd58218e20b777
Test: ToggleAutoclickCursorAreaSizeControllerTest
Flag: com.android.server.accessibility.enable_autoclick_indicator
2025-01-07 07:27:46 -08:00
Wenyu Zhang
32e2f97578 a11y: Initialize skeleton for autoclick indicator related settings
Screenshot: http://screen/5wWt8Tvr9K3fuoi.png

Change-Id: Iaf07e738d64e0e22caf7571a7529cccbf3079f87
Bug: b/383901288
Test: ToggleAutoclickCursorAreaSizeControllerTest
Flag: com.android.server.accessibility.enable_autoclick_indicator
2025-01-07 00:53:16 +00:00
Treehugger Robot
7938eeb0d4 Merge "[Catalyst] Implement get{Read,Write}Permissions for Vibration & haptics" into main 2024-12-30 17:50:27 -08:00
Angela Wang
64624ae43f Merge "Update Flash Notifications screen with expressive design" into main 2024-12-28 17:35:28 -08:00
Angela Wang
b5ec99bf35 Merge "Update ShortcutPreference with expressive design" into main 2024-12-28 17:34:49 -08:00
Treehugger Robot
e095ce3124 Merge "[Catalyst] Provide screen key to @ProvidePreferenceScreen" into main 2024-12-27 05:33:47 -08:00
Angela Wang
9736b59ac2 Update Flash Notifications screen with expressive design
Flag: EXEMPT flag by System prop
Bug: 349678118
Test: atest FlashNotificationsPreviewPreferenceControllerTest
Test: manually check the UI, screenshots attached on bug
Change-Id: I2db55cef161016940b19f14c70b9d2442d3859c3
2024-12-27 10:57:15 +00:00
Jacky Wang
cfcf20c70a [Catalyst] Provide screen key to @ProvidePreferenceScreen
NO_IFTTT=Catalyst only

Bug: 386179791
Flag: com.android.settings.flags.catalyst
Test: manual
Change-Id: Ie8106ec45a32e4a61826512fc62746c9ffc47d9c
2024-12-27 17:14:27 +08:00
chenjean
ac876b1173 feat(HCT): Notification 'open settings' action behavoir
The notification should open High Contrast Text page and disappear automatically when the user taps the "Open Settings" button within the notification.

Bug: 385794406
Flag: com.android.graphics.hwui.flags.high_contrast_text_small_text_rect
Test: atest SettingsRoboTests:com.android.settings.accessibility.HighContrastTextMigrationReceiverTest
Change-Id: Ibe3c343d39e3c98a8b98fb4252d5f5a37d1aaa49
2024-12-27 16:05:08 +08:00
Angela Wang
0af1dbae4e Update ShortcutPreference with expressive design
To make hearing devices screen meets the expressive design, the shortcut
preference need to be updated.

Flag: EXEMPT flag by System prop
Bug: 349675952
Test: atest ShortcutPreferenceTest
Test: manually check the UI, screenshots attached on bug
Change-Id: I04a86c0592c5aa0e096b827a9ee65b12cf13ecf5
2024-12-27 07:08:58 +00:00
Mill Chen
78c1643b92 [Catalyst] Implement get{Read,Write}Permissions for Vibration & haptics
NO_IFTTT=Catalyst only

Fix: 385745664
Test: devtool
Flag: com.android.settings.flags.catalyst_vibration_intensity_screen
Change-Id: I5a6dad4570feb7d313c781ae8e57934ffe417a61
2024-12-26 10:41:30 +00:00
Menghan Li
242b3b8abd Merge changes I97841c5b,I64e47f92 into main
* changes:
  feat(EDT): Update the preference interaction and visiblity logic
  feat(EDT): Migrate entry into Display Settings
2024-12-23 22:00:42 -08:00
Menghan Li
dfb3c5b881 feat(EDT): Update the preference interaction and visiblity logic
The EDT toggle will be an subsetting in the DarkTheme settings page
- When the Dark Theme main toggle is on, we check the EDT setting to
decide applying normal DarkTheme or EDT now.
- The EDT preference is disabled when DarkTheme is off

Bug: 368721320
Flag: android.view.accessibility.force_invert_color
Test: atest ToggleForceInvertPreferenceControllerTest
Change-Id: I97841c5b2f03c8c0fb37e0be309d15f312bfedbd
2024-12-24 04:02:13 +00:00
Jason Hsu
a1046fc847 Merge "[HA Input] Add UI to support hearing device microphone change ability in device details page" into main 2024-12-23 19:50:24 -08:00
Jean Chen
70f77e1c80 Merge "feat(HCT): Notification disappear behavoir" into main 2024-12-23 19:49:05 -08:00
chenjean
0d8356610e feat(HCT): Notification disappear behavoir
1. When a user taps the notification body, it should function like clicking the "Open Settings" action button, taking them directly to the Settings page and the notification should disappear automatically.
2. To ensure the notification remains visible until the user interacts with it, we need to add the FLAG_NO_CLEAR flag. This will prevent the notification from being dismissed when the user uses the "Clear all" button in the notification shade.

Bug: 385794406
Flag: com.android.graphics.hwui.flags.high_contrast_text_small_text_rect
Test: manual
Change-Id: Ie2cd17e744363b9834021ddef48ec5a59f19ec64
2024-12-23 17:42:01 -08:00
jasonwshsu
1258059feb [HA Input] Add UI to support hearing device microphone change ability in device details page
In this patch:
* Add custom dialog preference: HearingDeviceInputRoutingPreference and its controller
* Contain radio group to show 'hearing device microphone' and 'this phone's microphone' for user's preference
* set/get user's preference via BluetoothDevice#isMicrophonePreferredForCalls, BluetoothDevicwe#setMicrophonePreferredForCalls
* check if support HapProfile and if in AudioManager#getDevice(GET_DEVICES_INPUTS) list

Bug: 349255906
Test: atest HearingDeviceInputRoutingPreferenceTest BluetoothDetailsHearingDeviceInputRoutingControllerTest BluetoothDetailsHearingDeviceControllerTest
Flag: com.android.settingslib.flags.hearing_devices_input_routing_control
Change-Id: I2e4dbc7fb98353ed52d0d175df4e8725df6b9a05
2024-12-23 19:57:39 +08:00
Sunny Shao
973e13a885 [Catalyst] Implement get{Read,Write}Permissions for Remove Animation
NO_IFTTT=Catalyst migration

Test: Devtool
Fix: 385276024
Flag: com.android.settings.flags.catalyst_accessibility_color_and_motion
Change-Id: I8fc8006151c52856140ca595dfbf9079166eec40
2024-12-23 15:05:44 +08:00
Menghan Li
9aa9199f08 feat(EDT): Migrate entry into Display Settings
The EDT toggle will be an subsetting in the DarkTheme settings page
- When the Dark Theme main toggle is on, we check the EDT setting to
decide applying normal DarkTheme or EDT now.
- The EDT preference is disabled when DarkTheme is off

Bug: 368721320
Flag: android.view.accessibility.force_invert_color
Test: atest ToggleForceInvertPreferenceControllerTest
            DarkModeSettingsFragmentTest
Change-Id: I64e47f92b14ee24a91f469cb55c7bb1285f05c62
2024-12-23 00:05:23 +00:00
jasonwshsu
9b4575a52a Fix '<b>' did not get bold in HearingDevice footer.
Root Cause: Did not use <![CDATA[ ...]]> to represent it contains html tag <b>.

Solution: Use <![CDATA[ and Html.fromHtml to add Spanned for the footer string.

Bug: 378806589
Test: Enable bold text to test the effect
Flag: EXEMPT bugfix
Change-Id: I56827dc18e7183c0458c83dac0dbeca7eb8bb16d
2024-12-19 19:36:08 +08:00
jasonwshsu
7bb0c30688 Update contentDescription to announce 'than' rather than '>'
Root Cause: Talkback announce '>' (greater than), which is not user expected.

Solution: Update contentDescription with string contain 'than'

Bug: 378804585
Test: Enable screen reader to check
Flag: EXEMPT bugfix
Change-Id: Ibc7a2f7c7d1100dd25ddf29c2fffb22ac5ad52c6
2024-12-19 16:39:59 +08:00
Daniel Norman
5e390e57b5 Merge "Strings updates for the new version of High contrast text." into main 2024-12-18 20:24:22 -08:00
Daniel Norman
d6e53163fd Strings updates for the new version of High contrast text.
These strings may be replaced again after our UX Writing team provides
new strings for the final public release.

Bug: 384791485
Test: observe new strings; see http://b/384791485#comment2
Flag: EXEMPT strings changes
Change-Id: I5359bc3d6faca84238fe00801a5d68e5ef8ffc2f
2024-12-18 18:35:45 -08:00
Riley Jones
178bdd4c60 Cleanup of AccessibilityUtil#hasValueInSettings
Settings should now be able to directly use the equivalent ShortcutUtils functions,
so the unnecessary code is being removed from AccessibilityUtil.
This does cause much behavior to depend on A11yManager instead of Settings.Secure,
so several tests need their conditions updated.

Test: atest com.android.settings.accessibility
Flag: EXEMPT internal refactoring
Bug: 367414968

Change-Id: I95f81f7d78b074def0fe2d1e01f60ceb7e142dac
2024-12-17 20:03:16 +00:00
Riley Jones
66dde6fea1 Merge "Cleaning up deprecated QS tooltip code" into main 2024-12-16 15:51:52 -08:00
Treehugger Robot
4bfd857a7e Merge changes from topic "catalyst" into main
* changes:
  [Catalyst] Specify read/write permissions for "Mobile data"
  [Catalyst] Update permission check API signature
2024-12-13 20:57:36 -08:00
Treehugger Robot
dc30635bfb Merge "feat(HCT): Perform custom migration logic for existing HCT users" into main 2024-12-13 09:22:08 -08:00
Sunny Shao
9777bbe38f [Catalyst] Introduce a AccessibilitySeekBarPreference contains tool tip window
Test: atest PreviewSizeSeekBarControllerTest TextReadingPreviewControllerTest
Bug: 372776688
Flag: com.android.settings.flags.catalyst_text_reading_screen
Change-Id: Ie93d2f26b1521e931ce648f0140894b153259f81
2024-12-13 22:15:39 +08:00
Jacky Wang
821d320051 [Catalyst] Update permission check API signature
NO_IFTTT=Catalyst only

Bug: 374115149
Flag: com.android.settings.flags.catalyst
Test: manual
Change-Id: Ib13a5fddd517e3e260815b753b55c008e24d70d8
2024-12-13 16:09:58 +08:00
chenjean
fe361a526e feat(HCT): Perform custom migration logic for existing HCT users
This logic is triggered by two scenarios:
(A) During first bootup after OTA update to Android 16, if the
    user had HCT enabled.
  - Trigger: ACTION_PRE_BOOT_COMPLETED.
  - Migration: HCT is disabled and notification is shown.
(B) Restore backup from Android 15 (or earlier), if the backup
    had HCT enabled and new device does not.
  - Trigger: SettingsProvider's restore process.
  - Migration: HCT is not restored and notification is shown.

We store whether the user has seen this notification in a new secure
setting ACCESSIBILITY_HCT_SHOW_PROMPT. This setting is also backed up.

Bug: 369906140
Flag: com.android.graphics.hwui.flags.high_contrast_text_small_text_rect
Test: atest SettingsRoboTests:com.android.settings.accessibility.HighContrastTextMigrationReceiverTest
Test: flash an incremental update on a build with HCT enabled;
      observe HCT is disabled and a notification is sent.
Test: flash an incremental update on a build with HCT disabled;
      observe no change to HCT and no notification.

Change-Id: I4d294ffc0b2eabc59ee7988a579d678975a16380
2024-12-13 05:01:33 +00:00