Fix AudioProductStrategy.equals implementation
... and add missing .hashCode overrides. Bug: 281036492 Test: atest AudioProductStrategyTest Change-Id: I09d23368b13052592fc8d27dd1ff985d3e508c6a
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user