Bug: 289884263
Bug: 289957406
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothLeAudioDeviceDetailsPreferenceControllerTest
Test: Checks the LE Audio toggle is not shown in Device Detail by default
Change-Id: I2c6430c791dd852d238d7122a72f218f395c4a0b
Crash happens when rotated screen.
QrCodeScanModeFragment should only have default constructor.
Remove unused params to fix.
To start this page,
adb shell am start \
-a android.settings.BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER
Fix: 287363885
Test: Manually
Change-Id: I3c4bcfdb8ae6ddf750e16d8e7565cb9d45d11788
- When SliceManager try to pinSlice, process may not have the permssion
yet, so in Androix lib it use try/catch to avoid Security exception.
However, if SliceManger quickly unpinSlice after pinSlice, process
may still not get the permission yet, then due to no security
exception, it cause the settings crash.
Bug: 283065718
Test: atest passed
Test: Manual test passed
Change-Id: I2293fca73e65dfaa34237abe57e0c6a3fe0f62bb
Since user can open two settings app(one is via settings app button and other one is via quick settings) and user can switch them to foreground by the recent page. If user can goto the deviceDetails at Settings_A and then changes the config value at settings_B, then the user goes back Settings_A to check the UI. If config is in the init, the UI can't refresh the UI.
Bug: 285086232
Test: build pass.
Change-Id: I2284940eddcd02c543522b60f951c0d8d25775fd
Bug: 284790607
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothLeAudioDeviceDetailsPreferenceControllerTest
Test: Checks the LE Audio toggle is shown in Device Detail by default
Change-Id: Id301815513e8066941d3e4c44ab2e7b4d5ed011b
The bluetooth device preference needs to refresh UI after MetadataChanged
Fix: 282877247
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothDevicePreferenceTest
Change-Id: I02cb07a6b255242e4877089ce2f3b7559ce02362
Sometimes the cached bluetooth device is not found and we the
BluetoothPairingController does not know if this device is a member of a
set. But if this is a late bond then it is a set member so we still want
to display that additional message.
Bug: 282193044
Test: manual
Tag: #feature
Change-Id: I9e7da093b118a81097dc83460e9b93ce2e477482
If a coordinated set member is bonding late the user will be notified and
asked for confirmation on pairing with this device. The dialog box will
display specific message for this case.
Bug: 282193044
Test: manual
Tag: #feature
Change-Id: Ie9d79282dd432a542ea02ef477019be6dfbce997
Since the LE audio have two or more devices in the same group and
the UI show their status at one preference, the UI need to register
callback for each of the devices, and also refresh the deviceList.
Bug: 278155752
Test: local test to pairing the device and check the battery part
Change-Id: I2fcde92a1f68b8437465b234820f7bad13dfc444
The LE audio structure have two or more devices, it use CSIP to combine
them with the groupId. It breaks the UI structure, since the UI use the
map to save relationship between the bluetoothDevice and preference.
There are two or more devices using the same UI, it causes UI show the
wrong preference when CSIP do switching of device.
Remove the unuse device when UI refreshing.
Bug: 281697186
Test: Build pass
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableMediaDeviceGroupControllerTest
Change-Id: I798cf9edb590c4a25273913d2f2faf0ed4364ba9
* 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
Non-hearing devices are listed in "pair new hearing devices page" if we click the "See more devices" button and go back from "general pair new devices page".
Root cause:
Two types of Bluetooth scanning happen simultaneously and the scanning results of different scanning methods are handled in the same place. Currently the BLE scanning callback “onScanResult()” directly calls “onDeviceAdded()” method to handle the new scanned devices. This method is mainly called when receiving a broadcast of a new device found in Bluetooth classic scanning. The general pair new devices page uses Bluetooth classic scanning and the pair new hearing devices page uses Bluetooth LE scanning. The life cycle ordering when going back from general pair new devices page to pair new hearing devices page will be "pair new hearing devices page".onStart() -> "general pair new devices page".onStop(). It means the classic scanning is not stopped while the BLE scanning starts and this causes the scanning results from classic scanning unexpectedly added to the list which should only show the scanning results from BLE scanning.
Solution:
Separates the handling part of two scanning methods. Leaves "onDeviceAdded" handling Bluetooth classic scanning results only, and handles BLE scanning results in the “onScanResult” callback directly.
Bug: 279374435
Test: checks the result by switching back from "general pair new devices page" to "pair new hearing devices page"
Test: make RunSettingsRoboTests ROBOTEST_FILTER=DeviceListPreferenceFragmentTest
Change-Id: Iebdde401ffb3dc0569478730a140a5dd7add115b
- 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
This reverts commit 6edb515a9f.
Reason for revert: we need this change and need to merge together with prebuilt
Bug: 280626194
Change-Id: Id883c6c7c778154038c249f7be8e9fabf52299c3
This reverts commit 345889b5e2.
Reason for revert: Accidental merge, should merge together with prebuilt
Bug: 280626194
Change-Id: I93f66f22b55eb906f8e079de35f2db00b102c788
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
The metadata have main_battery and device is not untethered device,
then UI show battery by metadata.
Bug: 273907230
Test: atest AdvancedBluetoothDetailsHeaderControllerTest
Change-Id: I73d8a69c81fe234a5c576ca3769c1b079ac0ceb4
- display disable status directly
- click disabled MainSwitchBar will show devicepolicy dialog
- make sure BT and location use MainSwitchBar correctly
Bug: 260406688
Test: manual
Change-Id: I8bb57213eec6dd5e991af580e1a06ebf8a867c28
The Settings' 2 panel did not support SlicePreference, since it
always open activity with NEW_TASK and it casues the settings can't
set new page at right side.
Bug: 270544054
Test: build pass. local test: the phone pair the buds with fastpair, and
then check the slice preferences.
atest BlockingPrefWithSliceControllerTest (pass)
Change-Id: I0e8abfd284492f04ab322a5bed13741fc6b25b34
Solution: Finish the page immediately to back to previous page when already BONDED the device in
all bluetooth device page.
Bug: 270096758
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ViewAllBluetoothDevicesPreferenceControllerTest
Change-Id: I13a88c3fbe0c6851f9446a9f574a1c18f934cd2e
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