Commit Graph

443 Commits

Author SHA1 Message Date
Jason Hsu
181cfa3aa5 Merge "Move 'Audio Output' to Accessibility hearing device page" into udc-dev 2023-05-12 14:20:23 +00:00
jasonwshsu
212470d0a6 Move 'Audio Output' to Accessibility hearing device page
* Extract the common part into HearingAidHelper.
* Remove abstract getHearingDevice(). Change to get the hearing device when needed.
* Move several classes from Bluetooth into Accessibility

Bug: 281783079
Test: make RunSettingsRoboTests ROBOTEST_FILTER="(HearingDeviceAudioRoutingBasePreferenceControllerTest|AccessibilityHearingAidPreferenceControllerTest|HearingAidHelperTest|HearingAidAudioRoutingPreferenceControllerTest|HearingDeviceCallRoutingPreferenceControllerTest)"
Change-Id: I79049107409b7086c6dcc8d48a6323e171ed1535
2023-05-12 13:46:53 +08:00
Tom Hsu
5576947555 Merge "[Settings] Avoid NPE if BT device is changed by framework." into udc-dev 2023-05-11 04:30:19 +00:00
tom hsu
0617631408 [Settings] Avoid NPE if BT device is changed by framework.
- Do not register only one BT device for primary to avoid primary
   BT devcie change to another.
 - Register and unregister all BT devices

Bug: 280236099
Test: atest passed
Change-Id: I610144c7f8f649e40d99cf1dc7f50d1f3b80f109
2023-05-11 02:53:19 +08:00
Vincent Wang
818f77cd1f Test Fix SettingRobolectricTest Fail
Bug: b/275023433
Test: NA
Change-Id: If2dcb8f6c196327129ccc9375b190e394c994efa
2023-05-09 06:26:39 +00:00
Chaohui Wang
39bf7dd530 Fix dialog leak in RequestPermissionActivity
Dialog still show when activity destroyed will cause leak.

Dismiss dialog when activity onDestroy to fix this issue.

Fix: 279522922
Test: Manually with "Don't keep activities"
Test: Robolectric Test
Change-Id: I445f4b160020823a6f6e2883055218c1224e2c48
2023-05-05 17:30:02 +08:00
Chaohui Wang
e13d644f2c Fix create bluetooth dialog repeatedly
When the screen rotates, currently the startActivityForResult() within
RequestPermissionActivity could be called multiple times, so the
multiple RequestPermissionHelperActivity will be created, which caused
the issue.

Replace RequestPermissionHelperActivity with AlertDialog (as an
unfinished TODO of RequestPermissionHelperActivity) can fix this issue.

Fix: 243601277
Test: Manually with adb shell commands
Test: Unit test
Change-Id: If1e2b2807b69a87bbcfffa543ee0da134d4c4312
2023-04-12 18:34:52 +08:00
jasonwshsu
625ffa85b8 Check whether support telephony for hearing device call routing
Root Cause: Tablet might not support Call

Solution: Check isVoiceCapable() first

Fix: 270472166
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingDeviceCallRoutingPreferenceControllerTest
Change-Id: Icf69d286f63a737941447a6c16a08b4bb8c1fe23
2023-03-23 20:07:28 +08:00
Jason Hsu
0ef1b05630 Merge "Extract duplicate part for hearing audio routing into SettingsLib" into udc-dev 2023-03-23 05:18:56 +00:00
jasonwshsu
06adc71b89 Extract duplicate part for hearing audio routing into SettingsLib
Similar functions need to be called when hearing device get connected, so move them into SettingsLib.

Bug: 269122580
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingDeviceAudioRoutingBasePreferenceControllerTest
Change-Id: I15296fb81726c96c1d2fec7397e981e71e305450
2023-03-20 21:11:14 +08:00
Kweku Adams
9a087d6c19 Merge "Revert "Remove duplicate strings."" into udc-dev 2023-03-16 20:14:16 +00:00
Lifu Tang
caa1b51ef2 Revert "Remove duplicate strings."
Revert submission 19748582-settings_yesno

Reason for revert: Common strings in English could be translated into different strings in other languages.

Reverted changes: /q/submissionid:19748582-settings_yesno

Bug: 272603842
Test: build and open Settings app
Test: atest SettingsRoboTests
Change-Id: Iaad301c5513478fb95e40987ea3ccb4f923d71fa
2023-03-15 22:39:24 +00:00
jasonwshsu
052c07b4d4 Click the search result "System Sounds" will crash the Settings app
Root Cause: Preferences in this page need to pass CachedBluetoothDevice or will finish the page imediately

Solution: theses preferences are in device detail page which will only show when device get connected. Show them in search result is not reasonable. Remove them.

