notifyHierarchyChanged() is used before when we have
connected/disconnect deivce in same list. So only use it in
DevicePickerFragment.java, not other normal fragments.
Also that call will rebuild whole preference list, which is heavy.
Bug: 119479725
Test: Manual
Change-Id: I06cf221588001b38634fec9f02dee8bc1e561ea8
Add new method to get rainbow bt icon and also refactor
AdaptiveHomepageIcon:
1. Rename
2. Add ConstantState
Bug: 126425211
Test: RunSettingsRoboTests
Change-Id: Idb8aaf253d0d9e2ab33d8852f093e6689ebadde4
Changed out BatteryMeterDrawable to inherit from ThemedBatteryDrawable
instead of BatteryMeterDrawableBase. Also removed warning text paint
because it seemed unused and simplified the interface.
Bug: 123705805
Test: visual
Change-Id: I30496e3d8881803d9d3d8a316c10387482a8f610
If it is updated, we need to refresh UI to display latest information
Fixes: 124455912
Test: RunSettingsRoboTests
Change-Id: I73b03f4931e3c2b0d367bbd2d3b2057b26c84b59
1. Update isAvailable() in controller
2. Update method to get fast pair icon
Bug: 124455912
Test: RunSettingsRoboTests
Change-Id: I24a04c8c91d74e9b8b7e8746ad6279fafa37f0a9
1. Add callback to listen to device update
2. Add charging support for bt battery icon
3. When disconnected, only show main icon
Follow CL will update battery icon to show exclamation when it is
low.
Bug: 124455912
Test: RunSettingsRoboTests
Change-Id: I03fb3bf4c4b77711e14b1f2f53733771b525fe4b
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
As for unthethered headset, get BT data from BT metadata, rather than
CachedBluetoothDevice
Bug: 122460277
Test: RunSettingsRoboTests
Change-Id: Ifb5507cbbce9602726ba272c12d1bf95eff91001
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
For current design, message sharing option only display when
mapPermisson != CachedBluetoothDevice.ACCESS_UNKNOWN. MAP permisson only
saved when user reject requset twice or accept request, if user just
reject once, permission will be ACCESS_UNKNOWN and message sharing
option will not display. This patch remove the check of
MessageRejectionCount and always save message permission choice.
Bug: 120291728
Test: reject message access request and check device details page
Change-Id: I071491d3c4134ed348e195f054b6557e397cdd6a
Since we moved old ActionButtonPreference into
SettingsLib, we need to update new imports and
declaration in Settings source code.
Test: robotest, manual test
Bug: 120005054
Change-Id: I1e3514ba68a856071c81534d54c99c3d1a11a8ca
- Replace new SliceAction with SliceAction.createDeeplink() or
SliceAction.create()
Test: make RunSettingsRoboTests
Change-Id: Ied34469d2220d8220a2dcc6c2fb4d32dd9cd9b8c
Fixes: 119879284
- Remove LayoutPreference in Settings source code.
- Remove unused style, layout
- Replace old imports to com.android.settingslib.widget.LayoutPreference
- Replace old XML tag to com.android.settingslib.widget.LayoutPreference
Test: robotest, manual test
Bug: 120005054
Change-Id: I9ae1ae14a16f443e11ac5d75b6038c7c5e253844
Since new UI design only exist two button in layout,
we don't need these methods anymore.
Test: robotest
Bug: 116346008
Change-Id: If2e8f7dddb9c13e480438f36fe3c5d6affa4e9ff
-handle UI updating when sub device connection state changes
-add test case
Bug: 112735753
Test: make -j42 RunSettingsRoboTests
Change-Id: Ie2643657c47a0956aac3f8cac4bfdbdea0399ce8
Don't add connected devices under "Available devices"
Bug: 113568981
Test: Bluetooth Pairing Test with some devices and accessories
Change-Id: I2cce35cd5c237ea90cf1c128e951816474c7a658
This method check whether it has connected profile, not physical
connection between devices.
It make more sense to use it in settings:
1. We only care about whether it has active profile(i.e. A2dp, hfp..)
2. Sometime when profile is disconnected, BluetoothDevice.isConnected()
still return true. This may make UI flaky.
Bug: 79947085
Test: RunSettingsRoboTests
Change-Id: I44039704508a742c7a8aef0a035afcf169b08939
In the Device details of Settings App and when using two Hearing Aids
devices (left and right sides), this will fix the connect state messages
for these two devices. Also added Robo tests for the changes.
Bug: 116725094
Bug: 117074814
Test: Manual tests and also ran RunSettingsLibRoboTests and RunSettingsRoboTests.
Change-Id: I169cda4a1658b0a67cc7c7367b38d57a021e6953
Merged-In: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
Merged-In: I169cda4a1658b0a67cc7c7367b38d57a021e6953
1. Show up to 3 devices in main page
2. Add "See all" preference to go ot detail page
Bug: 116350449
Test: Screenshot && RunSettingsRoboTests
Change-Id: Iee0de8a2b7f2543e946a117ba2d9ca9dde6c8678
The dialog may become null after onDestroy has been invoked, so
we need to catch this case.
This CL also moves the listener outside to make it easy to test.
Change-Id: I4ce640c5bdaf1f201f9fecb14b3e5e38e10d4b79
Fixes: 115679393
Test: RunSettingsRoboTests
This reverts commit 3029efc5f7.
Reason for revert:
To fix null pointer crash in Pairing dialog. Dialog maybe triggered by intent, in which LocalBluetoothManager couldn't have instance for BluetoothDevice and will return null. As a result, we need to depend on method in CachedBluetoothManager to handle it.
Bug: 115754654
Bug: 112735753
Change-Id: I1ebf1f1c2829cfb75e6c382df5acf785fe54a185
This is a bug from ag/4210612, in which it only update PBAP info
for USER_ENTRY_DIALOG. So in other kind of dialogs it never upload
correct PBAP info to bluetooth backend.
This CL fix it by updating PBAP for all dialogs.
Change-Id: Ia39eee1acaece555e8e5a305ec2c803294d7efbd
Merged-In: Ia39eee1acaece555e8e5a305ec2c803294d7efbd
Bug: 109842273
Bug: 72872376
Test: RunSettingsRoboTests
(cherry picked from commit 7015e20a55)