Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b4fb531 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Disable group volume control bar" into sc-dev am: 076dfc83 am:...

Merge "Merge "Disable group volume control bar" into sc-dev am: 076dfc83 am: 14dfdc7c am: 09180348"
parents 52afeb66 465bfde0
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -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;
+7 −0
Original line number Diff line number Diff line
@@ -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;