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

Commit 97400971 authored by Sungsoo Lim's avatar Sungsoo Lim Committed by Automerger Merge Worker
Browse files

Merge "Revert "[Media ML] Replace AudioSystem.isActiveStream"" into sc-dev am: 75fa0482

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15390764

Change-Id: I5d0e0e4a06327f4b26add392f226d000f14e21fb
parents 3ec46b45 75fa0482
Loading
Loading
Loading
Loading
+1 −18
Original line number Diff line number Diff line
@@ -18,9 +18,6 @@ package com.android.server.media;

import android.content.Context;
import android.content.pm.PackageManager;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.AudioPlaybackConfiguration;
import android.os.Binder;

import java.io.PrintWriter;
@@ -32,7 +29,7 @@ class MediaServerUtils {
    /**
     * Verify that caller holds {@link android.Manifest.permission#DUMP}.
     */
    static boolean checkDumpPermission(Context context, String tag, PrintWriter pw) {
    public static boolean checkDumpPermission(Context context, String tag, PrintWriter pw) {
        if (context.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
                != PackageManager.PERMISSION_GRANTED) {
            pw.println("Permission Denial: can't dump " + tag + " from from pid="
@@ -43,18 +40,4 @@ class MediaServerUtils {
            return true;
        }
    }

    /**
     * Whether the given stream is currently active or not.
     */
    static boolean isStreamActive(AudioManager audioManager, int stream) {
        for (AudioPlaybackConfiguration configuration
                : audioManager.getActivePlaybackConfigurations()) {
            AudioAttributes attributes = configuration.getAudioAttributes();
            if (attributes != null && attributes.getVolumeControlStream() == stream) {
                return configuration.isActive();
            }
        }
        return false;
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.content.Intent;
import android.content.pm.ParceledListSlice;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.AudioSystem;
import android.media.MediaMetadata;
import android.media.Rating;
import android.media.VolumeProvider;
@@ -515,7 +516,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR
            public void run() {
                try {
                    if (useSuggested) {
                        if (MediaServerUtils.isStreamActive(mAudioManager, stream)) {
                        if (AudioSystem.isStreamActive(stream, 0)) {
                            mAudioManager.adjustSuggestedStreamVolumeForUid(stream,
                                    direction, flags, opPackageName, uid, pid,
                                    mContext.getApplicationInfo().targetSdkVersion);
+3 −3
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.media.AudioManager;
import android.media.AudioPlaybackConfiguration;
import android.media.AudioSystem;
import android.media.IRemoteSessionCallback;
import android.media.MediaCommunicationManager;
import android.media.Session2Token;
@@ -2147,7 +2148,7 @@ public class MediaSessionService extends SystemService implements Monitor {

            boolean preferSuggestedStream = false;
            if (isValidLocalStreamType(suggestedStream)
                    && MediaServerUtils.isStreamActive(mAudioManager, suggestedStream)) {
                    && AudioSystem.isStreamActive(suggestedStream, 0)) {
                preferSuggestedStream = true;
            }
            if (session == null || preferSuggestedStream) {
@@ -2156,8 +2157,7 @@ public class MediaSessionService extends SystemService implements Monitor {
                            + ". flags=" + flags + ", preferSuggestedStream="
                            + preferSuggestedStream + ", session=" + session);
                }
                if (musicOnly && !MediaServerUtils.isStreamActive(mAudioManager,
                        AudioManager.STREAM_MUSIC)) {
                if (musicOnly && !AudioSystem.isStreamActive(AudioManager.STREAM_MUSIC, 0)) {
                    if (DEBUG_KEY_EVENT) {
                        Log.d(TAG, "Nothing is playing on the music stream. Skipping volume event,"
                                + " flags=" + flags);