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

Commit 112ccd7a authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "AudioManager: test API for multi audio focus" into main

parents 2c6b109b 9f6172c8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2084,6 +2084,7 @@ package android.media {
    method @NonNull public android.media.VolumePolicy getVolumePolicy();
    method public boolean hasRegisteredDynamicPolicy();
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean isCsdEnabled();
    method @FlaggedApi("android.media.audio.audio_focus_desktop") public boolean isMultiAudioFocusEnabled();
    method @RequiresPermission(android.Manifest.permission.CALL_AUDIO_INTERCEPTION) public boolean isPstnCallAudioInterceptable();
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean isVolumeControlUsingVolumeGroups();
    method public void permissionUpdateBarrier();
+21 −3
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO;
import static android.content.Context.DEVICE_ID_DEFAULT;
import static android.media.audio.Flags.FLAG_ASSISTANT_VOLUME_CONTROL;
import static android.media.audio.Flags.FLAG_AUDIO_FOCUS_DESKTOP;
import static android.media.audio.Flags.FLAG_DEPRECATE_STREAM_BT_SCO;
import static android.media.audio.Flags.FLAG_FOCUS_EXCLUSIVE_WITH_RECORDING;
import static android.media.audio.Flags.FLAG_FOCUS_FREEZE_TEST_API;
@@ -9102,9 +9103,11 @@ public class AudioManager {
        }
    }


    /** @hide
     * TODO: make this a @SystemApi */
    /**
     * @hide
     * Configures whether multi-audio focus is enabled or not.
     * @param enabled whether multi-audio focus is enabled or not.
     */
    @RequiresPermission(Manifest.permission.MODIFY_AUDIO_ROUTING)
    public void setMultiAudioFocusEnabled(boolean enabled) {
        try {
@@ -9114,6 +9117,21 @@ public class AudioManager {
        }
    }

    /**
     * @hide
     * Queries whether multi-audio focus is enabled or not.
     * @return true if multi-audio focus is enabled, false otherwise
     */
    @FlaggedApi(FLAG_AUDIO_FOCUS_DESKTOP)
    @TestApi
    public boolean isMultiAudioFocusEnabled() {
        try {
            return getService().isMultiAudioFocusEnabled();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }


    /**
     * Retrieves the Hardware A/V synchronization ID corresponding to the given audio session ID.
+2 −0
Original line number Diff line number Diff line
@@ -538,6 +538,8 @@ interface IAudioService {
    @EnforcePermission("MODIFY_AUDIO_ROUTING")
    oneway void setMultiAudioFocusEnabled(in boolean enabled);

    boolean isMultiAudioFocusEnabled();

    int setPreferredDevicesForCapturePreset(
            in int capturePreset, in List<AudioDeviceAttributes> devices);

+12 −0
Original line number Diff line number Diff line
@@ -15683,6 +15683,18 @@ public class AudioService extends IAudioService.Stub
        }
    }
    /**
     * Queries whether multi-audio focus is enabled or not.
     * @return true if multi-audio focus is enabled, false otherwise
     * @see AudioManager#isMultiAudioFocusEnabled()
     */
    public boolean isMultiAudioFocusEnabled() {
        if (mMediaFocusControl != null) {
            return mMediaFocusControl.getMultiAudioFocusEnabled();
        }
        return false;
    }
    /**
     * @hide
     * Sets an additional audio output device delay in milliseconds.