KlteRIL: add support for sprint non-standard SIM

* Problem: There is only one app on Sprint SIM (gsm/lte app),
  Sprint stores stuff on NV and store ICC ID, MNC, MCC in GSM app.

* Fixes ICC ID not showing up and fixes alot cruft that telephony
  framework may be missing for it to function properly.

Change-Id: I5c339ab19efb7de669106114eb6b03e397b97e46
This commit is contained in:
Shareef Ali 2015-03-15 22:42:50 -07:00 committed by Ethan Chen
parent 46d620ec04
commit abcaea9ffe
1 changed files with 35 additions and 1 deletions

View File

@ -87,7 +87,7 @@ public class KlteRIL extends RIL {
@Override
protected Object
responseIccCardStatus(Parcel p) {
IccCardApplicationStatus appStatus;
IccCardApplicationStatus appStatus = null;
IccCardStatus cardStatus = new IccCardStatus();
cardStatus.setCardState(p.readInt());
@ -122,6 +122,40 @@ public class KlteRIL extends RIL {
cardStatus.mApplications[i] = appStatus;
}
// For Sprint LTE only SIM
if (appStatus != null
&& numApplications == 1
&& !mIsGsm
&& appStatus.app_type == appStatus.AppTypeFromRILInt(2)) {
cardStatus.mApplications = new IccCardApplicationStatus[3];
cardStatus.mApplications[0] = appStatus;
cardStatus.mGsmUmtsSubscriptionAppIndex = 0;
cardStatus.mCdmaSubscriptionAppIndex = 1;
cardStatus.mImsSubscriptionAppIndex = 2;
IccCardApplicationStatus appStatus2 = new IccCardApplicationStatus();
appStatus2.app_type = appStatus2.AppTypeFromRILInt(4); // csim state
appStatus2.app_state = appStatus.app_state;
appStatus2.perso_substate = appStatus.perso_substate;
appStatus2.aid = appStatus.aid;
appStatus2.app_label = appStatus.app_label;
appStatus2.pin1_replaced = appStatus.pin1_replaced;
appStatus2.pin1 = appStatus.pin1;
appStatus2.pin2 = appStatus.pin2;
cardStatus.mApplications[cardStatus.mCdmaSubscriptionAppIndex] = appStatus2;
IccCardApplicationStatus appStatus3 = new IccCardApplicationStatus();
appStatus3.app_type = appStatus3.AppTypeFromRILInt(5); // ims state
appStatus3.app_state = appStatus.app_state;
appStatus3.perso_substate = appStatus.perso_substate;
appStatus3.aid = appStatus.aid;
appStatus3.app_label = appStatus.app_label;
appStatus3.pin1_replaced = appStatus.pin1_replaced;
appStatus3.pin1 = appStatus.pin1;
appStatus3.pin2 = appStatus.pin2;
cardStatus.mApplications[cardStatus.mImsSubscriptionAppIndex] = appStatus3;
}
return cardStatus;
}