Add getAllCollapsedRatTypes to NetworkTemplate am: 199f353a9e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1397953
Change-Id: I4bfdd2dcc7bd6b1e15248d7ef855fc40db018c4a
diff --git a/core/java/android/net/NetworkTemplate.java b/core/java/android/net/NetworkTemplate.java
index 4b806e7..7234eb1 100644
--- a/core/java/android/net/NetworkTemplate.java
+++ b/core/java/android/net/NetworkTemplate.java
@@ -34,6 +34,7 @@
import static android.net.NetworkStats.ROAMING_YES;
import static android.net.wifi.WifiInfo.sanitizeSsid;
+import android.annotation.NonNull;
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Parcel;
@@ -52,6 +53,8 @@
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import java.util.Objects;
@@ -490,6 +493,32 @@
}
/**
+ * Return all supported collapsed RAT types that could be returned by
+ * {@link #getCollapsedRatType(int)}.
+ */
+ @NonNull
+ public static final int[] getAllCollapsedRatTypes() {
+ final int[] ratTypes = TelephonyManager.getAllNetworkTypes();
+ final HashSet<Integer> collapsedRatTypes = new HashSet<>();
+ for (final int ratType : ratTypes) {
+ collapsedRatTypes.add(NetworkTemplate.getCollapsedRatType(ratType));
+ }
+ // Ensure that unknown type is returned.
+ collapsedRatTypes.add(TelephonyManager.NETWORK_TYPE_UNKNOWN);
+ return toIntArray(collapsedRatTypes);
+ }
+
+ @NonNull
+ private static int[] toIntArray(@NonNull Collection<Integer> list) {
+ final int[] array = new int[list.size()];
+ int i = 0;
+ for (final Integer item : list) {
+ array[i++] = item;
+ }
+ return array;
+ }
+
+ /**
* Check if matches Wi-Fi network template.
*/
private boolean matchesWifi(NetworkIdentity ident) {