From 2525c3f4c5f31ace1edc0068a3c7612337b8d44c Mon Sep 17 00:00:00 2001 From: Tim Peng Date: Mon, 11 May 2020 14:46:45 +0800 Subject: [PATCH] When only one device is selected in dynamic group, the device should be disabled -Add onSessionUpdated() callback to notify UI -Add test case Bug: 154916764 Test: make -j50 RunSettingsLibRoboTests Change-Id: I6cead2fc4411c83d9ae8122e0d761f09d9f56e57 --- .../com/android/settingslib/media/InfoMediaManager.java | 5 +++++ .../android/settingslib/media/InfoMediaManagerTest.java | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java index 1d06df08bd3a6..008a433bb7a4c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java @@ -475,5 +475,10 @@ public class InfoMediaManager extends MediaManager { public void onRequestFailed(int reason) { dispatchOnRequestFailed(reason); } + + @Override + public void onSessionUpdated(RoutingSessionInfo sessionInfo) { + dispatchDataChanged(); + } } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java index 99c568a4707b5..734866f49a533 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java @@ -624,6 +624,15 @@ public class InfoMediaManagerTest { verify(mCallback).onConnectedDeviceChanged(null); } + @Test + public void onSessionUpdated_shouldDispatchDataChanged() { + mInfoMediaManager.registerCallback(mCallback); + + mInfoMediaManager.mMediaRouterCallback.onSessionUpdated(mock(RoutingSessionInfo.class)); + + verify(mCallback).onDeviceAttributesChanged(); + } + @Test public void addMediaDevice_verifyDeviceTypeCanCorrespondToMediaDevice() { final MediaRoute2Info route2Info = mock(MediaRoute2Info.class);