Merge "Move isMediaOutputDisabled() from Utils to LocalMediaManager"

This commit is contained in:
TreeHugger Robot
2020-10-06 08:40:15 +00:00
committed by Android (Google) Code Review
5 changed files with 7 additions and 67 deletions

View File

@@ -18,10 +18,6 @@ package com.android.settings;
import static android.content.Intent.EXTRA_USER;
import static android.content.Intent.EXTRA_USER_ID;
import static android.media.MediaRoute2Info.TYPE_GROUP;
import static android.media.MediaRoute2Info.TYPE_REMOTE_SPEAKER;
import static android.media.MediaRoute2Info.TYPE_REMOTE_TV;
import static android.media.MediaRoute2Info.TYPE_UNKNOWN;
import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
@@ -57,8 +53,6 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.VectorDrawable;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
import android.media.MediaRoute2Info;
import android.media.MediaRouter2Manager;
import android.net.ConnectivityManager;
import android.net.LinkProperties;
import android.net.Network;
@@ -1143,31 +1137,4 @@ public final class Utils extends com.android.settingslib.Utils {
drawable.draw(canvas);
return roundedBitmap;
}
/**
* Returns {@code true} if needed to disable media output, otherwise returns {@code false}.
*/
public static boolean isMediaOutputDisabled(
MediaRouter2Manager router2Manager, String packageName) {
boolean isMediaOutputDisabled = false;
if (!TextUtils.isEmpty(packageName)) {
final List<MediaRoute2Info> infos = router2Manager.getAvailableRoutes(packageName);
if (infos.size() == 1) {
final MediaRoute2Info info = infos.get(0);
final int deviceType = info.getType();
switch (deviceType) {
case TYPE_UNKNOWN:
case TYPE_REMOTE_TV:
case TYPE_REMOTE_SPEAKER:
case TYPE_GROUP:
isMediaOutputDisabled = true;
break;
default:
isMediaOutputDisabled = false;
break;
}
}
}
return isMediaOutputDisabled;
}
}

View File

@@ -247,6 +247,10 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker
}
boolean shouldDisableMediaOutput(String packageName) {
return mLocalMediaManager.shouldDisableMediaOutput(packageName);
}
private class DevicesChangedBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

View File

@@ -122,7 +122,7 @@ public class RemoteMediaSlice implements CustomSliceable {
.setValue(info.getVolume()));
final boolean isMediaOutputDisabled =
Utils.isMediaOutputDisabled(mRouterManager, info.getClientPackageName());
getWorker().shouldDisableMediaOutput(info.getClientPackageName());
final SpannableString spannableTitle = new SpannableString(
TextUtils.isEmpty(appName) ? "" : appName);
spannableTitle.setSpan(new ForegroundColorSpan(

View File

@@ -131,8 +131,8 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem
seekBarPreference.setIcon(R.drawable.ic_volume_remote);
mPreferenceCategory.addPreference(seekBarPreference);
// Add output indicator
final boolean isMediaOutputDisabled = Utils.isMediaOutputDisabled(
mRouterManager, info.getClientPackageName());
final boolean isMediaOutputDisabled = mLocalMediaManager.shouldDisableMediaOutput(
info.getClientPackageName());
final Preference preference = new Preference(mContext);
preference.setKey(SWITCHER_PREFIX + info.getId());
preference.setTitle(isMediaOutputDisabled ? appName : outputTitle);

View File

@@ -40,8 +40,6 @@ import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.VectorDrawable;
import android.media.MediaRoute2Info;
import android.media.MediaRouter2Manager;
import android.net.ConnectivityManager;
import android.net.LinkAddress;
import android.net.LinkProperties;
@@ -301,33 +299,4 @@ public class UtilsTest {
assertThat(Utils.isSettingsIntelligence(mContext)).isFalse();
}
@Test
public void isMediaOutputDisabled_infosSizeEqual1_returnsTrue() {
final MediaRouter2Manager router2Manager = mock(MediaRouter2Manager.class);
final MediaRoute2Info info = mock(MediaRoute2Info.class);
final List<MediaRoute2Info> infos = new ArrayList<>();
infos.add(info);
when(router2Manager.getAvailableRoutes(anyString())).thenReturn(infos);
when(info.getType()).thenReturn(0);
assertThat(Utils.isMediaOutputDisabled(router2Manager, "test")).isTrue();
}
@Test
public void isMediaOutputDisabled_infosSizeOverThan1_returnsFalse() {
final MediaRouter2Manager router2Manager = mock(MediaRouter2Manager.class);
final MediaRoute2Info info = mock(MediaRoute2Info.class);
final MediaRoute2Info info2 = mock(MediaRoute2Info.class);
final List<MediaRoute2Info> infos = new ArrayList<>();
infos.add(info);
infos.add(info2);
when(router2Manager.getAvailableRoutes(anyString())).thenReturn(infos);
when(info.getType()).thenReturn(0);
when(info2.getType()).thenReturn(0);
assertThat(Utils.isMediaOutputDisabled(router2Manager, "test")).isFalse();
}
}