Bug: 270508779
Test: verfiy it did not show in search result
Change-Id: I866d7be158ff87343d76fa0b3173382880c4aa6e
2023-03-12 02:48:13 +08:00
Vania Januar
4bdff64e80 Show single icon layout for unknown device type in advanced header.
Bug: 270654477
Test: AdvancedBluetoothDetailsHeaderControllerTest
Change-Id: I24a42693a66664caa460d44245a68e3606e98481
2023-03-02 13:37:25 +00:00
Vania Januar
c1429bcb40 Handle DEVICE_TYPE_STYLUS in advanced details header.
Bug: 270654477
Test: AdvancedBluetoothDetailsHeaderControllerTest
Change-Id: I725dd575ba56bf86e1336094961e769b81540479
2023-03-01 17:22:15 +00:00
jasonwshsu
31ff5d92d1 [Audio Routing] Add audio routing functionality for hearing device
* 'Ringtone', 'Call', 'Media', 'System sounds' routing capability for hearing device

Bug: 269122580
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingDeviceAudioRoutingBasePreferenceControllerTest
Change-Id: Id43b2323740bfa40c36f74dec644c00695f414c3
2023-02-14 14:45:31 +08:00
jasonwshsu
68ffe47f08 Fix BluetoothPairingDetailTest fail
Bug: 237625815
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothPairingDetailTest
Change-Id: I183fea9903cad921f7fe69445579b80dea045559
2023-02-10 09:47:22 +00:00
jasonwshsu
031c5f0354 [Pair hearing devices] Add pair hearing device functionality
* Add setFilter(List<ScanFilter>) in DeviceListPreferenceFragment to enable BluetoothLeScanner

Bug: 237625815
Test: make RunSettingsRoboTests ROBOTEST_FILTER=DeviceListPreferenceFragmentTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingDevicePairingDetailTest
Change-Id: I13495cad7260789845fad9a7e77e96b692a5cbd0
2023-02-09 10:17:25 +08:00
jasonwshsu
723c385c18 [Pair hearing devices] Extract common behavior in BluetoothPairingDetail into Base class
* Before adding new hearing device feature, we will extract the common part into Base class first. They will share most of the UI component.

Bug: 237625815
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDevicePairingDetailBaseTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDevicePairingDetailTest
Change-Id: I3a44c4c464d630fdcafa151afc82d3000fd728a3
2023-02-09 10:17:25 +08:00
jasonwshsu
c1fb0ae240 [Pair hearing devices] Add "Saved devices" to show bonded but not connected hearing devices
* BaseHearingDevicePreferenceController will also be used in "Hearing devices", so extract to parent class first.

Bug: 237625815
Test: make RunSettingsRoboTests ROBOTEST_FILTER="(SavedHearingDeviceUpdaterTest|BaseBluetoothDevicePreferenceControllerTest|BluetoothDeviceUpdaterTest|AvailableMediaBluetoothDeviceUpdaterTest|ConnectedBluetoothDeviceUpdaterTest|SavedBluetoothDeviceUpdaterTest)"
Change-Id: I8a492866f48e3a664b9ff78bce5a4f082c0dc465
2023-02-09 10:17:25 +08:00
jasonwshsu
48d56420ce [Audio routing] Setup basic structure for audio routing page
* Setup UI and bridge device address into audio routing fragment

Bug: 237625815
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsAudioRoutingFragmentTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsAudioRoutingControllerTest
Change-Id: Ia7ffe34af54011a2e3cb445fc4fbd00f991835f3
2023-02-08 20:55:52 +08:00
Guojing Yuan
c8445a03d4 Merge "Add contextSyncEnabled to AssociationInfo" 2023-01-17 21:12:56 +00:00
Guojing Yuan
330c709031 Add contextSyncEnabled to AssociationInfo
Bug: 261885804

Change-Id: I6cbb77a879181a52fecf57b314c219413874d93b
Test: CTS
2023-01-13 19:02:15 +00:00
Jason Hsu
e0301f7aa4 Merge "[hearing devices page] Launch 'Hearing decice controls' to Accessibility hearing device page." 2023-01-10 09:05:55 +00:00
Vania Januar
b837d57b02 Set title for Bluetooth Details page to "Stylus" for styluses.
Bug: 254835745
Test: BluetoothDeviceDetailsFragmentTest
Change-Id: I725877b0bcf44fa7be805e16fb2d695c9d6074dc
2022-12-29 12:31:59 +00:00
jasonwshsu
9cb33c1315 [hearing devices page] Launch 'Hearing decice controls' to Accessibility hearing device page.
Bug: 237625815
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsHearingDeviceControlsControllerTest
Change-Id: I14cdc8f91f1a6212ab98081eddd15e6a1eb5db50
2022-12-28 02:35:54 +08:00
jasonwshsu
a7d5801d28 [hearing devices page][Audio routing] Add feature flag to control visibility of the hearing device controls and audio output
* Setup basic xml for hearing device controls and audio output in bluetooth detail device page.
* Use same PreferenceCategory with spatial audio and rename to
  `feature_controls_group`

