From 905d8ab8435ee1e61b34955e36c8a6e41224d8e4 Mon Sep 17 00:00:00 2001 From: Ajay Panicker Date: Fri, 21 Jul 2017 13:29:57 -0700 Subject: [PATCH] Add equal overloads to some MediaDescription and MediaQueue objects (2/3) Bug: 64686424 Test: Connect to carkit and see that NowPlayingChanged only gets sent when the queue changes, run cts test Change-Id: I58c9dd0bf976485a2efefd042cd667ee433e07e1 (cherry picked from commit 6edb68bea68d5f324384f3e9e411118eb8dfc781) --- media/java/android/media/MediaDescription.java | 27 ++++++++++++++++++++++ media/java/android/media/session/MediaSession.java | 23 ++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/media/java/android/media/MediaDescription.java b/media/java/android/media/MediaDescription.java index 14485d3c43a3..e6aea99ef50b 100644 --- a/media/java/android/media/MediaDescription.java +++ b/media/java/android/media/MediaDescription.java @@ -220,6 +220,33 @@ public class MediaDescription implements Parcelable { } @Override + public boolean equals(Object o) { + if (o == null) { + return false; + } + + if (!(o instanceof MediaDescription)){ + return false; + } + + final MediaDescription d = (MediaDescription) o; + + if (!String.valueOf(mTitle).equals(String.valueOf(d.mTitle))) { + return false; + } + + if (!String.valueOf(mSubtitle).equals(String.valueOf(d.mSubtitle))) { + return false; + } + + if (!String.valueOf(mDescription).equals(String.valueOf(d.mDescription))) { + return false; + } + + return true; + } + + @Override public String toString() { return mTitle + ", " + mSubtitle + ", " + mDescription; } diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index dfd2bb35d6ea..9536d3d35206 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -48,6 +48,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; import java.util.List; +import java.util.Objects; /** * Allows interaction with media controllers, volume keys, media buttons, and @@ -1256,6 +1257,28 @@ public final class MediaSession { "Description=" + mDescription + ", Id=" + mId + " }"; } + + @Override + public boolean equals(Object o) { + if (o == null) { + return false; + } + + if (!(o instanceof QueueItem)) { + return false; + } + + final QueueItem item = (QueueItem) o; + if (mId != item.mId) { + return false; + } + + if (!Objects.equals(mDescription, item.mDescription)) { + return false; + } + + return true; + } } private static final class Command { -- 2.11.0