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

Commit 50fbcdd4 authored by yucliu's avatar yucliu Committed by Yuchen Liu
Browse files

Make AudioManager.setWiredDeviceConnectionState a system api

Expose AudioManager.setWiredDeviceConnectionState as a SystemApi, to let
the privileged app building with system sdk to use.

Flag: EXEMPT see b/373465238
Bug: 344037635
Test: Build
Change-Id: I28aae38f0df718e046989b937c715ba44987bff5
parent e07636be
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -7338,6 +7338,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);
@@ -7347,6 +7348,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,