From 6ca27717b214ccbec8ca1ab04bec473b56cc193a Mon Sep 17 00:00:00 2001 From: Sarah Chin Date: Wed, 12 May 2021 13:52:04 -0700 Subject: [PATCH] Add function to get APN types as ints from bitmask Bug: 181889657 Test: atest DataConnectionTest Change-Id: I473b6bc3341bc3782b9c53eeca58c2ede18b6702 --- .../java/android/telephony/data/ApnSetting.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/telephony/java/android/telephony/data/ApnSetting.java b/telephony/java/android/telephony/data/ApnSetting.java index 8b6f2b5c8f081..be1502ad49f23 100644 --- a/telephony/java/android/telephony/data/ApnSetting.java +++ b/telephony/java/android/telephony/data/ApnSetting.java @@ -1550,6 +1550,20 @@ public class ApnSetting implements Parcelable { return TextUtils.join(",", types); } + /** + * Converts the APN type bitmask to an array of all APN types + * @param apnTypeBitmask bitmask of APN types. + * @return int array of APN types + * @hide + */ + @NonNull + public static int[] getApnTypesFromBitmask(int apnTypeBitmask) { + return APN_TYPE_INT_MAP.keySet().stream() + .filter(type -> ((apnTypeBitmask & type) == type)) + .mapToInt(Integer::intValue) + .toArray(); + } + /** * Converts the integer representation of APN type to its string representation. *