aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2016-04-05 14:21:33 +0200
committerMichael Bestas <mikeioannina@gmail.com>2017-01-07 01:41:45 +0200
commitdac1081e8f2eca92510ebd4fd086cb4335330fce (patch)
tree0fa954c217b38097507ff2371712d8019829839a
parentf3ae0e47c9616776cde11732f4cb2b7ce11fb159 (diff)
downloadandroid_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.java12
-rw-r--r--src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java16
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)