Commit Graph

203 Commits

Author SHA1 Message Date
Fan Zhang
9ce4a1fcde Use searchable="false" to suppress nonIndexables.
When possible, remove or simplify getNonIndexable() logic in fragments,
and use searchable="false" in xml to suppress index.

Change-Id: I5bdf5bc7d5494a64cdd9e230a51321a4b210af69
Fixes: 112608186
Test: robotest and manual search
2018-08-17 09:21:05 -07:00
timhypeng
53a12ee7b8 Add Hearing Aid UI into Settings-Accessibility App
- dynamically show/hide preference by HearingAid profile is supported or not
- add AccessibilityHearingAidPreferenceController to handle hearingAid preference
- add HearingAidDialogFragment to handle dialog behavior

Bug: 109948484
Test: make -j50 RunSettingsRoboTests

Change-Id: Ic55dde475dc40311f7e652f4a86d342597f09f0e
2018-07-30 16:48:39 +08:00
Jackal Guo
6490923251 Change the order of preferences in a11y
Some preference items have the same order, and it makes these items
be sorted in different position per languages. Use unique order for
each items instead.

Bug: 77949267
Test: atest CtsAccessibilityTestCases
Test: manual check the order in different languages
Change-Id: Ibfcb316c4299266b053053d9d88819a7dcc158fa
2018-07-17 11:19:05 +08:00
Fan Zhang
af1552251f Add some pages to search index.
* Notification access page
* VR Listener page
* Feature flags in dev options
* QS Tile developer options
* User dictionary
* Billing cycle
* Some accessibilty pages

Bug: 70720645
Test: robotests
Change-Id: I4f7d3d65b2803cebf178ac345a79721232df707c
2018-07-11 16:39:29 -07:00
Fan Zhang
78ea7da54c Misc tweaks to Indexable usage and tests.
- Make SettingsPreferenceFragment implement Indexable directly
- Add existing fragments that are SettingsPrefFragment but not Indexable
  to grandfather list.
- Fix "font size" fragment so it shows up in search properly.
- Remove duplicates for "lock screen display", "Screen saver".

Bug: 70720645
Test: robotests
Change-Id: I44ce0cac0fdf5e882b315861bb4bebc45dbe01e6
2018-07-02 16:46:23 -07:00
hjchangliao
bc64434365 Add TogglePrefController for Color Invert
Add ColorInversionPreferenceController,
and remove old control code in fragment.

Change-Id: I773e5aa2d6c9bf6b5140be45ee60567a7ed22318
Fixes: 67997748
Test: make RunSettingsRoboTests
2018-06-22 10:03:25 +08:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
Michael Wright
1c7ae169ac Merge "Hide haptic intensity settings for devices without enough dynamic range." into pi-dev am: 8c60fc69b7
am: 23460d03bc

Change-Id: I5c5e8a4157874f19abe28201fba772c72bc7f9d9
2018-05-25 19:17:33 -07:00
Michael Wright
3dbaac6e71 Hide haptic intensity settings for devices without enough dynamic range.
Despite our hope, devices prior to P18 just don't have the dynamic range
to give three distinct vibration intensity settings. Given this, only
show an on / off toggle for devices by default unless they explicitly
opt-in to multiple intensity levels.

Test: m -j RunSettingsRoboTests
Bug: 80243632
Change-Id: I14ece855cf20f9fa44b0648d28f89c0053be5c5f
2018-05-25 22:57:03 +01:00
AL Ho
ae2893db10 Update Accessibility vibration settings.
- Get notification vibration and haptic feedback intensity respectively.
- Use xliffs to compose these strings.
- Use the version that passed in Vibrator.class to get Vibrator
  instance.
- Refactor switch/case part in getSummary() of
  VibrationIntensityPreferenceController.
  Let AccessibilitySettings and VibrationIntensityPreferenceController
  both call it.
- Add robolectric test for method: updateVibrationSummary().
- Refine test method, use real preference and test summary value.
- Remove redundancy.

