diff options
| author | 2019-01-25 17:55:01 +0900 | |
|---|---|---|
| committer | 2020-01-22 11:10:32 +0900 | |
| commit | b30b38506b51dd3460f02568b6b161f2b9753a73 (patch) | |
| tree | 4889d0b8798c8af84ea8c2fd5c89ea97eb29aa21 | |
| parent | cd3676cefd7190f2cd6e4ae4e87de1adf1add393 (diff) | |
Fix equals and hashCode APIs on TvTrackInfo
Current hashCode API cares only for mId and it returns same values
even if other member variables are different.
To avoid for returning same values between different TvTrackInfo of
each program, hashCode API should care all variables used on
equals API. Note that mId is defined as unique only in the same
program.
Test: build
Change-Id: I4d72f6ce80141d92f86e548804e1f0257ed6fcfb
| -rw-r--r-- | media/java/android/media/tv/TvTrackInfo.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/media/java/android/media/tv/TvTrackInfo.java b/media/java/android/media/tv/TvTrackInfo.java index 4318a0ae7d06..d4c4a62932e6 100644 --- a/media/java/android/media/tv/TvTrackInfo.java +++ b/media/java/android/media/tv/TvTrackInfo.java @@ -352,8 +352,7 @@ public final class TvTrackInfo implements Parcelable { if (!TextUtils.equals(mId, obj.mId) || mType != obj.mType || !TextUtils.equals(mLanguage, obj.mLanguage) || !TextUtils.equals(mDescription, obj.mDescription) - || mEncrypted != obj.mEncrypted - || !Objects.equals(mExtra, obj.mExtra)) { + || mEncrypted != obj.mEncrypted) { return false; } @@ -381,7 +380,16 @@ public final class TvTrackInfo implements Parcelable { @Override public int hashCode() { - return Objects.hashCode(mId); + int result = Objects.hash(mId, mType, mLanguage, mDescription); + + if (mType == TYPE_AUDIO) { + result = Objects.hash(result, mAudioChannelCount, mAudioSampleRate); + } else if (mType == TYPE_VIDEO) { + result = Objects.hash(result, mVideoWidth, mVideoHeight, mVideoFrameRate, + mVideoPixelAspectRatio); + } + + return result; } public static final @android.annotation.NonNull Parcelable.Creator<TvTrackInfo> CREATOR = |