diff options
author | Shareef Ali <shareefalis@cyanogenmod.org> | 2013-10-29 02:03:24 -0400 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2013-11-11 15:37:07 -0800 |
commit | ba14e7d125fa58f2a984e5a95ae32fae6817209d (patch) | |
tree | 77a06996eb0f8d1b5e01280b192efb3f35f76da6 | |
parent | fd210ae777a7c973e7ce472e9c80d0d5fe8229a9 (diff) | |
download | android_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.java | 18 |
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(); |