Merge "Move MediaRoute2Info API from InfoMediaDevice to MediaDevice"
This commit is contained in:
committed by
Android (Google) Code Review
commit
0a5f568a6a
@@ -16,12 +16,9 @@
|
||||
package com.android.settingslib.media;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.media.MediaRoute2Info;
|
||||
import android.media.MediaRouter2Manager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.settingslib.R;
|
||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||
@@ -62,46 +59,6 @@ public class InfoMediaDevice extends MediaDevice {
|
||||
return MediaDeviceUtils.getId(mRouteInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestSetVolume(int volume) {
|
||||
mRouterManager.requestSetVolume(mRouteInfo, volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxVolume() {
|
||||
return mRouteInfo.getVolumeMax();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCurrentVolume() {
|
||||
return mRouteInfo.getVolume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getClientPackageName() {
|
||||
return mRouteInfo.getClientPackageName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getClientAppLabel() {
|
||||
final String packageName = mRouteInfo.getClientPackageName();
|
||||
if (TextUtils.isEmpty(packageName)) {
|
||||
Log.d(TAG, "Client package name is empty");
|
||||
return mContext.getResources().getString(R.string.unknown);
|
||||
}
|
||||
try {
|
||||
final PackageManager packageManager = mContext.getPackageManager();
|
||||
final String appLabel = packageManager.getApplicationLabel(
|
||||
packageManager.getApplicationInfo(packageName, 0)).toString();
|
||||
if (!TextUtils.isEmpty(appLabel)) {
|
||||
return appLabel;
|
||||
}
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log.e(TAG, "unable to find " + packageName);
|
||||
}
|
||||
return mContext.getResources().getString(R.string.unknown);
|
||||
}
|
||||
|
||||
public boolean isConnected() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -16,14 +16,18 @@
|
||||
package com.android.settingslib.media;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.media.MediaRoute2Info;
|
||||
import android.media.MediaRouter2Manager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.IntDef;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.settingslib.R;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
@@ -113,7 +117,9 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
|
||||
*
|
||||
* @param volume is the new value.
|
||||
*/
|
||||
|
||||
public void requestSetVolume(int volume) {
|
||||
mRouterManager.requestSetVolume(mRouteInfo, volume);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -122,7 +128,7 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
|
||||
* @return max volume.
|
||||
*/
|
||||
public int getMaxVolume() {
|
||||
return 100;
|
||||
return mRouteInfo.getVolumeMax();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -131,7 +137,7 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
|
||||
* @return current volume.
|
||||
*/
|
||||
public int getCurrentVolume() {
|
||||
return 0;
|
||||
return mRouteInfo.getVolume();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -140,7 +146,7 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
|
||||
* @return package name.
|
||||
*/
|
||||
public String getClientPackageName() {
|
||||
return null;
|
||||
return mRouteInfo.getClientPackageName();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -149,7 +155,22 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
|
||||
* @return application label.
|
||||
*/
|
||||
public String getClientAppLabel() {
|
||||
return null;
|
||||
final String packageName = mRouteInfo.getClientPackageName();
|
||||
if (TextUtils.isEmpty(packageName)) {
|
||||
Log.d(TAG, "Client package name is empty");
|
||||
return mContext.getResources().getString(R.string.unknown);
|
||||
}
|
||||
try {
|
||||
final PackageManager packageManager = mContext.getPackageManager();
|
||||
final String appLabel = packageManager.getApplicationLabel(
|
||||
packageManager.getApplicationInfo(packageName, 0)).toString();
|
||||
if (!TextUtils.isEmpty(appLabel)) {
|
||||
return appLabel;
|
||||
}
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log.e(TAG, "unable to find " + packageName);
|
||||
}
|
||||
return mContext.getResources().getString(R.string.unknown);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,9 +21,6 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageStats;
|
||||
import android.media.MediaRoute2Info;
|
||||
import android.media.MediaRouter2Manager;
|
||||
|
||||
@@ -36,14 +33,11 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.shadows.ShadowPackageManager;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class InfoMediaDeviceTest {
|
||||
|
||||
private static final String TEST_PACKAGE_NAME = "com.test.packagename";
|
||||
private static final String TEST_PACKAGE_NAME2 = "com.test.packagename2";
|
||||
private static final String TEST_ID = "test_id";
|
||||
private static final String TEST_NAME = "test_name";
|
||||
|
||||
@@ -52,27 +46,13 @@ public class InfoMediaDeviceTest {
|
||||
@Mock
|
||||
private MediaRoute2Info mRouteInfo;
|
||||
|
||||
|
||||
private Context mContext;
|
||||
private InfoMediaDevice mInfoMediaDevice;
|
||||
private ShadowPackageManager mShadowPackageManager;
|
||||
private ApplicationInfo mAppInfo;
|
||||
private PackageInfo mPackageInfo;
|
||||
private PackageStats mPackageStats;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
|
||||
mAppInfo = new ApplicationInfo();
|
||||
mAppInfo.flags = ApplicationInfo.FLAG_INSTALLED;
|
||||
mAppInfo.packageName = TEST_PACKAGE_NAME;
|
||||
mAppInfo.name = TEST_NAME;
|
||||
mPackageInfo = new PackageInfo();
|
||||
mPackageInfo.packageName = TEST_PACKAGE_NAME;
|
||||
mPackageInfo.applicationInfo = mAppInfo;
|
||||
mPackageStats = new PackageStats(TEST_PACKAGE_NAME);
|
||||
|
||||
mInfoMediaDevice = new InfoMediaDevice(mContext, mRouterManager, mRouteInfo,
|
||||
TEST_PACKAGE_NAME);
|
||||
@@ -106,32 +86,4 @@ public class InfoMediaDeviceTest {
|
||||
|
||||
assertThat(mInfoMediaDevice.getId()).isEqualTo(TEST_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientPackageName_returnPackageName() {
|
||||
when(mRouteInfo.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
|
||||
|
||||
assertThat(mInfoMediaDevice.getClientPackageName()).isEqualTo(TEST_PACKAGE_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientAppLabel_matchedPackageName_returnLabel() {
|
||||
when(mRouteInfo.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
|
||||
|
||||
assertThat(mInfoMediaDevice.getClientAppLabel()).isEqualTo(
|
||||
mContext.getResources().getString(R.string.unknown));
|
||||
|
||||
mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
|
||||
|
||||
assertThat(mInfoMediaDevice.getClientAppLabel()).isEqualTo(TEST_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientAppLabel_noMatchedPackageName_returnDefault() {
|
||||
mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
|
||||
when(mRouteInfo.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME2);
|
||||
|
||||
assertThat(mInfoMediaDevice.getClientAppLabel()).isEqualTo(
|
||||
mContext.getResources().getString(R.string.unknown));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,9 +23,13 @@ import static org.mockito.Mockito.when;
|
||||
import android.bluetooth.BluetoothClass;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageStats;
|
||||
import android.media.MediaRoute2Info;
|
||||
import android.media.MediaRouter2Manager;
|
||||
|
||||
import com.android.settingslib.R;
|
||||
import com.android.settingslib.bluetooth.A2dpProfile;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
import com.android.settingslib.bluetooth.HearingAidProfile;
|
||||
@@ -39,6 +43,8 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.shadows.ShadowPackageManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -58,6 +64,8 @@ public class MediaDeviceTest {
|
||||
private static final String ROUTER_ID_2 = "RouterId_2";
|
||||
private static final String ROUTER_ID_3 = "RouterId_3";
|
||||
private static final String TEST_PACKAGE_NAME = "com.test.playmusic";
|
||||
private static final String TEST_PACKAGE_NAME2 = "com.test.playmusic2";
|
||||
private static final String TEST_APPLICATION_LABEL = "playmusic";
|
||||
private final BluetoothClass mHeadreeClass =
|
||||
new BluetoothClass(BluetoothClass.Device.AUDIO_VIDEO_HEADPHONES);
|
||||
private final BluetoothClass mCarkitClass =
|
||||
@@ -111,6 +119,10 @@ public class MediaDeviceTest {
|
||||
private InfoMediaDevice mInfoMediaDevice3;
|
||||
private List<MediaDevice> mMediaDevices = new ArrayList<>();
|
||||
private PhoneMediaDevice mPhoneMediaDevice;
|
||||
private ShadowPackageManager mShadowPackageManager;
|
||||
private ApplicationInfo mAppInfo;
|
||||
private PackageInfo mPackageInfo;
|
||||
private PackageStats mPackageStats;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -394,4 +406,46 @@ public class MediaDeviceTest {
|
||||
|
||||
verify(mMediaRouter2Manager).selectRoute(TEST_PACKAGE_NAME, mRouteInfo1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientPackageName_returnPackageName() {
|
||||
when(mRouteInfo1.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
|
||||
|
||||
assertThat(mInfoMediaDevice1.getClientPackageName()).isEqualTo(TEST_PACKAGE_NAME);
|
||||
}
|
||||
|
||||
private void initPackage() {
|
||||
mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
|
||||
mAppInfo = new ApplicationInfo();
|
||||
mAppInfo.flags = ApplicationInfo.FLAG_INSTALLED;
|
||||
mAppInfo.packageName = TEST_PACKAGE_NAME;
|
||||
mAppInfo.name = TEST_APPLICATION_LABEL;
|
||||
mPackageInfo = new PackageInfo();
|
||||
mPackageInfo.packageName = TEST_PACKAGE_NAME;
|
||||
mPackageInfo.applicationInfo = mAppInfo;
|
||||
mPackageStats = new PackageStats(TEST_PACKAGE_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientAppLabel_matchedPackageName_returnLabel() {
|
||||
initPackage();
|
||||
when(mRouteInfo1.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
|
||||
|
||||
assertThat(mInfoMediaDevice1.getClientAppLabel()).isEqualTo(
|
||||
mContext.getResources().getString(R.string.unknown));
|
||||
|
||||
mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
|
||||
|
||||
assertThat(mInfoMediaDevice1.getClientAppLabel()).isEqualTo(TEST_APPLICATION_LABEL);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientAppLabel_noMatchedPackageName_returnDefault() {
|
||||
initPackage();
|
||||
mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
|
||||
when(mRouteInfo1.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME2);
|
||||
|
||||
assertThat(mInfoMediaDevice1.getClientAppLabel()).isEqualTo(
|
||||
mContext.getResources().getString(R.string.unknown));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user