Merge "Inject mocks in RemoteVolumeControllerTest via constructor" into main
diff --git a/src/com/android/settings/notification/RemoteVolumeGroupController.java b/src/com/android/settings/notification/RemoteVolumeGroupController.java
index 50f9ed5..919b6d0 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 @@
@VisibleForTesting
static final String SWITCHER_PREFIX = "OUTPUT_SWITCHER";
+ @Nullable
private PreferenceCategory mPreferenceCategory;
private final List<RoutingSessionInfo> mRoutingSessionInfos = new ArrayList<>();
@@ -61,6 +64,7 @@
@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 @@
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 1e42e18..06bd90b 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 @@
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());