Bug: 75322064
Test: make ROBOTEST_FILTER=AccessibilitySettingsTest RunSettingsRoboTests
Change-Id: Ia3c7447b1ab1e336b36ad439800b673821417e48
Merged-In: Ia3c7447b1ab1e336b36ad439800b673821417e48
2018-05-11 08:56:13 +00:00
AL Ho
92216ae148 Update Accessbility vibration settings.
- Get notification vibration and haptic feedback intensity repectively.
- Use xliffs to compose these strings.
- Use the version that passed in Vibrator.class to get Vibrator
  instance.
- Refactor switch/case part in getSummary() of
  VibrationIntensityPreferenceController.
  Let AccessibilitySettings and VibrationIntensityPreferenceController
  both call it.
- Add robolectric test for method: updateVibrationSummary().
- Refine test method, use real preference and test summary value.
- Remove redundancy.

Bug: 75322064
Test: make ROBOTEST_FILTER=AccessibilitySettingsTest RunSettingsRoboTests
Change-Id: Ia3c7447b1ab1e336b36ad439800b673821417e48
Merged-In: Ia3c7447b1ab1e336b36ad439800b673821417e48
2018-05-11 11:13:25 +08:00
Doris Ling
d63e19aa1d Fix footer text not translated in Magnification settings. am: b0877b390d
am: 84506b36c5

Change-Id: Iab1c7df7fb56b76f3dcacc13608d23bbdcfeda51
2018-04-23 19:00:53 -07:00
Doris Ling
b0877b390d Fix footer text not translated in Magnification settings.
- pass in the summary res id instead of the actual text when building
the launch bundle for the magnification settings.
- remove the title argument as we are passing the title res already,
which takes precedence.

Change-Id: I4ba624e1d9722aa980ea94c306df9a015a159555
Fixes: 78126057
Test: run i18nscreenshots
2018-04-23 17:07:32 -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
Matthew Fritze
e2d07ea458 Merge "Add A11y Slices" into pi-dev am: bc4c392ff4
am: c82cf95105

Change-Id: Iabff6994e9a4eb67d2702eb949f6e60939db0508
2018-04-17 18:54:46 -07:00
Matthew Fritze
a711ed8330 Add A11y Slices
Add AccessibilityPreferenceController, which wraps all a11y settings
since they are share common infrastructure for enabling, current value,
and availability.

We add an overlay for OEMs to declare their bundled a11y services.
This is the only list of services that will be possible to enabled via
Settings slices.

Accessibility Slices are built by getting a list of valid services,
and indexing the service names as a key in the Slices DB. When they are
built at runtime, they use the generic A11yPrefController to get the status
and enable/disable the service.

Bug: 67997836
Bug: 67997672
Test: robotests
Change-Id: I66f905bf1c55eecb937945c4675c12bcbc96d698
2018-04-17 10:27:02 -07:00
Tony Mantler
0fcd6cbaa8 Autogenerate SearchIndexableResources subclass
Bug: 77148954
Test: RunSettingsLibRoboTests RunSettingsRoboTests RunSettingsGoogleRoboTests RunArcSettingsRoboTests
Change-Id: I842c42c55014c3310070ef22bd4f0d9a70dfd804
2018-04-03 10:26:55 -07:00
rafftsai
807506b166 MagnificationPreferenceFragment use DashboardFragment
- Move preference related logic to Controller
- Add settings:controller in xml file

Bug: 73899467
Test: manual
Test: make RunSettingsRoboTests

Change-Id: I3eaccc617c4408f50110bf1f5df3482f491f7393
Signed-off-by: rafftsai <rafftsai@android.com>
2018-04-02 13:18:58 -07:00
Phil Weaver
6cd554f397 Indicate when accessibility services have stopped
Bug: 35219990
Test: Created an accessibility service that crashes, and
then verified that the new status is reflected in
Settings.
Change-Id: I676c8e87f7642366a51b139f46cf8e3094a58d50
2018-03-19 17:39:23 -07:00
Ben Lin
c64531bbce Revert "Add ability to show/hide Color Correction and Color Inversion."
This reverts commit f1346930bc.

