Ignore playback state update if state is the same

Bug: 134158997
Test: Manual

Change-Id: I15e63e3f53b87f0cab3c8833698d3d58daa1ae0f
(cherry picked from commit 37584e87225046236c24b6df172c4d7115c2404f)
diff --git a/service/src/com/android/car/CarMediaService.java b/service/src/com/android/car/CarMediaService.java
index 5728bf2..bda7fbc 100644
--- a/service/src/com/android/car/CarMediaService.java
+++ b/service/src/com/android/car/CarMediaService.java
@@ -51,7 +51,6 @@
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.Deque;
 import java.util.HashMap;
 import java.util.List;
@@ -273,9 +272,12 @@
     private class MediaControllerCallback extends MediaController.Callback {
 
         private final MediaController mMediaController;
+        private int mPreviousPlaybackState;
 
         private MediaControllerCallback(MediaController mediaController) {
             mMediaController = mediaController;
+            PlaybackState state = mediaController.getPlaybackState();
+            mPreviousPlaybackState = (state == null) ? PlaybackState.STATE_NONE : state.getState();
         }
 
         private void register() {
@@ -288,10 +290,11 @@
 
         @Override
         public void onPlaybackStateChanged(@Nullable PlaybackState state) {
-            if (state.getState() == PlaybackState.STATE_PLAYING) {
-                updatePrimaryMediaSourceWithCurrentlyPlaying(
-                        Collections.singletonList(mMediaController));
+            if (state.getState() == PlaybackState.STATE_PLAYING
+                    && state.getState() != mPreviousPlaybackState) {
+                setPrimaryMediaSource(mMediaController.getPackageName());
             }
+            mPreviousPlaybackState = state.getState();
         }
     }