Merge "Non-functional refactoring of RoutingSessionInfo" into main
diff --git a/media/java/android/media/RoutingSessionInfo.java b/media/java/android/media/RoutingSessionInfo.java
index 0bc5a60..a77c943 100644
--- a/media/java/android/media/RoutingSessionInfo.java
+++ b/media/java/android/media/RoutingSessionInfo.java
@@ -55,15 +55,23 @@
     private static final String KEY_GROUP_ROUTE = "androidx.mediarouter.media.KEY_GROUP_ROUTE";
     private static final String KEY_VOLUME_HANDLING = "volumeHandling";
 
+    @NonNull
     final String mId;
+    @Nullable
     final CharSequence mName;
+    @Nullable
     final String mOwnerPackageName;
+    @NonNull
     final String mClientPackageName;
     @Nullable
     final String mProviderId;
+    @NonNull
     final List<String> mSelectedRoutes;
+    @NonNull
     final List<String> mSelectableRoutes;
+    @NonNull
     final List<String> mDeselectableRoutes;
+    @NonNull
     final List<String> mTransferableRoutes;
 
     final int mVolumeHandling;
@@ -134,7 +142,9 @@
         mIsSystemSession = src.readBoolean();
     }
 
-    private static Bundle updateVolumeHandlingInHints(Bundle controlHints, int volumeHandling) {
+    @Nullable
+    private static Bundle updateVolumeHandlingInHints(@Nullable Bundle controlHints,
+            int volumeHandling) {
         // Workaround to preserve retro-compatibility with androidx.
         // See b/228021646 for more details.
         if (controlHints != null && controlHints.containsKey(KEY_GROUP_ROUTE)) {
@@ -167,11 +177,13 @@
         return volumeHandling;
     }
 
-    private static String ensureString(String str) {
+    @NonNull
+    private static String ensureString(@Nullable String str) {
         return str != null ? str : "";
     }
 
-    private static <T> List<T> ensureList(List<? extends T> list) {
+    @NonNull
+    private static <T> List<T> ensureList(@Nullable List<? extends T> list) {
         if (list != null) {
             return Collections.unmodifiableList(list);
         }
@@ -370,11 +382,15 @@
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(@Nullable Object obj) {
+        if (obj == null) {
+            return false;
+        }
+
         if (this == obj) {
             return true;
         }
-        if (!(obj instanceof RoutingSessionInfo)) {
+        if (getClass() != obj.getClass()) {
             return false;
         }
 
@@ -454,21 +470,30 @@
      * Builder class for {@link RoutingSessionInfo}.
      */
     public static final class Builder {
-        // TODO: Reorder these (important ones first)
-        final String mId;
-        CharSequence mName;
-        String mOwnerPackageName;
-        String mClientPackageName;
-        String mProviderId;
-        final List<String> mSelectedRoutes;
-        final List<String> mSelectableRoutes;
-        final List<String> mDeselectableRoutes;
-        final List<String> mTransferableRoutes;
-        int mVolumeHandling = MediaRoute2Info.PLAYBACK_VOLUME_FIXED;
-        int mVolumeMax;
-        int mVolume;
-        Bundle mControlHints;
-        boolean mIsSystemSession;
+        @NonNull
+        private final String mId;
+        @Nullable
+        private CharSequence mName;
+        @Nullable
+        private String mOwnerPackageName;
+        @NonNull
+        private String mClientPackageName;
+        @Nullable
+        private String mProviderId;
+        @NonNull
+        private final List<String> mSelectedRoutes;
+        @NonNull
+        private final List<String> mSelectableRoutes;
+        @NonNull
+        private final List<String> mDeselectableRoutes;
+        @NonNull
+        private final List<String> mTransferableRoutes;
+        private int mVolumeHandling = MediaRoute2Info.PLAYBACK_VOLUME_FIXED;
+        private int mVolumeMax;
+        private int mVolume;
+        @Nullable
+        private Bundle mControlHints;
+        private boolean mIsSystemSession;
 
         /**
          * Constructor for builder to create {@link RoutingSessionInfo}.