diff --git a/src/com/android/car/media/MediaActivity.java b/src/com/android/car/media/MediaActivity.java
index e1b4e9e..2757a35 100644
--- a/src/com/android/car/media/MediaActivity.java
+++ b/src/com/android/car/media/MediaActivity.java
@@ -172,7 +172,7 @@
         PLAYBACK,
         /** The user is searching within a media source */
         SEARCHING,
-        /** There's no browse tree and playback doesn't work.*/
+        /** There's no browse tree and playback doesn't work. */
         FATAL_ERROR
     }
 
@@ -389,7 +389,8 @@
             mAppBarView.setTitle(null);
             updateTabs(null);
             mSearchFragment.resetSearchState();
-            changeMode(Mode.BROWSING);
+            // Changes the mode regardless of its previous value so that the views can be updated.
+            changeModeInternal(Mode.BROWSING);
             String packageName = mediaSource.getPackageName();
             updateSourcePreferences(packageName);
 
@@ -483,10 +484,18 @@
     }
 
     private void changeMode(Mode mode) {
-        if (mMode == mode) return;
+        if (mMode == mode) {
+            if (Log.isLoggable(TAG, Log.INFO)) {
+                Log.i(TAG, "Mode " + mMode + " change is ignored");
+            }
+            return;
+        }
+        changeModeInternal(mode);
+    }
 
+    private void changeModeInternal(Mode mode) {
         if (Log.isLoggable(TAG, Log.INFO)) {
-            Log.i(TAG, "Changing mode from: " + mMode+ " to: " + mode);
+            Log.i(TAG, "Changing mode from: " + mMode + " to: " + mode);
         }
 
         Mode oldMode = mMode;