Reason for revert: Moving logic elsewhere.

Change-Id: Ia07b3f4c33e0078e8f35c69d5ed51daf197ff165
2018-02-16 15:10:11 -08:00
Ben Lin
463c9a07f0 Revert "Add ability to show/hide accessibility_shortcut_preference."
This reverts commit 4983dc1227.

Reason for revert: Moving logic somewhere else.

Change-Id: I2f2e3ac6545e8599de32afb1fe6f6d108601e37d
2018-02-16 14:27:34 -08:00
Ben Lin
90e070d8c5 Mark AccessibilitySettings#update methods as protected.
Bug: 62387367
Test: None
Change-Id: Ie70c8b167f8e61210fddb8f370c1ac0481b58f0c
2018-02-07 10:32:40 -08:00
Michael Wright
29d526719a Add new touch and notification vibration intensity settings.
Bug: 64185329
Test: ROBOTEST_FILTER=VibrationSettingsTest m -j RunSettingsRoboTests
Change-Id: I449c7e0041aabfe48935a57cde93e8af77dcd783
2018-02-06 18:14:07 +00:00
Ben Lin
f1346930bc Add ability to show/hide Color Correction and Color Inversion.
This adds two new boolean flags:
config_show_color_inversion_preference
config_show_color_correction_preference

Which whent set to false, will hide the color inversion and color
correction preference items, respectively.

Bug: 62378109
Test: make RunSettingsRoboTests
ROBOTEST_FILTER=AccessibilitySettingsTest

Change-Id: I06eac8e141bd6564495298c6c6544a7b059a4e73
2018-01-10 18:33:01 -08:00
Ben Lin
4983dc1227 Add ability to show/hide accessibility_shortcut_preference.
This adds a new boolean flag,
config_show_accessibility_shortcut_preference, which when set to false
will hide the accessibility shortcut preference item.

Bug: 62387367
Test: make RunSettingsRoboTests
ROBOTEST_FILTER=AccessibilitySettingsTest
Change-Id: I3fd941695df1ad89f717f464d2383be909839a3b
2018-01-03 10:36:01 -08:00
Phil Weaver
e0693ced0d Add setting to disable animations
Fixes: 12910879
Test: make RunSettingsRoboTests
Also went to Settings -> Accessibility, turned off animations,
and observed that animations stopped. Turned it back on, and
the came back. Also fiddled with the granular settings in
developer options, which behaved as expected.

Change-Id: I189fbc4152d3cdb5ee45562c33f94c739f569c32
2017-12-15 16:13:41 -08:00
Phil Weaver
0db26b3a87 Add icons for color inversion and daltonizer
For accessibilty settings, both on the main page
and the shortcut picker.

Also now observing settings that could be toggled
by the shortcut, so changes can be reflected immediately
in the settings ui.

Bug: 34621067
Fixes: 70335904
Test: Observe icons in settings and shortcut picker.
Toggling color inversion and color correction now changes
the setting ui immediately.

Change-Id: Id27b6471376059288ff971e5aea72d76078bef36
2017-12-11 10:59:34 -08:00
Fan Zhang
e0b0e9f902 Refactor help menu stuff into a controller
This is a clean up to action bar menu item pattern, we will use the same
pattern to build search icon on all pages in a later change.

Bug: 68814716
Test: robotests
Change-Id: Iedd3ec263e8ccb63ed75ec7a95b28c00878b1de4
2017-11-29 15:51:04 -08:00
Doris Ling
4a01283309 Remove the feature flag for using new title.
- remove all code that check for the feature flag, and use the new logic
by default.

Change-Id: I7fbe60da84c1c0f35e7241402a71d2bc4cd300e6
Fixes: 64564191
Test: make RunSettingsRoboTests
2017-11-13 17:58:13 -08:00
Fan Zhang
57ef92a810 Eliminate duplicate keys in pref xmls.
- Remove additional_system_update pref device_info page, we don't need
  it.
