diff options
| author | 2020-01-08 18:07:18 +0800 | |
|---|---|---|
| committer | 2020-01-09 06:24:09 +0000 | |
| commit | e572b83ccee7fa127a08b61594d2fd9a504d5fc9 (patch) | |
| tree | 08c1164ce6c552a658d98da1c89692559d1f73ad | |
| parent | 6b913b90540807d092fc611bce0f97530b617ecc (diff) | |
Add callback to notify the device attributes is changed
Since the new UX design hope device list order not changed
when user doing transfer. This cl add new callback
"onDeviceAttributesChanged()" to handle this request.
The UI will update without change the list order when get this
callback.
The onDeviceAttributesChanged() will be called when
device attributes is changed, such like device name is changed or
device state is changed.
Bug: 144535188
Test: make -j42 RunSettingsLibRoboTests
Change-Id: I1e99d64b3e7f600d5d1cf56c84b15f98455e3d2e
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java | 24 | ||||
| -rw-r--r-- | packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java | 6 |
2 files changed, 21 insertions, 9 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java index 5b4ef3a47386..70b56ed0b391 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java @@ -194,6 +194,14 @@ public class LocalMediaManager implements BluetoothCallback { } } + void dispatchDeviceAttributesChanged() { + synchronized (mCallbacks) { + for (DeviceCallback callback : mCallbacks) { + callback.onDeviceAttributesChanged(); + } + } + } + /** * Stop scan MediaDevice */ @@ -306,14 +314,12 @@ public class LocalMediaManager implements BluetoothCallback { } mCurrentConnectedDevice = connectDevice; updatePhoneMediaDeviceSummary(); - dispatchDeviceListUpdate(); + dispatchDeviceAttributesChanged(); } @Override public void onDeviceAttributesChanged() { - addPhoneDeviceIfNecessary(); - removePhoneMediaDeviceIfNecessary(); - dispatchDeviceListUpdate(); + dispatchDeviceAttributesChanged(); } } @@ -327,7 +333,7 @@ public class LocalMediaManager implements BluetoothCallback { * * @param devices MediaDevice list */ - void onDeviceListUpdate(List<MediaDevice> devices); + default void onDeviceListUpdate(List<MediaDevice> devices) {}; /** * Callback for notifying the connected device is changed. @@ -338,6 +344,12 @@ public class LocalMediaManager implements BluetoothCallback { * {@link MediaDeviceState#STATE_CONNECTING}, * {@link MediaDeviceState#STATE_DISCONNECTED} */ - void onSelectedDeviceStateChanged(MediaDevice device, @MediaDeviceState int state); + default void onSelectedDeviceStateChanged(MediaDevice device, + @MediaDeviceState int state) {}; + + /** + * Callback for notifying the device attributes is changed. + */ + default void onDeviceAttributesChanged() {}; } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java index 98bb74ad0718..894aa78a978e 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java @@ -355,7 +355,7 @@ public class LocalMediaManagerTest { mLocalMediaManager.mMediaDeviceCallback.onConnectedDeviceChanged(TEST_DEVICE_ID_2); assertThat(mLocalMediaManager.getCurrentConnectedDevice()).isEqualTo(device2); - verify(mCallback).onDeviceListUpdate(any()); + verify(mCallback).onDeviceAttributesChanged(); } @Test @@ -373,7 +373,7 @@ public class LocalMediaManagerTest { mLocalMediaManager.registerCallback(mCallback); mLocalMediaManager.mMediaDeviceCallback.onConnectedDeviceChanged(TEST_DEVICE_ID_1); - verify(mCallback, never()).onDeviceListUpdate(any()); + verify(mCallback, never()).onDeviceAttributesChanged(); } @Test @@ -382,6 +382,6 @@ public class LocalMediaManagerTest { mLocalMediaManager.mMediaDeviceCallback.onDeviceAttributesChanged(); - verify(mCallback).onDeviceListUpdate(any()); + verify(mCallback).onDeviceAttributesChanged(); } } |