Bug: 237625815
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsHearingDeviceControlsControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsAudioRoutingControllerTest
Change-Id: Ibe71757b53b9d65c6ab6efa1053d035e78882b68
2022-12-20 11:05:23 +00:00
Betty Chang
32591bfb96 Merge "[LE Audio] To remove the broadcast source item that created by receive state" 2022-12-05 03:42:06 +00:00
changbetty
a6d532cdba [LE Audio] To remove the broadcast source item that created by receive
state

    - When the user clicks another broadcast source and wants to join,
      we will remove the previous item that created by getAllSource().
      And trigger the search again.

Bug: 242267719
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothBroadcastSourcePreferenceTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothFindBroadcastsFragmentTest
Change-Id: I416f0a39e31276876e63360664555f99dd7297c9
2022-12-04 13:52:10 +00:00
Vania Januar
2df165a58a Add a stylus controller to Bluetooth Device Details.
Feature is currently flagged behing SETTINGS_SHOW_STYLUS_PREFERENCES.

Bug: 251201006
Test: SettingsRoboTests StylusDevicesControllerTest
DD: go/stylus-connected-devices-doc
Change-Id: I438b7fe5ca1c94f9dfb506c8918d0e6cb005ca33
2022-11-30 16:06:14 +00:00
Angela Wang
416b5bd63f Unifies constants accross hearing aid related profiles (2/2)
Hearing aid constants defined differently across different hearing aid
related profiles. For hearing aid device mode, HearingAidProfile and
HapClientProfile have different values for mode definition and there is also
a new BANDED hearing aid type in HapClientProfile spec. For hearing aid
device side, HearingAidProfile has only 2 kinds of side which is left
and right whereas BLE hearing aid can retrieve 27 different kinds of
audio location.

We therefore introduce a new class HearingAidInfo for mapping these
different constants across these profiles into a single unified set of
constants.

Bug: 253192350
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityHearingAidPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingAidPairingDialogFragmentTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingAidUtilsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsPairOtherControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableMediaDeviceGroupControllerTest
Change-Id: Id14928dbc051fcf76fe0d66b43aefefb1b5f7baf
2022-11-28 09:03:37 +00:00
Angela Wang
e7a4b1f13d Shows LE audio hearing aid device in a11y settings page (3/3)
Shows connected hearing aid in a11y settings page whether it's ASHA hearing aid or LE audio hearing aid. Makes sure preference summary is updated as expected when BluetoothHapClient profile connects or disconnects.

LE audio hearing aid will be a CSIP set. According to the CSIP spec, we will show the device is active without side information if there is only one device in the CSIP set and show the device is active left and right if both side of hearing aids are in the CSIP set.

Bug: 249235823
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityHearingAidPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingAidPairingDialogFragmentTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingAidUtilsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableMediaBluetoothDeviceUpdaterTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsPairOtherControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsRelatedToolsControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ConnectedBluetoothDeviceUpdaterTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableMediaDeviceGroupControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDevicesSliceTest
Change-Id: Ifd66cbd81481a1eb94613d89dfd8df16b8c43ae8
2022-11-23 07:50:51 +00:00
Betty Chang
ba3405bd37 Merge "Make bluetooth switch not discoverable via SliceDeepLinkTrampoline" into tm-qpr-dev am: c8f6bba271 am: f200134fc4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20410007

Change-Id: If5d07a5a3ae099d1cb765a2fbb3069ab0ac00285
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-11-16 19:57:13 +00:00
Betty Chang
f200134fc4 Merge "Make bluetooth switch not discoverable via SliceDeepLinkTrampoline" into tm-qpr-dev am: c8f6bba271
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20410007

Change-Id: I5195b9513c575bc28f0b6930a6c40c570048f6d4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-11-16 03:10:44 +00:00
changbetty
c706aa6108 Make bluetooth switch not discoverable via SliceDeepLinkTrampoline
Bug: 244423101
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothSwitchPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDashboardFragmentTest
Test: manual test by test apk

Change-Id: I13562d227e06627fac33239a9d21fd405a18d012
2022-11-08 08:50:29 +00:00
TreeHugger Robot
6fc971363b Merge "Add unaudited exported flag to exposed runtime receivers" 2022-11-04 08:13:28 +00:00
Wei Wang
fcd3c608bf Ignore all failing tests in Settings for now in order to unblock ATP V2
migration

