diff --git a/src/com/android/settings/notification/RemoteVolumeGroupController.java b/src/com/android/settings/notification/RemoteVolumeGroupController.java index 50f9ed524da..919b6d01d23 100644 --- a/src/com/android/settings/notification/RemoteVolumeGroupController.java +++ b/src/com/android/settings/notification/RemoteVolumeGroupController.java @@ -16,6 +16,8 @@ package com.android.settings.notification; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.Context; import android.content.Intent; import android.media.MediaRouter2Manager; @@ -53,6 +55,7 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem @VisibleForTesting static final String SWITCHER_PREFIX = "OUTPUT_SWITCHER"; + @Nullable private PreferenceCategory mPreferenceCategory; private final List mRoutingSessionInfos = new ArrayList<>(); @@ -61,6 +64,7 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem @VisibleForTesting MediaRouter2Manager mRouterManager; + // Called via reflection from BasePreferenceController#createInstance(). public RemoteVolumeGroupController(Context context, String preferenceKey) { super(context, preferenceKey); if (mLocalMediaManager == null) { @@ -71,6 +75,19 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem mRouterManager = MediaRouter2Manager.getInstance(context); } + @VisibleForTesting + /* package */ RemoteVolumeGroupController( + @NonNull Context context, + @NonNull String preferenceKey, + @NonNull LocalMediaManager localMediaManager, + @NonNull MediaRouter2Manager mediaRouter2Manager) { + super(context, preferenceKey); + mLocalMediaManager = localMediaManager; + mRouterManager = mediaRouter2Manager; + mLocalMediaManager.registerCallback(this); + mLocalMediaManager.startScan(); + } + @Override public int getAvailabilityStatus() { if (mRoutingSessionInfos.isEmpty()) { diff --git a/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java b/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java index 1e42e18bbc7..06bd90b38f4 100644 --- a/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java @@ -103,9 +103,9 @@ public class RemoteVolumeGroupControllerTest { mContext = spy(RuntimeEnvironment.application); doReturn(mMediaSessionManager).when(mContext).getSystemService( Context.MEDIA_SESSION_SERVICE); - mController = new RemoteVolumeGroupController(mContext, KEY_REMOTE_VOLUME_GROUP); - mController.mLocalMediaManager = mLocalMediaManager; - mController.mRouterManager = mRouterManager; + mController = + new RemoteVolumeGroupController( + mContext, KEY_REMOTE_VOLUME_GROUP, mLocalMediaManager, mRouterManager); mPreferenceCategory = spy(new PreferenceCategory(mContext)); mPreferenceCategory.setKey(mController.getPreferenceKey());