Root Cause: Users can not connect another ear again after they cancel
the pairing dialog in Accessibility -> hearing aids entry
Solution: Add pair button in bluetooth details page for hearing aid
device
Bug: 233038449
Test: make RunSettingsRoboTests
ROBOTEST_FILTER=BluetoothDetailsPairOtherControllerTest
Change-Id: I6a7af1c2c2263476b040233edb072cc64a2927b0
The provided uri doesn't contain the formatted string, so just append
the width at the end
Bug: 229048602
Test: make -j64 RunSettingsRoboTests
Change-Id: Idadbb4d725c8ca65bac31fbead8ac1d429ebcea9
* changes:
Add 'Live Caption' preference for hearing aids device in Device details page
Update summary in Accessibility -> Hearing aids
Header for hearing aids now listed in one summary
Add the new LE audio header
Add the battery information
Update the condition for non-LE audio header
Bug: 218626547
Test: build pass and manualy test
Change-Id: Ib9f4c388c369dc374c43dd399111e02b5555159b
Implemented the Spatial Audio and Head Tracking options, make these
features could be controlled in bluetooth detail settings.
Bug: 218960300
Test: make -j64 RunSettingsRoboTests
Change-Id: I880cc7a10fc5e2fa5d1052fff5a7b589a4ff60df
(cherry picked from commit bc2f30ca67)
Added a feature that users are able to see/remove the apps' associations
in Settings/Connected devices.
It will display the icon of the associations app, app's name and a button
that users are able to remove the associations. Also it will pop up a
dialog alerting user before remove the associations.
Screenshot:
https://screenshot.googleplex.com/APSRhW2retYmAAK
Bug: 165951651
Test: Manually Test
Change-Id: Iccaeaf516e8a78d4ef33415c1c2d7379139ec88c
This CL is used to check the bluetooth bond state when
fragment is onResume. The bluetooth detail fragment will
finish if the bluetooth bond state is BOND_NONE when
fragment is onResume.
Bug: 146621601
Test: make -j42 RunSettingsRoboTests
Change-Id: I157e1da925dcf527ce2b49ad431079d90b7c4fc3
Finish the activity after call super.onAttach().
Bug: 143187915
Test: make -j42 RunSettingsRoboTests
Change-Id: I8f205ef60797bd9eb96617d413f554613008f65b
Also update detail page to accept cold start:
1. Check whether profile is ready
2. When it is ready, refresh UI
Bug: 123665527
Test: SettingsRoboTests
Change-Id: I39382fd97e9da46fca08cd2e4a3ef15d32703664
If device supports metadata, then we display advanced UI in Bluetooth
details header. This CL adds layout for this header.
In advanced layout, it will show:
1. Device name
2. Left, right and case icon
3. Left, right and case battery level
Once API is ready, following CL will get metadata from it and set it
to UI.
Bug: 122460277
Test: RunSettingsRoboTests
Change-Id: Ide044cf9705f350b431b2cb3a9ad82cc4425a17e
Make sure setSliceUri is invoked even when it is null, where we create
SliceLiveData.
Then in lifecycle, if LiveData is not null, we will register observer.
Bug: 120803703
Test: Manual
Change-Id: I56caf2abf04c4a251ebafa5deb599d44b1c7fe92
Move edit icon in bluetooth detail page,
from header back to action bar.
Change-Id: I6afd7c611fe4db8c6c27921b5da316d8a1a000db
Fixes: 76206922
Test: make RunSettingsRoboTests
If DashboardFragment detects blocker controllers, it won't display
until:
1. All blocking controllers finish bg works.
2. Timeout
This CL adds UiBlockerController to control this behavior and
BlockingSlicePreferenceController as an example.
Bug: 120803703
Test: atest SettingsUnitTests
Change-Id: I66fc194776d46ee49b3ec7685f3167834e673ba2
Also add method to get settings uri for specific device. Use feature
provider here because it give us more flexibility.
Bug: 120803703
Test: RunSettingsRoboTests
Change-Id: I6f4840e76279c02a75b95fdecd822a72cb0b42e5
Reuse the PreferenceController and LayoutPreference however create
specific one for slice:
1. SlicePreference: container to inject slice view
2. SlicePreferenceController: handle updates for slice
Also add styles for it with default layout.
Bug: 120803703
Test: RunSettingsRoboTests
Change-Id: I6ab083ad57117e6198dcba37702a25213da78719
Having consistent import order will reduce chance of merge
conflict between internal and external master
Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
This patch focused on fixing compile errors and some runtime errors.
Test: We can't test it now. But we will have an integration test later.
Bug: 110259478
Change-Id: I16c471ddcd0fa1460c665b7f74d86fcace5ee67b
Move the edit button on Bluetooth device detail,
From action bar menu to header.
Use EntityHeaderController to add and control,
Rename those method because we use them on
more than one place now.
Change-Id: I3afad6baeab80895c109603e2ab13428582a4dd8
Fixes: 76206922
Test: make RunSettingsRoboTests
This CL tries to detect Bluetooth hearing aid devices and tries to
combine the entry of the hearing aids with the same HiSyncIds and
show only 1 entry for each pair in the connected devices list.
This CL also shows 2 battery status in the device details page.
This change shows the combined entry after a user returns to the
settings activity after pressing the back button or somehow
without killing it. It also combines the entries just after pairing.
Test: RunSettingsRoboTests
Bug: 74204427
Change-Id: I47fb0bdd96b1cc972d88a4aef85d0113985d63bb
getPreferenceControllers() -> createPreferenceControllers() for the same
reason as in ag/3647936
Bug: 73668763
Test: robotests
Change-Id: I97670a91a2a38d1c844d1b9d37f4222c5e6f45a0
We were getting the following exception when you rotated the Bluetooth
device details screen:
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.android.settings/com.android.settings.SubSettings}:
java.lang.IllegalStateException: This Activity already has an action bar
supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR
and set android:windowActionBar to false in your theme to use a Toolbar
instead.
It turns out that allowing EntityHeaderController to inflate the
settings_entity_header.xml view seems to cause this - if you instead
manually include a LayoutPreference and hand that to
EntityHeaderController, you don't have the problem.
The rotation failure couldn't be tested with Robolectric because our
version doesn't support using FragmentTestUtil.startFragment for
fragments which use PreferenceScreen's ("sorry, not yet
implemented"). So instead this includes an app test.
Bug: 62447414
Test: runtest --path=BluetoothDeviceDetailsRotationTest.java
Change-Id: I8d052d1f4ab6e2b0ca5c0e513ec366bdcc382d99
This adds an icon to the paired device details page which users can
click on to bring up a dialog for changing the display name for that
device.
We already had a dialog for changing the advertised name of the local
Bluetooth adapter that's used on the main Bluetooth settings page, so
I've made that abstract and created two new subclasses to encapsulate
the slight differences for this use case.
Bug: 62535241
Test: make RunSettingsRoboTests
Change-Id: I1c407f276e12aedf066a336e24b4ccd16d67c4df
Bug: 35877479
Test: make RunSettingsRoboTests
The existing behavior is to bring up a dialog with Bluetooth device
details with checkboxes for each supported profile. This adds a new page
that serves the same purpose with a switch for each profile and a footer
containing the MAC address.
Whether to use the new page or old dialog is controlled by a flag
accessible via BluetoothFeatureProvider.
Change-Id: I026c363d4cd33932a84017a67cbef51c258bad10