From 905d8ab8435ee1e61b34955e36c8a6e41224d8e4 Mon Sep 17 00:00:00 2001 From: Ajay Panicker Date: Fri, 21 Jul 2017 13:29:57 -0700 Subject: [PATCH 1/2] 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) --- .../java/android/media/MediaDescription.java | 27 +++++++++++++++++++ .../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 14485d3c43a3c..e6aea99ef50b9 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 dfd2bb35d6eae..9536d3d352066 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 { From 90ef7dfde0f17c6a10247d5ac214ac8291e87a39 Mon Sep 17 00:00:00 2001 From: Ajay Panicker Date: Fri, 1 Sep 2017 11:58:38 -0700 Subject: [PATCH 2/2] Bluetooth: Add AVRCP 1.3 as a developer option for AVRCP version (1/2) This is requied for the 2012 Mazda 3 carkit as the carkit refuses to send AVRCP commands other than passthrough commands when the version is anything else. AVRCP 1.3 is compatible with most carkits on the market and can be used to get most carkits working at the cost of losing many features. Bug: 37943083 Test: Set AVRCP 1.3 in developer options and see that SDP and the AVRCP capabilites have updated to reflect this. TestTracker: 105915/3975 Change-Id: I637b695e5cd8baa5f054ca0dda81372080a96269 --- packages/SettingsLib/res/values/arrays.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/SettingsLib/res/values/arrays.xml b/packages/SettingsLib/res/values/arrays.xml index db3274ab478c0..d90665a45f172 100644 --- a/packages/SettingsLib/res/values/arrays.xml +++ b/packages/SettingsLib/res/values/arrays.xml @@ -105,6 +105,7 @@ AVRCP 1.4 (Default) + AVRCP 1.3 AVRCP 1.5 AVRCP 1.6 @@ -112,6 +113,7 @@ avrcp14 + avrcp13 avrcp15 avrcp16