- Update keys in xml and Preference controller, and search index
  provider.
- Clean up in ScreenZoomPreference, it's anti-pattern to set fragment in
  constructor.
- Whitelist 2 that are super hard to remove.

Change-Id: Ibab6e2cb074513042a2ae007d9085aa64046eec8
Fixes: 67852637
Test: uniquePreferenceTest
2017-10-28 11:06:37 -07:00
Doris Ling
ed4685fafb Update activity titles for fragments without preference screen.
1. Move getPreferenceScreenResId() from individual subclass to
InstrumentedPreferenceFragment.

2. Removed InstrumentedPreferenceFragment.getTitle() and let the
preference fragments that do not have preference screen set the activity
title directly instead.

3. Removed OptionsMenuFragment as all it does is call
setHasOptionMenu().
- changed subclasses of OptionsMenuFragment to extend from
InstrumentedPreferenceFragment directly.
- none of the exisitng subclasses actually implements the option menu
related methods to provide any option menu. So, the setHasOptionMenu()
call is not added to the subclasses.

4. Update Languages preference title.
- launch the fragment from the preference controller instead of from the
default handling, as we need the title res id at launch time to get it
work properly when retrieving the title from back stack.

Bug: 64564191
Test: blaze-bin/screenshots/android/i18nscreenshots/i18nscreenshots
Change-Id: Ibecdcab32cbaed8bf604ec5ebe0a926b4e489a7d
2017-10-26 12:01:06 -07:00
Doris Ling
03a3b518de Update preference screen title.
- Add missing title to preference screen xml so that they will be used to
set the activity title when the fragment is launched.
- Also updated some incorrect preference screen titles.
- Overrides getTitle() in preference fragments that do not use the
preference screen xml.

Bug: 64564191
Test: blaze-bin/screenshots/android/i18nscreenshots/i18nscreenshots
Change-Id: Id72d5ddf18f0962bc484de8bbd847a2e55d6371e
2017-10-25 11:02:07 -07:00
Felipe Leme
bd88450183 Adds a Util.setSafeIcon() function used to avoid crashes.
There are many places on Settings that loads an icon provided by an application,
and if the icon is too big it crashes Settings.

This CL creates a helper method used to set an icon in a safe way, and
uses it in a few places (but most likely not all of them).

Bug: 65739885
Test: manual verification with an app providing a 2MB png

Change-Id: Iae2becb6d0ec8893328d9ef1de618f9bd12fa4a0
2017-10-10 08:56:56 -07:00
Fan Zhang
18a168239e Index TTS-Settings and dedupe TTS-engine in search result.
Fixes: 63022866
Test: robotests
Change-Id: I5c711e7bafba4e413ee271768c58742be05d8640
2017-08-16 15:46:41 -07:00
Fan Zhang
5035f8c559 Move a11y indexing from DynamicContentMonitor to loader
This is necessary to kill DynamicContentMonitor later

- Removed all logic related to indexing accesiblitysetting from the
  monitor class and AccessibilitySetting page itself
- Created a loader to search against A11yServices at runtime

I noticed adding a loader in SearchResultsAdapter is rather manual. It's
something we should consider refactor in the future.

Bug: 64310452
Test: robotests
Change-Id: Iff31aff65ce000991229433f294e2ec69af99da2
2017-08-03 10:10:59 -07:00
Fan Zhang
cf38863a6b Update string id to make it more generic
Test: builds
Bug: 62354743
Change-Id: I321f5e3d7560dbc21d52dbaa8ebe2df07f99a3db
2017-06-27 14:24:47 -07:00
Phil Weaver
ed5f0951f8 Follow O patterns for a11y settings
Move the summary for the toggled features to a footer.
Make the settings appear as a preference.

Bug: 36780887
Test: Start settings and observe the new UI looks a lot
like the mocks referenced in the bug. Also added unit
test to verify that summary text shows up.

