Merge "Fixed API review comments on primitive types on assistant APIs" into tm-dev

This commit is contained in:
Oscar Azucena
2022-02-28 20:02:39 +00:00
committed by Android (Google) Code Review
3 changed files with 33 additions and 36 deletions

View File

@@ -6108,7 +6108,7 @@ package android.media {
public class AudioManager {
method @Deprecated public int abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void addAssistantServicesUids(@NonNull java.util.List<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void addAssistantServicesUids(@NonNull int[]);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void addOnPreferredDeviceForStrategyChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.OnPreferredDeviceForStrategyChangedListener) throws java.lang.SecurityException;
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void addOnPreferredDevicesForCapturePresetChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.OnPreferredDevicesForCapturePresetChangedListener) throws java.lang.SecurityException;
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void addOnPreferredDevicesForStrategyChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.OnPreferredDevicesForStrategyChangedListener) throws java.lang.SecurityException;
@@ -6116,9 +6116,9 @@ package android.media {
method public void clearAudioServerStateCallback();
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean clearPreferredDevicesForCapturePreset(int);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int dispatchAudioFocusChange(@NonNull android.media.AudioFocusInfo, int, @NonNull android.media.audiopolicy.AudioPolicy);
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public java.util.List<java.lang.Integer> getActiveAssistantServicesUids();
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int[] getActiveAssistantServicesUids();
method @IntRange(from=0) public long getAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo);
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public java.util.List<java.lang.Integer> getAssistantServicesUids();
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int[] getAssistantServicesUids();
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static java.util.List<android.media.audiopolicy.AudioProductStrategy> getAudioProductStrategies();
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static java.util.List<android.media.audiopolicy.AudioVolumeGroup> getAudioVolumeGroups();
method @NonNull @RequiresPermission(android.Manifest.permission.CALL_AUDIO_INTERCEPTION) public android.media.AudioRecord getCallDownlinkExtractionAudioRecord(@NonNull android.media.AudioFormat);
@@ -6143,7 +6143,7 @@ package android.media {
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int registerAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void registerMuteAwaitConnectionCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.MuteAwaitConnectionCallback);
method public void registerVolumeGroupCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.VolumeGroupCallback);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void removeAssistantServicesUids(@NonNull java.util.List<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void removeAssistantServicesUids(@NonNull int[]);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void removeOnPreferredDeviceForStrategyChangedListener(@NonNull android.media.AudioManager.OnPreferredDeviceForStrategyChangedListener);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void removeOnPreferredDevicesForCapturePresetChangedListener(@NonNull android.media.AudioManager.OnPreferredDevicesForCapturePresetChangedListener);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void removeOnPreferredDevicesForStrategyChangedListener(@NonNull android.media.AudioManager.OnPreferredDevicesForStrategyChangedListener);
@@ -6151,7 +6151,7 @@ package android.media {
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, @NonNull android.media.AudioAttributes, int, int) throws java.lang.IllegalArgumentException;
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.MODIFY_AUDIO_ROUTING}) public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, @NonNull android.media.AudioAttributes, int, int, android.media.audiopolicy.AudioPolicy) throws java.lang.IllegalArgumentException;
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int requestAudioFocus(@NonNull android.media.AudioFocusRequest, @Nullable android.media.audiopolicy.AudioPolicy);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setActiveAssistantServiceUids(@NonNull java.util.List<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setActiveAssistantServiceUids(@NonNull int[]);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean setAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo, @IntRange(from=0) long);
method public void setAudioServerStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.AudioServerStateCallback);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setDeviceVolumeBehavior(@NonNull android.media.AudioDeviceAttributes, int);

View File

