diff options
author | Danny Baumann <dannybaumann@web.de> | 2016-04-05 14:21:33 +0200 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2017-01-07 01:41:45 +0200 |
commit | dac1081e8f2eca92510ebd4fd086cb4335330fce (patch) | |
tree | 0fa954c217b38097507ff2371712d8019829839a | |
parent | f3ae0e47c9616776cde11732f4cb2b7ce11fb159 (diff) | |
download | android_frameworks_opt_telephony-dac1081e8f2eca92510ebd4fd086cb4335330fce.tar.gz android_frameworks_opt_telephony-dac1081e8f2eca92510ebd4fd086cb4335330fce.tar.bz2 android_frameworks_opt_telephony-dac1081e8f2eca92510ebd4fd086cb4335330fce.zip |
Convert multi_rat_capable property into an old RIL feature.
Keeps the legacy fallback path definitions in one place.
Change-Id: Id904c53b4cf0208d7b005a4dabe1d80fc69999aa
-rw-r--r-- | src/java/com/android/internal/telephony/SubscriptionController.java | 12 | ||||
-rw-r--r-- | src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java | 16 |
2 files changed, 21 insertions, 7 deletions
diff --git a/src/java/com/android/internal/telephony/SubscriptionController.java b/src/java/com/android/internal/telephony/SubscriptionController.java index 5085b8191..23f7af07e 100644 --- a/src/java/com/android/internal/telephony/SubscriptionController.java +++ b/src/java/com/android/internal/telephony/SubscriptionController.java @@ -41,6 +41,7 @@ import android.text.TextUtils; import android.text.format.Time; import android.util.Log; import java.util.Objects; +import com.android.internal.telephony.RIL; import com.android.internal.telephony.IccCardConstants.State; import java.io.FileDescriptor; @@ -123,6 +124,7 @@ public class SubscriptionController extends ISub.Stub { /** The singleton instance. */ protected static SubscriptionController sInstance = null; protected static Phone[] sPhones; + private static CommandsInterface[] sCommandsInterfaces; protected Context mContext; protected TelephonyManager mTelephonyManager; protected CallManager mCM; @@ -152,6 +154,7 @@ public class SubscriptionController extends ISub.Stub { synchronized (SubscriptionController.class) { if (sInstance == null) { sInstance = new SubscriptionController(c); + sCommandsInterfaces = ci; } else { Log.wtf(LOG_TAG, "init() called multiple times! sInstance = " + sInstance); } @@ -1487,7 +1490,7 @@ public class SubscriptionController extends ISub.Stub { } if (atLeastOneMatch) { proxyController.setRadioCapability(rafs); - if (!SystemProperties.getBoolean("ro.ril.multi_rat_capable", true)) { + if (needsSim2gsmOnly()) { updateDataSubNetworkType(slotId, subId); } } else { @@ -1510,6 +1513,13 @@ public class SubscriptionController extends ISub.Stub { } } + private boolean needsSim2gsmOnly() { + if (sCommandsInterfaces[0] instanceof RIL) { + return ((RIL) sCommandsInterfaces[0]).needsOldRilFeature("sim2gsmonly"); + } + return false; + } + private void updateAllDataConnectionTrackers() { // Tell Phone Proxies to update data connection tracker int len = sPhones.length; diff --git a/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java b/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java index 6684965ca..233ee65c1 100644 --- a/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +++ b/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java @@ -45,6 +45,7 @@ import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; +import com.android.internal.telephony.RIL; import com.android.internal.telephony.uicc.IccCardProxy; import com.android.internal.telephony.uicc.IccConstants; import com.android.internal.telephony.uicc.IccFileHandler; @@ -109,6 +110,7 @@ public class SubscriptionInfoUpdater extends Handler { public static final String CURR_SUBID = "curr_subid"; private static Phone[] mPhone; + private CommandsInterface[] mCommandsInterfaces; private static Context mContext = null; protected static String mIccId[] = new String[PROJECT_SIM_NUM]; private static int[] mInsertSimState = new int[PROJECT_SIM_NUM]; @@ -128,6 +130,7 @@ public class SubscriptionInfoUpdater extends Handler { mContext = context; mPhone = phone; + mCommandsInterfaces = ci; mSubscriptionManager = SubscriptionManager.from(mContext); mPackageManager = IPackageManager.Stub.asInterface(ServiceManager.getService("package")); mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); @@ -543,13 +546,8 @@ public class SubscriptionInfoUpdater extends Handler { if (userNwType != SubscriptionManager.DEFAULT_NW_MODE && userNwType != networkType) { networkType = userNwType; } - boolean isDsds = TelephonyManager.getDefault().getMultiSimConfiguration() - == TelephonyManager.MultiSimVariants.DSDS; - if (DBG) Rlog.d(LOG_TAG, "[setDefaultDataSubNetworkType] subId=" + subId); - if (DBG) Rlog.d(LOG_TAG, "[setDefaultDataSubNetworkType] isDSDS=" + isDsds); - boolean isMultiRat = SystemProperties.getBoolean("ro.ril.multi_rat_capable", true); - if (isDsds && !isMultiRat) { + if (needsSim2gsmOnly()) { int networkType2 = Phone.NT_MODE_GSM_ONLY; // Hardcoded due to modem limitation int slotId1 = SubscriptionManager.DEFAULT_SIM_SLOT_INDEX; int slotId2 = SubscriptionManager.DEFAULT_SIM_SLOT_INDEX; @@ -593,6 +591,12 @@ public class SubscriptionInfoUpdater extends Handler { networkType); } + private boolean needsSim2gsmOnly() { + if (mCommandsInterfaces[0] instanceof RIL) { + return ((RIL) mCommandsInterfaces[0]).needsOldRilFeature("sim2gsmonly"); + } + return false; + } private void updateCarrierServices(int slotId, String simState) { CarrierConfigManager configManager = (CarrierConfigManager) |