Fix secondary ids comparison in strictEquals

Since the comparator of identifer is not implemented, secondary
ids cannot be sorted in ProgramSelector constructor. Two secondary
id arrays should be compared using list in strictEquals method.

Bug: 249616039
Test: atest ProgramSelectorTest#
strictEquals_withDifferentSecondaryIdsOrders_returnsTrue

Change-Id: I2460c4399ff8564b638254f71e9d7c883868854a
This commit is contained in:
Weilin Xu
2022-09-29 18:35:50 +00:00
parent 06e1cc480a
commit 93fe39ef92

View File

@@ -279,7 +279,6 @@ public final class ProgramSelector implements Parcelable {
mPrimaryId = Objects.requireNonNull(primaryId);
mSecondaryIds = secondaryIds;
mVendorIds = vendorIds;
Arrays.sort(mSecondaryIds);
}
/**
@@ -525,7 +524,9 @@ public final class ProgramSelector implements Parcelable {
// vendorIds are ignored for equality
// programType can be inferred from primaryId, thus not checked
return mPrimaryId.equals(other.getPrimaryId())
&& Arrays.equals(mSecondaryIds, other.mSecondaryIds);
&& mSecondaryIds.length == other.mSecondaryIds.length
&& Arrays.asList(mSecondaryIds).containsAll(
Arrays.asList(other.mSecondaryIds));
}
private ProgramSelector(Parcel in) {