From c13da8741661a32302151447445344a6c5fb67e6 Mon Sep 17 00:00:00 2001 From: SongFerngWang Date: Mon, 16 Dec 2019 18:33:59 +0800 Subject: [PATCH] [mainline] Decouple ServiceState.bitmaskHasTech and getBitmaskForTech Bug: 146314969 Test: Build pass. make RunSettingsRoboTests ROBOTEST_FILTER=ApnEditorTest Change-Id: I1e9eeab9d886a2910c7db8b59cfe267c51c5920c Merged-In: I1600a96a729fc3b555eab5bc80b069663c8eb00a --- .../android/settings/network/ApnEditor.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/network/ApnEditor.java b/src/com/android/settings/network/ApnEditor.java index 1451a40efc4..62673ab77f8 100644 --- a/src/com/android/settings/network/ApnEditor.java +++ b/src/com/android/settings/network/ApnEditor.java @@ -29,7 +29,6 @@ import android.os.Bundle; import android.os.PersistableBundle; import android.provider.Telephony; import android.telephony.CarrierConfigManager; -import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; @@ -1000,7 +999,7 @@ public class ApnEditor extends SettingsPreferenceFragment bearerBitmask = 0; break; } else { - bearerBitmask |= ServiceState.getBitmaskForTech(Integer.parseInt(bearer)); + bearerBitmask |= getBitmaskForTech(Integer.parseInt(bearer)); } } callUpdate = setIntValueAndCheckIfDiff(values, @@ -1012,7 +1011,7 @@ public class ApnEditor extends SettingsPreferenceFragment int bearerVal; if (bearerBitmask == 0 || mBearerInitialVal == 0) { bearerVal = 0; - } else if (ServiceState.bitmaskHasTech(bearerBitmask, mBearerInitialVal)) { + } else if (bitmaskHasTech(bearerBitmask, mBearerInitialVal)) { bearerVal = mBearerInitialVal; } else { // bearer field was being used but bitmask has changed now and does not include the @@ -1304,4 +1303,20 @@ public class ApnEditor extends SettingsPreferenceFragment return (String) mData[index]; } } + + private static int getBitmaskForTech(int radioTech) { + if (radioTech >= 1) { + return (1 << (radioTech - 1)); + } + return 0; + } + + private static boolean bitmaskHasTech(int bearerBitmask, int radioTech) { + if (bearerBitmask == 0) { + return true; + } else if (radioTech >= 1) { + return ((bearerBitmask & (1 << (radioTech - 1))) != 0); + } + return false; + } }