aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShareef Ali <shareefalis@cyanogenmod.org>2013-10-29 02:03:24 -0400
committerSteve Kondik <shade@chemlab.org>2013-11-11 15:37:07 -0800
commitba14e7d125fa58f2a984e5a95ae32fae6817209d (patch)
tree77a06996eb0f8d1b5e01280b192efb3f35f76da6
parentfd210ae777a7c973e7ce472e9c80d0d5fe8229a9 (diff)
downloadandroid_frameworks_opt_telephony-caf-rb.tar.gz
android_frameworks_opt_telephony-caf-rb.tar.bz2
android_frameworks_opt_telephony-caf-rb.zip
HTCQualcommM7CDMARIL: enhance and error proof icccardobject.caf-rb
Change-Id: Ibf23f7cf9d8c38a32414c4c727195fd0b38ca4c1
-rw-r--r--src/java/com/android/internal/telephony/HTCQualcommM7CDMARIL.java18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/java/com/android/internal/telephony/HTCQualcommM7CDMARIL.java b/src/java/com/android/internal/telephony/HTCQualcommM7CDMARIL.java
index e6da28f77..d41cbb0bf 100644
--- a/src/java/com/android/internal/telephony/HTCQualcommM7CDMARIL.java
+++ b/src/java/com/android/internal/telephony/HTCQualcommM7CDMARIL.java
@@ -35,10 +35,16 @@ public class HTCQualcommM7CDMARIL extends RIL implements CommandsInterface {
static final int RIL_UNSOL_RESPONSE_PHONE_MODE_CHANGE_M7 = 4802;
static final int RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED_HTC_M7 = 5755;
static final int RIL_UNSOL_RESPONSE_DATA_NETWORK_STATE_CHANGED_M7 = 5757;
+ private boolean isGSM = false;
public HTCQualcommM7CDMARIL(Context context, int networkMode, int cdmaSubscription) {
super(context, networkMode, cdmaSubscription);
}
+ @Override
+ public void setPhoneType(int phoneType){
+ super.setPhoneType(phoneType);
+ isGSM = (phoneType != RILConstants.CDMA_PHONE);
+ }
@Override
protected Object
@@ -59,12 +65,11 @@ public class HTCQualcommM7CDMARIL extends RIL implements CommandsInterface {
numApplications = IccCardStatus.CARD_MAX_APPS;
}
cardStatus.mApplications = new IccCardApplicationStatus[numApplications];
- if (numApplications == 1) {
- cardStatus.mApplications = new IccCardApplicationStatus[numApplications + 2];
- }
appStatus = new IccCardApplicationStatus();
for (int i = 0 ; i < numApplications ; i++) {
- appStatus = new IccCardApplicationStatus();
+ if (i != 0) {
+ appStatus = new IccCardApplicationStatus();
+ }
appStatus.app_type = appStatus.AppTypeFromRILInt(p.readInt());
appStatus.app_state = appStatus.AppStateFromRILInt(p.readInt());
appStatus.perso_substate = appStatus.PersoSubstateFromRILInt(p.readInt());
@@ -75,7 +80,10 @@ public class HTCQualcommM7CDMARIL extends RIL implements CommandsInterface {
appStatus.pin2 = appStatus.PinStateFromRILInt(p.readInt());
cardStatus.mApplications[i] = appStatus;
}
- if (numApplications == 1) {
+ if (numApplications == 1 && !isGSM && appStatus.app_type == appStatus.AppTypeFromRILInt(2)) { // usim
+ cardStatus.mApplications = new IccCardApplicationStatus[numApplications+2];
+ cardStatus.mGsmUmtsSubscriptionAppIndex = 0;
+ cardStatus.mApplications[cardStatus.mGsmUmtsSubscriptionAppIndex]=appStatus;
cardStatus.mCdmaSubscriptionAppIndex = 1;
cardStatus.mImsSubscriptionAppIndex = 2;
IccCardApplicationStatus appStatus2 = new IccCardApplicationStatus();