Merge "Fix AudioProductStrategy.equals implementation" into udc-dev am: c4f7591217

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23051408

Change-Id: Ia3dddf0985bb3bfaac6331cf01306436a60161bb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-05-05 18:09:39 +00:00
committed by Automerger Merge Worker
2 changed files with 38 additions and 1 deletions

View File

@@ -203,10 +203,16 @@ public final class AudioProductStrategy implements Parcelable {
AudioProductStrategy thatStrategy = (AudioProductStrategy) o;
return mName == thatStrategy.mName && mId == thatStrategy.mId
return mId == thatStrategy.mId
&& Objects.equals(mName, thatStrategy.mName)
&& Arrays.equals(mAudioAttributesGroups, thatStrategy.mAudioAttributesGroups);
}
@Override
public int hashCode() {
return Objects.hash(mId, mName, Arrays.hashCode(mAudioAttributesGroups));
}
/**
* @param name of the product strategy
* @param id of the product strategy
@@ -460,6 +466,12 @@ public final class AudioProductStrategy implements Parcelable {
&& Arrays.equals(mAudioAttributes, thatAag.mAudioAttributes);
}
@Override
public int hashCode() {
return Objects.hash(mVolumeGroupId, mLegacyStreamType,
Arrays.hashCode(mAudioAttributes));
}
public int getStreamType() {
return mLegacyStreamType;
}

View File

@@ -29,11 +29,14 @@ import android.media.AudioManager;
import android.media.AudioSystem;
import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.AudioVolumeGroup;
import android.os.Parcel;
import android.platform.test.annotations.Presubmit;
import android.util.Log;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.common.testing.EqualsTester;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -231,4 +234,26 @@ public class AudioProductStrategyTest {
}
}
}
@Test
public void testEquals() {
final EqualsTester equalsTester = new EqualsTester();
AudioProductStrategy.getAudioProductStrategies().forEach(
strategy -> equalsTester.addEqualityGroup(strategy,
writeToAndFromParcel(strategy)));
equalsTester.testEquals();
}
private static AudioProductStrategy writeToAndFromParcel(
AudioProductStrategy audioProductStrategy) {
Parcel parcel = Parcel.obtain();
audioProductStrategy.writeToParcel(parcel, /*flags=*/0);
parcel.setDataPosition(0);
AudioProductStrategy unmarshalledAudioProductStrategy =
AudioProductStrategy.CREATOR.createFromParcel(parcel);
parcel.recycle();
return unmarshalledAudioProductStrategy;
}
}