* changes:
Fix 'Hearing aids' of Accessibility page didn't display connected info promptly when mobile restart
Fix after dis/reconnect HA, DUT will request to re-pair one side of HA
Root Cause: get empty result in hearingAidProfile.getConnectedDevices()
Solution: Need to listen to onServiceConnected() to wait for HearingAidService get connected
Bug: 243489972
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityHearingAidPreferenceControllerTest
Change-Id: If6c3b2f3df81388c44e744e364e6258bde8bb645
Root cause: The ag/3373822 introduce the comparison by string since 2017, but it would conflict with AccessibilityService#setAnimationScale(float) which is added by API level 33.
Solution: Use float comparison instead and observe the key changed to update status if the setting page is on foreground.
Bug: 244687190
Test: atest DisableAnimationsPreferenceControllerTest
Change-Id: I59b7edb70a27af4276eccd6f19d2ef46ba30b604
Root Cause: Another side of HA jumps to connecting state after pair-other-ear dialog appears.
Solution: Listen to onDeviceAttributesChanged() callback to know when
the sub device gets connected, then to dismiss dialog.
Bug: 236782832
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingAidUtilsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingAidPairingDialogFragmentTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableMediaDeviceGroupControllerTest
Change-Id: I8dafefbb05e7cf1cadf37a7acbb2c5d66f2d0a78
"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
Root cause: ag/17286343 introduces hiding the settings entry in magnification settings if window magnification feature is not supported. It causes SuW page cannot find the settings preference reference.
Solution: Add null pointer check.
Bug: 242242266
Test: Manual testing
Change-Id: I1007a580047dd302228b28c15b82e958a2b01fec
(cherry picked from commit 5a87f6bbbf)
Root cause: ag/17286343 introduces hiding the settings entry in magnification settings if window magnification feature is not supported. It causes SuW page cannot find the settings preference reference.
Solution: Add null pointer check.
Bug: 242242266
Test: Manual testing
Change-Id: I1007a580047dd302228b28c15b82e958a2b01fec
Root cause: Render apps below the cutout area to make the fragment recreate multiple times when the device rotates. The tutorial status is not stored correctly and try to show the tutorial when activity is finishing.
Solution: Avoid showing the tutorial when the activity is finishing and store correct tutorial status after recreate.
Bug: 239578655
Test: Manual testing
Change-Id: I3ff12e23eb971f61280ebc89014b086dc348d734
Root cause: When the default captioning color was selected, the opacity became 100% and made the opacity preference is disabled. After changing to non-default color, the opacity preference becomes enabled, but it keeps showing cached opacity in opacity preference and the preview still shows the wrong color.
Solution: Cache the latest opacity if default captioning color was selected to show the correct opacity later.
Bug: 241308551
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: I7712fb25d622da62d7fb2d017e33f94ef258941b
Root cause: the visibility of link button is not correctly set due to
the onPageSelected callback isn't called when the first page shows
Solution: Manually set the visibility of link button according to the
first tutirial page type when dialog is shown
Bug: 242141428
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityGestureNavigationTutorialTest
Change-Id: I33ed07bc7ae39d96baeeed85771c5f13e00ebf44
- Extend the bottom padding of the RecyclerView.
Fixes: 219849557
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: I197e837ad3d199b58d1c0ba46a08b0fa04277512
Root cause: There is a bunch of different logic of preferences in ToggleAutoclickPreferenceFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out logic of ToggleAutoclickPreferenceFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: I5db18d5a0c577ad67d15c2d0169a36a67e9f13db
1. Move unnecessary public variables into local variables
2. Use %s to update locale preference summary
3. Correct the test case name of CaptionPreviewPreferenceControllerTest
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: I58d4d590b9b6d46c27d389217f846a780d755891
Root cause: There is a bunch of different logic of preferences in CaptionAppearanceFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out custom perference visiblity logic of CaptionAppearanceFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: I53d4ca3809031587f8d6853b427774fd322a71d8
Root cause: There is a bunch of different logic of preferences in CaptionAppearanceFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out preset preference logic of CaptionAppearanceFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=CaptionPresetControllerTest CaptionAppearanceFragmentTest
Change-Id: I5409c1e8a6bdfc633abc304d8cf800ea0943de78
Root cause: There is a bunch of different logic of preferences in CaptionAppearanceFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out color and edge preference logic of CaptionAppearanceFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: I8ed80b445a0d376a7e9dda87feda82420a78a9da
Root cause: It is weird to display positive text for the negative button.
Solution: Change to the positive button.
Bug: 216189516
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityGestureNavigationTutorialTest
Change-Id: I8ffc6b7b5b510fab159a23af83bca4426f2dc81d
Don't show the button tutorial when changing into sysem button navigation
Bug: 197695932
Test: make RunSettingsRoboTest
Change-Id: Ied90a602cd3228ee6f36b4b50fb1c019429a271e
Root cause: There is a bunch of different logic of preferences in AccessibilityControlTimeoutPreferenceFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out logic of AccessibilityControlTimeoutPreferenceFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: I22e6e3b9e2f199ac1721fc069690321ad5f7a0d4
Root cause: There is a bunch of different logic of preferences in CaptionAppearanceFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out font size and type face preference logic of CaptionAppearanceFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: Ia52cd272495d49a772c981f51e190ff7d29ee14f
Root cause: There is a bunch of different logic of preferences in CaptionAppearanceFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out preview preference logic of CaptionAppearanceFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility
Change-Id: Ie8acdcb8659606ce3faf6d5532cc73ee19024725
Root Cause: change preferences' order in onViewCreated() will see the
order moving animation.
Solution:
* Move to onCreateView() can avoid seeing the order moving animation.
* Move onProcessArguments() to onCreate() to let it be called as early
as possible. Also let it align the calling getArguments() behavior in
parent class PreferenceFragmentCompat.
Bug: 171272809
Test: make RunSettingsRoboTests ROBOTEST_FILTLTER=ToggleFeaturePreferenceFragmentTest
Change-Id: Ib9cb9b6df232ddcb681683ac2fcd2c6406c7a487
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
Settings don't show divider in material design. The DividerAllowedBelowPreference is not used now.
Bug: 197695932
Test: make RunSettingsRoboTest
Change-Id: Id2b28f76c4ed8c429594bf786690499fb3f2503a
Settings don't show divider in material design. The DividerSwitchPreference is not used now.
Bug: 197695932
Test: make RunSettingsRoboTest
Change-Id: I3fef9401b5c4a3e7d4ca6fc966f3e60c57558cdd
Root cause: Don't call displayPreference before setChecked called.
Solution: Don't show quick settings tooltips if preference is not ready.
Bug: 237850687
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest
Change-Id: I52425190cce4ab3cf31be025a743bf8b212fa1f9
Replaces the LayoutPreference with native Preference for the reset preference which is used for resettings the status of all preferences.
Bug: 232528123
Test: make RunSettingsRoboTests ROBOTEST_FILTER=TextReadingResetControllerTest,TextReadingResetPreferenceTest
Change-Id: I00719f13dc78039269ee373c6b35e12e7ff595ce
Root cause: There is a bunch of different logic of preferences in CaptionPropertiesFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out different logic of CaptionPropertiesFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=CaptionPropertiesFragmentTest CaptionTogglePreferenceControllerTest
Change-Id: I7013a7aa284b587c329c2e678dbb079e553ea94d
Root cause: There is a bunch of different logic of preferences in CaptionMoreOptionsFragment. It’s hard to implement new features and hard to maintain and hard to be testable.
Solution: Move out different logic of CaptionMoreOptionsFragment into controllers to reduce the complexity of the relationship between preference and fragment.
Bug: 197695932
Test: make RunSettingsRoboTests ROBOTEST_FILTER=CaptionMoreOptionsFragmentTest CaptionLocalePreferenceControllerTest
Change-Id: Ifdf3e22b027328a9f8eb13d756730ca047ece047
Use different source metric categories to distinguish different launch sources of the BluetoothPairingDetail page.
Bug: 237344016
Test: manual
Change-Id: If762e87414055f3e497f99ea6885f7736b7193cd