Add logging for media source changes
Bug: 138502858
Test: Manual
Change-Id: Iddb0e7bf7a297a19fe288da7035c72cdb5282aa6
(cherry picked from commit d35d982ff5c776d1a032d37f8af768ebc5027b99)
diff --git a/service/src/com/android/car/CarMediaService.java b/service/src/com/android/car/CarMediaService.java
index f0ca90d..af7d694 100644
--- a/service/src/com/android/car/CarMediaService.java
+++ b/service/src/com/android/car/CarMediaService.java
@@ -83,6 +83,7 @@
private final MediaSessionManager mMediaSessionManager;
private final MediaSessionUpdater mMediaSessionUpdater = new MediaSessionUpdater();
private ComponentName mPrimaryMediaComponent;
+ private ComponentName mPreviousMediaComponent;
private SharedPreferences mSharedPrefs;
// MediaController for the current active user's active media session. This controller can be
// null if playback has not been started yet.
@@ -204,6 +205,8 @@
writer.println("*CarMediaService*");
writer.println("\tCurrent media component: " + (mPrimaryMediaComponent == null ? "-"
: mPrimaryMediaComponent.flattenToString()));
+ writer.println("\tPrevious media component: " + (mPreviousMediaComponent == null ? "-"
+ : mPreviousMediaComponent.flattenToString()));
if (mActiveUserMediaController != null) {
writer.println(
"\tCurrent media controller: " + mActiveUserMediaController.getPackageName());
@@ -219,8 +222,11 @@
* @see {@link CarMediaManager#setMediaSource(ComponentName)}
*/
@Override
- public synchronized void setMediaSource(ComponentName componentName) {
+ public synchronized void setMediaSource(@NonNull ComponentName componentName) {
ICarImpl.assertPermission(mContext, android.Manifest.permission.MEDIA_CONTENT_CONTROL);
+ if (Log.isLoggable(CarLog.TAG_MEDIA, Log.DEBUG)) {
+ Log.d(CarLog.TAG_MEDIA, "Changing media source to: " + componentName.getPackageName());
+ }
setPrimaryMediaSource(componentName);
}
@@ -361,6 +367,11 @@
&& state.getState() != mPreviousPlaybackState) {
ComponentName mediaSource = getMediaSource(mMediaController.getPackageName(),
getClassName(mMediaController));
+ if (mediaSource != null && !mediaSource.equals(mPrimaryMediaComponent)
+ && Log.isLoggable(CarLog.TAG_MEDIA, Log.INFO)) {
+ Log.i(CarLog.TAG_MEDIA, "Changing media source due to playback state change: "
+ + mediaSource.flattenToString());
+ }
setPrimaryMediaSource(mediaSource);
}
mPreviousPlaybackState = state.getState();
@@ -429,6 +440,7 @@
stop();
mStartPlayback = false;
+ mPreviousMediaComponent = mPrimaryMediaComponent;
mPrimaryMediaComponent = componentName;
updateActiveMediaController(mMediaSessionManager
.getActiveSessionsForUser(null, ActivityManager.getCurrentUser()));
@@ -481,6 +493,11 @@
String newClassName = getClassName(controller);
if (!matchPrimaryMediaSource(newPackageName, newClassName)) {
ComponentName mediaSource = getMediaSource(newPackageName, newClassName);
+ if (Log.isLoggable(CarLog.TAG_MEDIA, Log.INFO)) {
+ Log.i(CarLog.TAG_MEDIA,
+ "Changing media source due to playback state change: "
+ + mediaSource.flattenToString());
+ }
setPrimaryMediaSource(mediaSource);
}
return;