Move isMediaOutputDisabled() from Utils to LocalMediaManager
- Move isMediaOutputDisabled() from Utils to LocalMediaManager. The isMediaOutputDisabled() is used to check whether should disable the entry point of media output, it's not a general method for Settings. To reduce the usage of Utils.java, it's better to let LocalMediaManager handle this method. - Add test cases. Bug: 169378895 Test: make -j42 RunSettingsRoboTests Change-Id: I5dbed2ad4de6dca8105414f8b7d7ce7141e258bd
This commit is contained in:
@@ -18,10 +18,6 @@ package com.android.settings;
|
|||||||
|
|
||||||
import static android.content.Intent.EXTRA_USER;
|
import static android.content.Intent.EXTRA_USER;
|
||||||
import static android.content.Intent.EXTRA_USER_ID;
|
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_ABBREV_MONTH;
|
||||||
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
|
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.graphics.drawable.VectorDrawable;
|
||||||
import android.hardware.face.FaceManager;
|
import android.hardware.face.FaceManager;
|
||||||
import android.hardware.fingerprint.FingerprintManager;
|
import android.hardware.fingerprint.FingerprintManager;
|
||||||
import android.media.MediaRoute2Info;
|
|
||||||
import android.media.MediaRouter2Manager;
|
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.LinkProperties;
|
import android.net.LinkProperties;
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
@@ -1143,31 +1137,4 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
drawable.draw(canvas);
|
drawable.draw(canvas);
|
||||||
return roundedBitmap;
|
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -247,6 +247,10 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean shouldDisableMediaOutput(String packageName) {
|
||||||
|
return mLocalMediaManager.shouldDisableMediaOutput(packageName);
|
||||||
|
}
|
||||||
|
|
||||||
private class DevicesChangedBroadcastReceiver extends BroadcastReceiver {
|
private class DevicesChangedBroadcastReceiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
@@ -122,7 +122,7 @@ public class RemoteMediaSlice implements CustomSliceable {
|
|||||||
.setValue(info.getVolume()));
|
.setValue(info.getVolume()));
|
||||||
|
|
||||||
final boolean isMediaOutputDisabled =
|
final boolean isMediaOutputDisabled =
|
||||||
Utils.isMediaOutputDisabled(mRouterManager, info.getClientPackageName());
|
getWorker().shouldDisableMediaOutput(info.getClientPackageName());
|
||||||
final SpannableString spannableTitle = new SpannableString(
|
final SpannableString spannableTitle = new SpannableString(
|
||||||
TextUtils.isEmpty(appName) ? "" : appName);
|
TextUtils.isEmpty(appName) ? "" : appName);
|
||||||
spannableTitle.setSpan(new ForegroundColorSpan(
|
spannableTitle.setSpan(new ForegroundColorSpan(
|
||||||
|
@@ -131,8 +131,8 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem
|
|||||||
seekBarPreference.setIcon(R.drawable.ic_volume_remote);
|
seekBarPreference.setIcon(R.drawable.ic_volume_remote);
|
||||||
mPreferenceCategory.addPreference(seekBarPreference);
|
mPreferenceCategory.addPreference(seekBarPreference);
|
||||||
// Add output indicator
|
// Add output indicator
|
||||||
final boolean isMediaOutputDisabled = Utils.isMediaOutputDisabled(
|
final boolean isMediaOutputDisabled = mLocalMediaManager.shouldDisableMediaOutput(
|
||||||
mRouterManager, info.getClientPackageName());
|
info.getClientPackageName());
|
||||||
final Preference preference = new Preference(mContext);
|
final Preference preference = new Preference(mContext);
|
||||||
preference.setKey(SWITCHER_PREFIX + info.getId());
|
preference.setKey(SWITCHER_PREFIX + info.getId());
|
||||||
preference.setTitle(isMediaOutputDisabled ? appName : outputTitle);
|
preference.setTitle(isMediaOutputDisabled ? appName : outputTitle);
|
||||||
|
@@ -40,8 +40,6 @@ import android.graphics.Color;
|
|||||||
import android.graphics.drawable.BitmapDrawable;
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
import android.graphics.drawable.VectorDrawable;
|
import android.graphics.drawable.VectorDrawable;
|
||||||
import android.media.MediaRoute2Info;
|
|
||||||
import android.media.MediaRouter2Manager;
|
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.LinkAddress;
|
import android.net.LinkAddress;
|
||||||
import android.net.LinkProperties;
|
import android.net.LinkProperties;
|
||||||
@@ -301,33 +299,4 @@ public class UtilsTest {
|
|||||||
|
|
||||||
assertThat(Utils.isSettingsIntelligence(mContext)).isFalse();
|
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user