Merge changes from topic "presubmit-am-ce228227dd884d36b260736a830a50cf" into sc-v2-dev-plus-aosp am: 72ab33e79d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16689464 Change-Id: I62f7e4633f9d2d7fe6bd047f9ce6299eb5a7adf1
This commit is contained in:
@@ -153,6 +153,10 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
|
||||
|
||||
@VisibleForTesting
|
||||
void refresh() {
|
||||
refresh(false);
|
||||
}
|
||||
|
||||
void refresh(boolean deviceSetChanged) {
|
||||
// Update header icon
|
||||
final int iconRes = getHeaderIconRes();
|
||||
final IconCompat iconCompat = getHeaderIcon();
|
||||
@@ -190,7 +194,8 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
|
||||
}
|
||||
if (!mAdapter.isDragging() && !mAdapter.isAnimating()) {
|
||||
int currentActivePosition = mAdapter.getCurrentActivePosition();
|
||||
if (currentActivePosition >= 0 && currentActivePosition < mAdapter.getItemCount()) {
|
||||
if (!deviceSetChanged && currentActivePosition >= 0
|
||||
&& currentActivePosition < mAdapter.getItemCount()) {
|
||||
mAdapter.notifyItemChanged(currentActivePosition);
|
||||
} else {
|
||||
mAdapter.notifyDataSetChanged();
|
||||
@@ -231,6 +236,11 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
|
||||
mMainThreadHandler.post(() -> refresh());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeviceListChanged() {
|
||||
mMainThreadHandler.post(() -> refresh(true));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dismissDialog() {
|
||||
dismiss();
|
||||
|
||||
@@ -171,7 +171,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback {
|
||||
@Override
|
||||
public void onDeviceListUpdate(List<MediaDevice> devices) {
|
||||
buildMediaDevices(devices);
|
||||
mCallback.onRouteChanged();
|
||||
mCallback.onDeviceListChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -570,10 +570,15 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback {
|
||||
void onMediaStoppedOrPaused();
|
||||
|
||||
/**
|
||||
* Override to handle the device updating.
|
||||
* Override to handle the device status or attributes updating.
|
||||
*/
|
||||
void onRouteChanged();
|
||||
|
||||
/**
|
||||
* Override to handle the devices set updating.
|
||||
*/
|
||||
void onDeviceListChanged();
|
||||
|
||||
/**
|
||||
* Override to dismiss dialog.
|
||||
*/
|
||||
|
||||
@@ -201,7 +201,7 @@ public class MediaOutputControllerTest extends SysuiTestCase {
|
||||
|
||||
assertThat(devices.containsAll(mMediaDevices)).isTrue();
|
||||
assertThat(devices.size()).isEqualTo(mMediaDevices.size());
|
||||
verify(mCb).onRouteChanged();
|
||||
verify(mCb).onDeviceListChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user