We rely on using `filter` is null or not to determine which type of
Bluetooth scanning method is going to be used (Classic of LE). Add a
variable to clearly indicate current scan type for better readibility.
Bug:289189853
Test: make RunSettingsRoboTests ROBOTEST_FILTER=DeviceListPreferenceFragmentTest
Change-Id: I85a26d61410367bd617a0194ba3bfe7ed1b03356
We only show connected hearing devices in the hearing devices page now.
When user pairing a device from pairing page and back to the hearing
devices page after the device is bonded, it's confusing no device shown
in the list because the device is still connecting to profiles. We
should show the connecting device to avoid confusion.
Bug: 283268686
Test: make RunSettingsRoboTests ROBOTEST_FILTER=DeviceListPreferenceFragmentTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=AvailableHearingDeviceUpdaterTest
Change-Id: Id3b29c12b80c282736a3e6ca73bcf317e0652b89
In Change Ia9750adb6b4c1424d084381e9d7c2ca8e7912391, addCachedDevices()
becomes async, but the filter is set outside of addCachedDevices(),
which makes the filter not apply to addCachedDevices().
Direct pass the filter to addCachedDevices() to fix this issue.
Also migrate the test to Kotlin so we can test coroutine.
Fix: 289876965
Test: manual - check BT pairing page
Test: m RunSettingsRoboTests
Change-Id: I95b16840881747ec9f69e5cd778e456bcc8a7626
(cherry picked from commit 8dd32ab07d)
Merged-In: I95b16840881747ec9f69e5cd778e456bcc8a7626
In Change Ia9750adb6b4c1424d084381e9d7c2ca8e7912391, addCachedDevices()
becomes async, but the filter is set outside of addCachedDevices(),
which makes the filter not apply to addCachedDevices().
Direct pass the filter to addCachedDevices() to fix this issue.
Also migrate the test to Kotlin so we can test coroutine.
Fix: 289876965
Test: manual - check BT pairing page
Test: m RunSettingsRoboTests
Change-Id: I95b16840881747ec9f69e5cd778e456bcc8a7626
This reverts commit c123b2e5a8.
Reason for revert: Since the phase 2 launch plan was moved to next timeline at b/289884263.
Change-Id: I54ff20c0d9599da7f47e2254f721be6007a9204a
Bug: 289884263
Test: make RunSettingsRoboTests ROBOTEST_FILTER=BluetoothLeAudioDeviceDetailsPreferenceControllerTest
Test: Checks the LE Audio toggle is shown in Device Detail by default
Change-Id: I3affeebd9b2c59d24f4eaa76a1a22a714e968976
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
This reverts commit f4c5c8ef5e.
Reason for revert: at stage3, removing this summary.
Bug: 289184862
Change-Id: I6b18a7e2dee9d8fcfb331e53d7a57cc43574da54
LE audio has more capability and better quality than ASHA has. When LE audio turned on, ASHA should be off to avoid media streaming profile conflict.
Bug: 287525854
Change-Id: I3c5c9012c167b920e484b39374fe8174191b094d
Test: manual
- When the user leaves the page, stop the searching
- After the buds are added into broadcast, then stop the searching
Bug: 287136134
Test: build pass. manually testing
Change-Id: I305a9c6ba8cca1bd5c3c0e1d78ad4a84f9a155b7
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
There is heavy work to do when add device to list in the
DeviceListPreferenceFragment, off load these work from main thread
to solve the issue.
Make devicePreferenceMap a ConcurrentHashMap to avoid potential race
condition.
Also no longer use getCachedPreference(key) since we not put anything
into the cache, the fallback flow is always used.
Also in BluetoothDevicePreference.onPreferenceAttributesChanged(), move
more heavy work to background thread.
Using System.currentTimeMillis() to sort devices could cause flaky
because System.currentTimeMillis() could be same for different device,
use AtomicInteger instead.
Fix: 286628533
Test: Following the step in bug
Change-Id: Ia9750adb6b4c1424d084381e9d7c2ca8e7912391
- 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