From 2a9eef7a3be53cb8da1e6e4f394062d0301474a3 Mon Sep 17 00:00:00 2001 From: Ajay Panicker Date: Fri, 21 Jul 2017 13:29:57 -0700 Subject: Improve AVRCP quality and state handling (2/2) Bug: 64749777 Test: Play music with various car kits and see that metadata shows up See go/oc-avrcp-sotu - 8/15/20 OC + Patches for further info Change-Id: I58c9dd0bf976485a2efefd042cd667ee433e07e1 --- 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 @@ -219,6 +219,33 @@ public class MediaDescription implements Parcelable { dest.writeParcelable(mMediaUri, flags); } + @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 { -- cgit v1.2.3-59-g8ed1b