@@ -91,7 +91,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* AudioManager provides access to volume and ringer mode control.
@@ -8349,100 +8348,97 @@ public class AudioManager {
}
/**
* Add UID's that can be considered as assistant.
* Add UIDs that can be considered as assistant.
*
* @param assistantUids UID's of the services that can be considered as assistant.
* @param assistantUids UIDs of the services that can be considered as assistant.
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
public void addAssistantServicesUids(@NonNull List<Integer> assistantUids) {
public void addAssistantServicesUids(@NonNull int[] assistantUids) {
try {
getService().addAssistantServicesUids(assistantUids.stream()
.mapToInt(Integer::intValue).toArray());
getService().addAssistantServicesUids(assistantUids);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
/**
* Remove UID's that can be considered as assistant.
* Remove UIDs that can be considered as assistant.
*
* @param assistantUids UID'S of the services that should be remove.
* @param assistantUids UIDs of the services that should be remove.
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
public void removeAssistantServicesUids(@NonNull List<Integer> assistantUids) {
public void removeAssistantServicesUids(@NonNull int[] assistantUids) {
try {
getService().removeAssistantServicesUids(assistantUids.stream()
.mapToInt(Integer::intValue).toArray());
getService().removeAssistantServicesUids(assistantUids);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
/**
* Get the list of assistants UIDs that been added with the
* {@link #addAssistantServicesUids(List)} (List)} and not yet removed with
* {@link #removeAssistantServicesUids(List)}
* Get the assistants UIDs that been added with the
* {@link #addAssistantServicesUids(int[])} and not yet removed with
* {@link #removeAssistantServicesUids(int[])}
*
* @return list of assistants UID's
* @return array of assistants UIDs
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
public @NonNull List<Integer> getAssistantServicesUids() {
public @NonNull int[] getAssistantServicesUids() {
try {
int[] uids = getService().getAssistantServicesUids();
return Arrays.stream(uids).boxed().collect(Collectors.toList());
return Arrays.copyOf(uids, uids.length);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
/**
* Sets UID's that can be considered as active assistant. Calling the API with a new list will
* overwrite previous list. If the list of UIDs is empty then no UID will be considered active.
* In this manner calling the API with an empty list will remove all UID's previously set.
* Sets UIDs that can be considered as active assistant. Calling the API with a new array will
* overwrite previous UIDs. If the array of UIDs is empty then no UID will be considered active.
* In this manner calling the API with an empty array will remove all UIDs previously set.
*
* @param assistantUids UID'S of the services that can be considered active assistant. Can be
* an empty list, for this no UID will be considered active.
* @param assistantUids UIDs of the services that can be considered active assistant. Can be
* an empty array, for this no UID will be considered active.
*
* <p> Note that during audio service crash reset and after boot up the list of active assistant
* UID's will be reset to an empty list (i.e. no UID will be considered as an active assistant).
* UIDs will be reset to an empty list (i.e. no UID will be considered as an active assistant).
* Just after user switch the list of active assistant will also reset to empty.
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
public void setActiveAssistantServiceUids(@NonNull List<Integer> assistantUids) {
public void setActiveAssistantServiceUids(@NonNull int[] assistantUids) {
try {
getService().setActiveAssistantServiceUids(assistantUids.stream()
.mapToInt(Integer::intValue).toArray());
getService().setActiveAssistantServiceUids(assistantUids);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
/**
* Get the list of active assistant UIDs last set with the
* {@link #setActiveAssistantServiceUids(List)}
* Get active assistant UIDs last set with the
* {@link #setActiveAssistantServiceUids(int[])}
*
* @return list of active assistants UID's
* @return array of active assistants UIDs
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
public @NonNull List<Integer> getActiveAssistantServicesUids() {
public @NonNull int[] getActiveAssistantServicesUids() {
try {
int[] uids = getService().getActiveAssistantServiceUids();
return Arrays.stream(uids).boxed().collect(Collectors.toList());
return Arrays.copyOf(uids, uids.length);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}

View File

@@ -11279,6 +11279,7 @@ public class AudioService extends IAudioService.Stub
@Override
public void setActiveAssistantServiceUids(int [] activeAssistantUids) {
enforceModifyAudioRoutingPermission();
Objects.requireNonNull(activeAssistantUids);
synchronized (mSettingsLock) {
mActiveAssistantServiceUids = activeAssistantUids;
}