Merge "Disable group volume control bar" into sc-dev
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settingslib.media;
|
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_BLUETOOTH_A2DP;
|
||||||
import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER;
|
import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER;
|
||||||
import static android.media.MediaRoute2Info.TYPE_DOCK;
|
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.MediaRoute2Info.TYPE_WIRED_HEADSET;
|
||||||
import static android.media.MediaRoute2ProviderService.REASON_UNKNOWN_ERROR;
|
import static android.media.MediaRoute2ProviderService.REASON_UNKNOWN_ERROR;
|
||||||
|
|
||||||
|
import android.annotation.TargetApi;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.bluetooth.BluetoothAdapter;
|
import android.bluetooth.BluetoothAdapter;
|
||||||
import android.bluetooth.BluetoothDevice;
|
import android.bluetooth.BluetoothDevice;
|
||||||
@@ -38,6 +40,7 @@ import android.content.Context;
|
|||||||
import android.media.MediaRoute2Info;
|
import android.media.MediaRoute2Info;
|
||||||
import android.media.MediaRouter2Manager;
|
import android.media.MediaRouter2Manager;
|
||||||
import android.media.RoutingSessionInfo;
|
import android.media.RoutingSessionInfo;
|
||||||
|
import android.os.Build;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -391,6 +394,38 @@ public class InfoMediaManager extends MediaManager {
|
|||||||
return shouldDisableMediaOutput;
|
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() {
|
private void refreshDevices() {
|
||||||
mMediaDevices.clear();
|
mMediaDevices.clear();
|
||||||
mCurrentConnectedDevice = null;
|
mCurrentConnectedDevice = null;
|
||||||
|
|||||||
@@ -408,6 +408,13 @@ public class LocalMediaManager implements BluetoothCallback {
|
|||||||
return mInfoMediaManager.shouldDisableMediaOutput(packageName);
|
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
|
@VisibleForTesting
|
||||||
MediaDevice updateCurrentConnectedDevice() {
|
MediaDevice updateCurrentConnectedDevice() {
|
||||||
MediaDevice connectedDevice = null;
|
MediaDevice connectedDevice = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user