Merge "Recording activity notification: return list of configuration" into nyc-dev

This commit is contained in:
Jean-Michel Trivi
2016-05-23 20:49:28 +00:00
committed by Android (Google) Code Review
11 changed files with 43 additions and 23 deletions

View File

@@ -19585,7 +19585,7 @@ package android.media {
method public void adjustVolume(int, int); method public void adjustVolume(int, int);
method public void dispatchMediaKeyEvent(android.view.KeyEvent); method public void dispatchMediaKeyEvent(android.view.KeyEvent);
method public int generateAudioSessionId(); method public int generateAudioSessionId();
method public android.media.AudioRecordingConfiguration[] getActiveRecordingConfigurations(); method public java.util.List<android.media.AudioRecordingConfiguration> getActiveRecordingConfigurations();
method public android.media.AudioDeviceInfo[] getDevices(int); method public android.media.AudioDeviceInfo[] getDevices(int);
method public int getMode(); method public int getMode();
method public java.lang.String getParameters(java.lang.String); method public java.lang.String getParameters(java.lang.String);
@@ -19731,7 +19731,7 @@ package android.media {
public static abstract class AudioManager.AudioRecordingCallback { public static abstract class AudioManager.AudioRecordingCallback {
ctor public AudioManager.AudioRecordingCallback(); ctor public AudioManager.AudioRecordingCallback();
method public void onRecordingConfigChanged(android.media.AudioRecordingConfiguration[]); method public void onRecordingConfigChanged(java.util.List<android.media.AudioRecordingConfiguration>);
} }
public static abstract interface AudioManager.OnAudioFocusChangeListener { public static abstract interface AudioManager.OnAudioFocusChangeListener {

View File

@@ -196,6 +196,10 @@ package android.media {
ctor public AudioFormat(); ctor public AudioFormat();
} }
public static abstract class AudioManager.AudioRecordingCallback {
method public deprecated void onRecordingConfigChanged(android.media.AudioRecordingConfiguration[]);
}
} }
package android.media.tv { package android.media.tv {

View File

@@ -21092,7 +21092,7 @@ package android.media {
method public void adjustVolume(int, int); method public void adjustVolume(int, int);
method public void dispatchMediaKeyEvent(android.view.KeyEvent); method public void dispatchMediaKeyEvent(android.view.KeyEvent);
method public int generateAudioSessionId(); method public int generateAudioSessionId();
method public android.media.AudioRecordingConfiguration[] getActiveRecordingConfigurations(); method public java.util.List<android.media.AudioRecordingConfiguration> getActiveRecordingConfigurations();
method public android.media.AudioDeviceInfo[] getDevices(int); method public android.media.AudioDeviceInfo[] getDevices(int);
method public int getMode(); method public int getMode();
method public java.lang.String getParameters(java.lang.String); method public java.lang.String getParameters(java.lang.String);
@@ -21246,7 +21246,7 @@ package android.media {
public static abstract class AudioManager.AudioRecordingCallback { public static abstract class AudioManager.AudioRecordingCallback {
ctor public AudioManager.AudioRecordingCallback(); ctor public AudioManager.AudioRecordingCallback();
method public void onRecordingConfigChanged(android.media.AudioRecordingConfiguration[]); method public void onRecordingConfigChanged(java.util.List<android.media.AudioRecordingConfiguration>);
} }
public static abstract interface AudioManager.OnAudioFocusChangeListener { public static abstract interface AudioManager.OnAudioFocusChangeListener {

View File

@@ -194,6 +194,10 @@ package android.media {
ctor public AudioFormat(); ctor public AudioFormat();
} }
public static abstract class AudioManager.AudioRecordingCallback {
method public deprecated void onRecordingConfigChanged(android.media.AudioRecordingConfiguration[]);
}
} }
package android.media.tv { package android.media.tv {

View File

@@ -19654,7 +19654,7 @@ package android.media {
method public void adjustVolume(int, int); method public void adjustVolume(int, int);
method public void dispatchMediaKeyEvent(android.view.KeyEvent); method public void dispatchMediaKeyEvent(android.view.KeyEvent);
method public int generateAudioSessionId(); method public int generateAudioSessionId();
method public android.media.AudioRecordingConfiguration[] getActiveRecordingConfigurations(); method public java.util.List<android.media.AudioRecordingConfiguration> getActiveRecordingConfigurations();
method public android.media.AudioDeviceInfo[] getDevices(int); method public android.media.AudioDeviceInfo[] getDevices(int);
method public int getMode(); method public int getMode();
method public java.lang.String getParameters(java.lang.String); method public java.lang.String getParameters(java.lang.String);
@@ -19800,7 +19800,7 @@ package android.media {
public static abstract class AudioManager.AudioRecordingCallback { public static abstract class AudioManager.AudioRecordingCallback {
ctor public AudioManager.AudioRecordingCallback(); ctor public AudioManager.AudioRecordingCallback();
method public void onRecordingConfigChanged(android.media.AudioRecordingConfiguration[]); method public void onRecordingConfigChanged(java.util.List<android.media.AudioRecordingConfiguration>);
} }
public static abstract interface AudioManager.OnAudioFocusChangeListener { public static abstract interface AudioManager.OnAudioFocusChangeListener {

View File

@@ -196,6 +196,10 @@ package android.media {
ctor public AudioFormat(); ctor public AudioFormat();
} }
public static abstract class AudioManager.AudioRecordingCallback {
method public deprecated void onRecordingConfigChanged(android.media.AudioRecordingConfiguration[]);
}
} }
package android.media.tv { package android.media.tv {

View File

@@ -2746,12 +2746,19 @@ public class AudioManager {
* configuration. * configuration.
*/ */
public static abstract class AudioRecordingCallback { public static abstract class AudioRecordingCallback {
/**
* This method is deprecated, override {@link #onRecordingConfigChanged(List)} instead.
* @param configs
* @removed
*/
@Deprecated
public void onRecordingConfigChanged(AudioRecordingConfiguration[] configs) {}
/** /**
* Called whenever the device recording configuration has changed. * Called whenever the device recording configuration has changed.
* @param configs array containing the results of * @param configs list containing the results of
* {@link AudioManager#getActiveRecordingConfigurations()}. * {@link AudioManager#getActiveRecordingConfigurations()}.
*/ */
public void onRecordingConfigChanged(AudioRecordingConfiguration[] configs) {} public void onRecordingConfigChanged(List<AudioRecordingConfiguration> configs) {}
} }
private static class AudioRecordingCallbackInfo { private static class AudioRecordingCallbackInfo {
@@ -2765,10 +2772,10 @@ public class AudioManager {
private final static class RecordConfigChangeCallbackData { private final static class RecordConfigChangeCallbackData {
final AudioRecordingCallback mCb; final AudioRecordingCallback mCb;
final AudioRecordingConfiguration[] mConfigs; final List<AudioRecordingConfiguration> mConfigs;
RecordConfigChangeCallbackData(AudioRecordingCallback cb, RecordConfigChangeCallbackData(AudioRecordingCallback cb,
AudioRecordingConfiguration[] configs) { List<AudioRecordingConfiguration> configs) {
mCb = cb; mCb = cb;
mConfigs = configs; mConfigs = configs;
} }
@@ -2848,10 +2855,10 @@ public class AudioManager {
/** /**
* Returns the current active audio recording configurations of the device. * Returns the current active audio recording configurations of the device.
* @return a non-null array of recording configurations. An array of length 0 indicates there is * @return a non-null list of recording configurations. An empty list indicates there is
* no recording active when queried. * no recording active when queried.
*/ */
public @NonNull AudioRecordingConfiguration[] getActiveRecordingConfigurations() { public @NonNull List<AudioRecordingConfiguration> getActiveRecordingConfigurations() {
final IAudioService service = getService(); final IAudioService service = getService();
try { try {
return service.getActiveRecordingConfigurations(); return service.getActiveRecordingConfigurations();
@@ -2909,7 +2916,7 @@ public class AudioManager {
private final IRecordingConfigDispatcher mRecCb = new IRecordingConfigDispatcher.Stub() { private final IRecordingConfigDispatcher mRecCb = new IRecordingConfigDispatcher.Stub() {
public void dispatchRecordingConfigChange(AudioRecordingConfiguration[] configs) { public void dispatchRecordingConfigChange(List<AudioRecordingConfiguration> configs) {
synchronized(mRecordCallbackLock) { synchronized(mRecordCallbackLock) {
if (mRecordCallbackList != null) { if (mRecordCallbackList != null) {
for (int i=0 ; i < mRecordCallbackList.size() ; i++) { for (int i=0 ; i < mRecordCallbackList.size() ; i++) {

View File

@@ -164,5 +164,5 @@ interface IAudioService {
oneway void unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb); oneway void unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb);
AudioRecordingConfiguration[] getActiveRecordingConfigurations(); List<AudioRecordingConfiguration> getActiveRecordingConfigurations();
} }

View File

@@ -25,6 +25,6 @@ import android.media.AudioRecordingConfiguration;
*/ */
oneway interface IRecordingConfigDispatcher { oneway interface IRecordingConfigDispatcher {
void dispatchRecordingConfigChange(in AudioRecordingConfiguration[] configs); void dispatchRecordingConfigChange(in List<AudioRecordingConfiguration> configs);
} }

View File

@@ -6342,7 +6342,7 @@ public class AudioService extends IAudioService.Stub {
mRecordMonitor.unregisterRecordingCallback(rcdb); mRecordMonitor.unregisterRecordingCallback(rcdb);
} }
public AudioRecordingConfiguration[] getActiveRecordingConfigurations() { public List<AudioRecordingConfiguration> getActiveRecordingConfigurations() {
return mRecordMonitor.getActiveRecordingConfigurations(); return mRecordMonitor.getActiveRecordingConfigurations();
} }

View File

@@ -29,6 +29,7 @@ import android.util.Log;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List;
/** /**
* Class to receive and dispatch updates from AudioSystem about recording configurations. * Class to receive and dispatch updates from AudioSystem about recording configurations.
@@ -54,7 +55,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin
if (MediaRecorder.isSystemOnlyAudioSource(source)) { if (MediaRecorder.isSystemOnlyAudioSource(source)) {
return; return;
} }
final AudioRecordingConfiguration[] configs = final List<AudioRecordingConfiguration> configs =
updateSnapshot(event, session, source, recordingInfo); updateSnapshot(event, session, source, recordingInfo);
if (configs != null){ if (configs != null){
synchronized(mClients) { synchronized(mClients) {
@@ -104,9 +105,9 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin
} }
} }
AudioRecordingConfiguration[] getActiveRecordingConfigurations() { List<AudioRecordingConfiguration> getActiveRecordingConfigurations() {
synchronized(mRecordConfigs) { synchronized(mRecordConfigs) {
return mRecordConfigs.values().toArray(new AudioRecordingConfiguration[0]); return new ArrayList<AudioRecordingConfiguration>(mRecordConfigs.values());
} }
} }
@@ -118,13 +119,13 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin
* @param recordingFormat see * @param recordingFormat see
* {@link AudioSystem.AudioRecordingCallback#onRecordingConfigurationChanged(int, int, int, int[])} * {@link AudioSystem.AudioRecordingCallback#onRecordingConfigurationChanged(int, int, int, int[])}
* for the definition of the contents of the array * for the definition of the contents of the array
* @return null if the list of active recording sessions has not been modified, an array * @return null if the list of active recording sessions has not been modified, a list
* with the current active configurations otherwise. * with the current active configurations otherwise.
*/ */
private AudioRecordingConfiguration[] updateSnapshot(int event, int session, int source, private List<AudioRecordingConfiguration> updateSnapshot(int event, int session, int source,
int[] recordingInfo) { int[] recordingInfo) {
final boolean configChanged; final boolean configChanged;
final AudioRecordingConfiguration[] configs; final ArrayList<AudioRecordingConfiguration> configs;
synchronized(mRecordConfigs) { synchronized(mRecordConfigs) {
switch (event) { switch (event) {
case AudioManager.RECORD_CONFIG_EVENT_STOP: case AudioManager.RECORD_CONFIG_EVENT_STOP:
@@ -171,7 +172,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin
configChanged = false; configChanged = false;
} }
if (configChanged) { if (configChanged) {
configs = mRecordConfigs.values().toArray(new AudioRecordingConfiguration[0]); configs = new ArrayList<AudioRecordingConfiguration>(mRecordConfigs.values());
} else { } else {
configs = null; configs = null;
} }