Change-Id: I1d002b194991d0901ecb27198ba5de73bd23a5a9
2017-05-24 10:35:20 -07:00
TreeHugger Robot
e2987d7173 Merge "Remove accessibility duplicates in settings search" 2017-05-02 19:07:44 +00:00
Matthew Fritze
49915a64c5 Remove accessibility duplicates in settings search
Bug: 33701673
Test: make RunSettingsRoboTests
Change-Id: Iae179b558065d728c14eb76f136d398081577779
2017-05-02 17:39:24 +00:00
Jeff Sharkey
ad597344a2 Merge "Change String to CharSequence in #loadSummary." into oc-dev 2017-05-01 17:52:27 +00:00
Saige McVea
2cc818acce Change String to CharSequence in #loadSummary.
Per API council review, localized strings should return CharSequence. Changes here
account for the different type returned.

Test: ag/1813674

Bug: 37723508

Change-Id: I7dacab8af48932db031de22835b65eba30393956
2017-04-28 20:35:21 -07:00
Saige McVea
b18e31bc5a Merge "Conditionally reposition experimental preferences." into oc-dev 2017-04-18 21:47:25 +00:00
Casey Burkhardt
65523b9cb0 Merge "Hide "Magnify with button" if no navbar is shown" into oc-dev 2017-04-18 00:06:53 +00:00
Saige McVea
6a6b97905f Conditionally reposition experimental preferences.
Specifically, move colour inversion and colour correction preferences
to the display category if device is color transform accelerated.

Test: Manual

Bug: 36603386

Change-Id: I4f7e4e569f5f358e6e3c705f9df02e0da473a081
2017-04-17 11:59:07 -07:00
Casey Burkhardt
875d3b2471 Hide "Magnify with button" if no navbar is shown
Devices without a software-rendered navigation bar will be unable to
use "Magnify with button" as no accessibility button trigger for
magnification can be shown.

In this case, we hide the setting by preventing
MagnificationPreferenceFragment from showing the list of mag
modes, instead launching directly into the PreferenceFragment for
"Magnify with triple-tap"

Bug: 36862906
Test: Manual - Configured marlin to disable the navigation bar and
      verified behavior in SUW and Settings

Change-Id: Ie614ec292d7779044274b7c79eaed1df080c0fd1
2017-04-13 15:50:28 -07:00
Saige McVea
672cb2edc6 Added generic icon and magnification icon to a11y Settings.
Test: Manual

Bug: 36895362

Change-Id: I85281c0904bd6f562f9ebd39dd35b1eeb79108e6
2017-04-12 12:52:21 -07:00
Casey Burkhardt
059a8e3d12 Fix Accessibility Settings crash
Update preference key to reference new magnification preference screen.
Bug: 36606349
Test: Manual

Change-Id: Iefb114bea6a58d6f8939ae863959d4a6922f5a1d
2017-03-24 23:33:45 -07:00
Casey Burkhardt
5477832096 Update magnification strings
- Adjusts string for triple-tap instructions
- Adds summary text to Settings > Accessibility > Magnification

Bug: 30960346
Test: Manual
Change-Id: I151eeaa8b08c86ba8f9dec90d14388f1d775fb57
2017-03-24 19:24:34 -07:00
Saige McVea
5bbf987d1a Merge "Resolved accessibility service preference summary strings to use a common resource." 2017-03-24 22:56:04 +00:00
Phil Weaver
296b7263ad A11y shortcut settings enhancement
Adding shortcut on/off switch, improving the service picker,
and adding a switch to enable the shortcut on the lock screen.

Also adjusted setting search code to avoid indexing the
accessibility shortcut aside from the main accessibility settings
page.

Bug: 35872328
Bug: 35219988
Test: Ran in a variety of conditions, ran existing settings test.
Also added basic robo test, verified existing robo tests pass.
Change-Id: I4da9bad74caf96d9c8f3640e7db5417b4ee5d602
2017-03-24 13:15:13 -07:00