1. Check open from a notification
2. Check open from Bluetooth entry
3. If the inputDeviceIdentifier is not null, open the next page
directly.
4. Add extra to record the class of sender for the future metrics.
Demo: http://screencast/cast/NDU4MTYxOTIzMTg4MzI2NHxiYTQ0ODE5Ny02YQ
Bug: 269212353
Test: manual, atest
[Pass] atest KeyboardSettingsPreferenceControllerTest
[Pass] atest PhysicalKeyboardPreferenceControllerTest
Change-Id: Ie874003260896bbb949806623913e70486e4731d
No need to gate under feature flag, it only shows if
Spatial Audio exists on device.
Test: Connect BT headset and see spatial audio settings
Bug: 264709855
Change-Id: Iddda3eb430b62880036bbe8c680addca07a60ab2
Styluses can now be identified using the newly added DEVICE_TYPE_STYLUS
metadata.
Bug: 251200056
Test: StylusDevicesControllerTest
Change-Id: Ie89f6419cd16ed97299944b35497c6b2ee764dab
* 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
The bluetooth extra control slice requires a parameter for the page width, but sometimes the onGlobalLayout callback is after the the fragment refresh the preference available state. Thus, setting the extra control slice to invisible, because the uri is not been set yet. So, add the displayPreference call to update the visibility of the slicePreference.
Bug: 251450477
Test: manual build and QA automation testing.
Change-Id: If7e5f426fc8b1d6887a5977600eaeaf3ede553d1
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
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