summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author hughchen <hughchen@google.com> 2020-01-08 18:07:18 +0800
committer Hugh Chen <hughchen@google.com> 2020-01-09 06:24:09 +0000
commite572b83ccee7fa127a08b61594d2fd9a504d5fc9 (patch)
tree08c1164ce6c552a658d98da1c89692559d1f73ad
parent6b913b90540807d092fc611bce0f97530b617ecc (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.java24
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java6
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();
}
}