[BUG] audio: Misalignement of Native/Java AudioAttributes

Native audio attributes are initialized with a default source,
whereas JAVA AudioAttributes are initialized with an INVALID source.
It leads to equality failure, thus preventing to identify the
right strategy / volume group.
This CL fixes this misalignement by using the builder constructor
from AudioAttributes, thus cleaning the input source.

Test: AudioVolumeGroupTest
Bug: 238058094

Signed-off-by: Francois Gaffie <francois.gaffie@renault.com>
Change-Id: I1dca99cf60c8b3a6291743dc299324374e5752a6

Signed-off-by: François Gaffie <francois.gaffie@renault.com>
Change-Id: I13d216814db66369ae72b496f4c9ae724cc40561
This commit is contained in:
François Gaffie
2022-03-25 16:19:25 +01:00
committed by Eric Laurent
parent adbe539f8a
commit 7a89e9fb3b
2 changed files with 6 additions and 9 deletions

View File

@@ -1431,6 +1431,8 @@ public final class AudioAttributes implements Parcelable {
return new String("AudioAttributes:"
+ " usage=" + usageToString()
+ " content=" + contentTypeToString()
+ (mSource != MediaRecorder.AudioSource.AUDIO_SOURCE_INVALID
? " source=" + MediaRecorder.toLogFriendlyAudioSource(mSource) : "")
+ " flags=0x" + Integer.toHexString(mFlags).toUpperCase()
+ " tags=" + mFormattedTags
+ " bundle=" + (mBundle == null ? "null" : mBundle.toString()));

View File

@@ -22,7 +22,6 @@ import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.media.AudioAttributes;
import android.media.AudioSystem;
import android.media.MediaRecorder;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
@@ -129,9 +128,7 @@ public final class AudioProductStrategy implements Parcelable {
return aa;
}
}
return new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_UNKNOWN)
.setUsage(AudioAttributes.USAGE_UNKNOWN).build();
return DEFAULT_ATTRIBUTES;
}
/**
@@ -216,7 +213,7 @@ public final class AudioProductStrategy implements Parcelable {
@SystemApi
public @NonNull AudioAttributes getAudioAttributes() {
// We need a choice, so take the first one
return mAudioAttributesGroups.length == 0 ? (new AudioAttributes.Builder().build())
return mAudioAttributesGroups.length == 0 ? DEFAULT_ATTRIBUTES
: mAudioAttributesGroups[0].getAudioAttributes();
}
@@ -357,8 +354,7 @@ public final class AudioProductStrategy implements Parcelable {
* Default attributes, with default source to be aligned with native.
*/
private static final @NonNull AudioAttributes DEFAULT_ATTRIBUTES =
new AudioAttributes.Builder().setCapturePreset(MediaRecorder.AudioSource.DEFAULT)
.build();
new AudioAttributes.Builder().build();
/**
* @hide
@@ -428,8 +424,7 @@ public final class AudioProductStrategy implements Parcelable {
public @NonNull AudioAttributes getAudioAttributes() {
// We need a choice, so take the first one
return mAudioAttributes.length == 0 ? (new AudioAttributes.Builder().build())
: mAudioAttributes[0];
return mAudioAttributes.length == 0 ? DEFAULT_ATTRIBUTES : mAudioAttributes[0];
}
/**