Merge "Disable group volume control bar" into sc-dev

This commit is contained in:
tim peng
2021-06-03 07:04:49 +00:00
committed by Android (Google) Code Review
2 changed files with 42 additions and 0 deletions

View File

@@ -15,6 +15,7 @@
*/
package com.android.settingslib.media;
import static android.media.MediaRoute2Info.FEATURE_REMOTE_GROUP_PLAYBACK;
import static android.media.MediaRoute2Info.TYPE_BLUETOOTH_A2DP;
import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER;
import static android.media.MediaRoute2Info.TYPE_DOCK;
@@ -31,6 +32,7 @@ import static android.media.MediaRoute2Info.TYPE_WIRED_HEADPHONES;
import static android.media.MediaRoute2Info.TYPE_WIRED_HEADSET;
import static android.media.MediaRoute2ProviderService.REASON_UNKNOWN_ERROR;
import android.annotation.TargetApi;
import android.app.Notification;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
@@ -38,6 +40,7 @@ import android.content.Context;
import android.media.MediaRoute2Info;
import android.media.MediaRouter2Manager;
import android.media.RoutingSessionInfo;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
@@ -391,6 +394,38 @@ public class InfoMediaManager extends MediaManager {
return shouldDisableMediaOutput;
}
@TargetApi(Build.VERSION_CODES.R)
boolean shouldEnableVolumeSeekBar(RoutingSessionInfo sessionInfo) {
if (sessionInfo == null) {
Log.w(TAG, "shouldEnableVolumeSeekBar() package name is null or empty!");
return false;
}
final List<MediaRoute2Info> mediaRoute2Infos =
mRouterManager.getSelectedRoutes(sessionInfo);
// More than one selected route
if (mediaRoute2Infos.size() > 1) {
if (DEBUG) {
Log.d(TAG, "shouldEnableVolumeSeekBar() package name : "
+ sessionInfo.getClientPackageName()
+ ", mediaRoute2Infos.size() " + mediaRoute2Infos.size());
}
return false;
}
// Route contains group feature
for (MediaRoute2Info mediaRoute2Info : mediaRoute2Infos) {
final List<String> features = mediaRoute2Info.getFeatures();
if (features.contains(FEATURE_REMOTE_GROUP_PLAYBACK)) {
if (DEBUG) {
Log.d(TAG, "shouldEnableVolumeSeekBar() package name : "
+ mediaRoute2Info.getClientPackageName()
+ "contain group playback ");
}
return false;
}
}
return true;
}
private void refreshDevices() {
mMediaDevices.clear();
mCurrentConnectedDevice = null;

View File

@@ -408,6 +408,13 @@ public class LocalMediaManager implements BluetoothCallback {
return mInfoMediaManager.shouldDisableMediaOutput(packageName);
}
/**
* Returns {@code true} if needed to enable volume seekbar, otherwise returns {@code false}.
*/
public boolean shouldEnableVolumeSeekBar(RoutingSessionInfo sessionInfo) {
return mInfoMediaManager.shouldEnableVolumeSeekBar(sessionInfo);
}
@VisibleForTesting
MediaDevice updateCurrentConnectedDevice() {
MediaDevice connectedDevice = null;