Merge "Fix AudioProductStrategy.equals implementation" into udc-dev

This commit is contained in:
Treehugger Robot
2023-05-05 18:08:02 +00:00
committed by Android (Google) Code Review
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; 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); && Arrays.equals(mAudioAttributesGroups, thatStrategy.mAudioAttributesGroups);
} }
@Override
public int hashCode() {
return Objects.hash(mId, mName, Arrays.hashCode(mAudioAttributesGroups));
}
/** /**
* @param name of the product strategy * @param name of the product strategy
* @param id 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); && Arrays.equals(mAudioAttributes, thatAag.mAudioAttributes);
} }
@Override
public int hashCode() {
return Objects.hash(mVolumeGroupId, mLegacyStreamType,
Arrays.hashCode(mAudioAttributes));
}
public int getStreamType() { public int getStreamType() {
return mLegacyStreamType; return mLegacyStreamType;
} }

View File

@@ -29,11 +29,14 @@ import android.media.AudioManager;
import android.media.AudioSystem; import android.media.AudioSystem;
import android.media.audiopolicy.AudioProductStrategy; import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.AudioVolumeGroup; import android.media.audiopolicy.AudioVolumeGroup;
import android.os.Parcel;
import android.platform.test.annotations.Presubmit; import android.platform.test.annotations.Presubmit;
import android.util.Log; import android.util.Log;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.common.testing.EqualsTester;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; 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;
}
} }