RouteDiscoveryPreference: Filter out null/empty values

Bug: 152851867
Test: atest mediaroutertest and ran CTS
Change-Id: I9880a756082cd2522fecbc000cea9ed98ee9d175
diff --git a/media/java/android/media/RouteDiscoveryPreference.java b/media/java/android/media/RouteDiscoveryPreference.java
index 2e038e6..68f2964 100644
--- a/media/java/android/media/RouteDiscoveryPreference.java
+++ b/media/java/android/media/RouteDiscoveryPreference.java
@@ -21,6 +21,7 @@
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.text.TextUtils;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -29,6 +30,7 @@
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * A media route discovery preference describing the features of routes that media router
@@ -169,8 +171,9 @@
         Bundle mExtras;
 
         public Builder(@NonNull List<String> preferredFeatures, boolean activeScan) {
-            mPreferredFeatures = new ArrayList<>(Objects.requireNonNull(preferredFeatures,
-                    "preferredFeatures must not be null"));
+            Objects.requireNonNull(preferredFeatures, "preferredFeatures must not be null");
+            mPreferredFeatures = preferredFeatures.stream().filter(str -> !TextUtils.isEmpty(str))
+                    .collect(Collectors.toList());
             mActiveScan = activeScan;
         }
 
@@ -211,8 +214,9 @@
          */
         @NonNull
         public Builder setPreferredFeatures(@NonNull List<String> preferredFeatures) {
-            mPreferredFeatures = new ArrayList<>(Objects.requireNonNull(preferredFeatures,
-                            "preferredFeatures must not be null"));
+            Objects.requireNonNull(preferredFeatures, "preferredFeatures must not be null");
+            mPreferredFeatures = preferredFeatures.stream().filter(str -> !TextUtils.isEmpty(str))
+                    .collect(Collectors.toList());
             return this;
         }