Test: m RunSettingsRoboTests passed on desktop
Change-Id: I2450aaa083aabdf224e070f588441bb01206972b
Bug: 252671269
2022-10-13 17:29:36 +08:00
Raphael Kim
98ace3f8f2 Merge "Fix build error from AssociationInfo constructor change" 2022-10-12 18:43:42 +00:00
Michael Groover
6ce57b67fb Add unaudited exported flag to exposed runtime receivers
Android T allows apps to declare a runtime receiver as not exported
by invoking registerReceiver with a new RECEIVER_NOT_EXPORTED flag;
receivers registered with this flag will only receive broadcasts from
the platform and the app itself. However to ensure developers can
properly protect their receivers, all apps targeting U or later
registering a receiver for non-system broadcasts must specify either
the exported or not exported flag when invoking #registerReceiver;
if one of these flags is not provided, the platform will throw a
SecurityException. This commit updates all the exposed receivers
with a new RECEIVER_EXPORTED_UNAUDITED flag to maintain the existing
behavior of exporting the receiver while also flagging the receiver
for audit before the U release.

Bug: 234659204
Test: Build
Change-Id: I8fbcf69575d829f26e02d661498d69f5fc8740d0
2022-10-11 17:26:02 -05:00
SongFerng Wang
1a53831df1 Merge "Add the way for hiding the "contact sharing" on the pairing dialog" into tm-qpr-dev am: f970d63b3b am: d57eb2054b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20033811

Change-Id: I9c0d24248c6e67d9c43139fa4668fbd4fc813c77
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-09-28 20:46:23 +00:00
SongFerng Wang
d57eb2054b Merge "Add the way for hiding the "contact sharing" on the pairing dialog" into tm-qpr-dev am: f970d63b3b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20033811

Change-Id: Ic22f2dd71f84556397bf44344812aa5fe156c024
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-09-28 20:09:16 +00:00
SongFerng Wang
f970d63b3b Merge "Add the way for hiding the "contact sharing" on the pairing dialog" into tm-qpr-dev 2022-09-28 19:45:33 +00:00
SongFerngWang
51cabc5553 Add the way for hiding the "contact sharing" on the pairing dialog
There is the way to hide the "contact sharing" at the "device details"
page, but it did not be implemented on the pairing dialog. Add this way
on pairing dialog.

Bug: 246668278
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothPairingControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothPairingDialogTest

Change-Id: I472acb80e70fe5d2a59cb9eed95fcbccfa417fa5
2022-09-27 16:06:49 +08:00
Jason Hsu
b161bade37 Merge "Fix not on the top when entering device detail page" into tm-qpr-dev am: 9ac1712145
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20008465

Change-Id: I2a8dd8e4bb9f11ab239ec7a4e420b38c52623a66
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-09-22 08:27:44 +00:00
jasonwshsu
35e20d5ace Fix not on the top when entering device detail page
Root Cause: Added SpacePreference in xml let the page renders order
incorrectly.

Solution: That SpacePreference should only be visible when the device is
hearing aid.

Bug: 245681095
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsPairOtherControllerTest
Merged-In: Ic0be940c8466b5e1e301255868c29d06bd4428bd
Merged-In: I442445a861898258a73f37ad8f85bcee387fbf58
Change-Id: Icca48d9c2643507638b2b581d052530521cce5df
2022-09-21 23:54:15 +08:00
Jason Hsu
a1cb4fd446 Merge "Fix not on the top when entering device detail page" 2022-09-21 14:50:32 +00:00
jasonwshsu
cfec092373 Fix not on the top when entering device detail page
Root Cause: Added SpacePreference in xml let the page renders order
incorrectly.

Solution: That SpacePreference should only be visible when the device is
hearing aid.

Bug: 245681095
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDetailsPairOtherControllerTest
Change-Id: Ic0be940c8466b5e1e301255868c29d06bd4428bd
2022-09-21 16:00:12 +08:00
TreeHugger Robot
6c0140b340 Merge "Add Spatial audio settings for LE Audio devices" into tm-qpr-dev am: f4d0d420bc
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19967512

Change-Id: I5dcdb9766382a9b4c9d36601ef71da4181e1dea2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-09-16 21:00:54 +00:00
Hugh Chen
bdfd8531a9 Add Spatial audio settings for LE Audio devices
- Adds TYPE_BLE_HEADSE, TYPE_BLE_SPEAKER and TYPE_BLE_BROADCAST for
  display Le audio devices.
- Adds TYPE_HEARING_AID for display hearing aid devices.

Bug: 244528781
Test: make -j64 RunSettingsRoboTests
Change-Id: I1278a5e0c93fdc5a4873df68032128ffedfe72d6
Merged-In: I1278a5e0c93fdc5a4873df68032128ffedfe72d6
(cherry picked from commit f8704add51)
2022-09-16 15:51:15 +00:00
Jason Hsu
036833c54d Merge "Fix display wrong information "pair left/right ear" on device detail page when disconnect one of HA" 2022-09-16 09:34:39 +00:00