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

Commit 62210b09 authored by Yuchen Liu's avatar Yuchen Liu Committed by Android (Google) Code Review
Browse files

Merge "Make AudioManager.setWiredDeviceConnectionState a system api" into main

parents a666c79a 50fbcdd4
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -7340,6 +7340,7 @@ package android.media {
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setSupportedSystemUsages(@NonNull int[]);
    method @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED, android.Manifest.permission.MODIFY_AUDIO_ROUTING}) public void setVolumeGroupVolumeIndex(int, int, int);
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setVolumeIndexForAttributes(@NonNull android.media.AudioAttributes, int, int);
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setWiredDeviceConnectionState(@NonNull android.media.AudioDeviceAttributes, int);
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean supportsBluetoothVariableLatency();
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void unregisterAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy);
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void unregisterAudioPolicyAsync(@NonNull android.media.audiopolicy.AudioPolicy);
@@ -7349,6 +7350,8 @@ package android.media {
    field public static final int AUDIOFOCUS_FLAG_DELAY_OK = 1; // 0x1
    field public static final int AUDIOFOCUS_FLAG_LOCK = 4; // 0x4
    field public static final int AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS = 2; // 0x2
    field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int DEVICE_CONNECTION_STATE_CONNECTED = 1; // 0x1
    field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int DEVICE_CONNECTION_STATE_DISCONNECTED = 0; // 0x0
    field public static final int DEVICE_VOLUME_BEHAVIOR_ABSOLUTE = 3; // 0x3
    field public static final int DEVICE_VOLUME_BEHAVIOR_ABSOLUTE_ADJUST_ONLY = 5; // 0x5
    field public static final int DEVICE_VOLUME_BEHAVIOR_ABSOLUTE_MULTI_MODE = 4; // 0x4
+30 −4
Original line number Diff line number Diff line
@@ -896,6 +896,30 @@ public class AudioManager {
     */
    public static final int USE_DEFAULT_STREAM_TYPE = Integer.MIN_VALUE;

    /** @hide */
    @IntDef(flag = false, prefix = "DEVICE_STATE", value = {
            DEVICE_CONNECTION_STATE_DISCONNECTED,
            DEVICE_CONNECTION_STATE_CONNECTED}
            )
    @Retention(RetentionPolicy.SOURCE)
    public @interface DeviceConnectionState {}

    /**
     * @hide The device connection state for disconnected devices.
     */
    @SystemApi
    @SuppressLint("UnflaggedApi") // b/373465238
    @RequiresPermission(Manifest.permission.MODIFY_AUDIO_ROUTING)
    public static final int DEVICE_CONNECTION_STATE_DISCONNECTED = 0;

    /**
     * @hide The device connection state for connected devices.
     */
    @SystemApi
    @SuppressLint("UnflaggedApi") // b/373465238
    @RequiresPermission(Manifest.permission.MODIFY_AUDIO_ROUTING)
    public static final int DEVICE_CONNECTION_STATE_CONNECTED = 1;

    private static IAudioService sService;

    /**
@@ -6726,14 +6750,16 @@ public class AudioManager {
    }

    /**
     * @hide
     * Indicate wired accessory connection state change and attributes.
     * @param state      new connection state: 1 connected, 0 disconnected
     * @param attributes attributes of the connected device
     * {@hide}
     * @param state      new connection state
     */
    @UnsupportedAppUsage
    @SystemApi
    @SuppressLint("UnflaggedApi") // b/373465238
    @RequiresPermission(Manifest.permission.MODIFY_AUDIO_ROUTING)
    public void setWiredDeviceConnectionState(AudioDeviceAttributes attributes, int state) {
    public void setWiredDeviceConnectionState(@NonNull AudioDeviceAttributes attributes,
            @DeviceConnectionState int state) {
        final IAudioService service = getService();
        try {
            service.setWiredDeviceConnectionState(attributes, state,