Merge "Refactor IccRecords and IccCard" into honeycomb-LTE
This commit is contained in:
@@ -28,6 +28,8 @@ import android.util.Log;
|
||||
|
||||
import com.android.internal.telephony.PhoneBase;
|
||||
import com.android.internal.telephony.CommandsInterface.RadioState;
|
||||
import com.android.internal.telephony.gsm.SIMRecords;
|
||||
|
||||
import android.os.SystemProperties;
|
||||
|
||||
/**
|
||||
@@ -430,8 +432,14 @@ public abstract class IccCard {
|
||||
broadcastIccStateChangedIntent(INTENT_VALUE_ICC_LOCKED,
|
||||
INTENT_VALUE_LOCKED_NETWORK);
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: We need to try to remove this, maybe if the RIL sends up a RIL_UNSOL_SIM_REFRESH?
|
||||
*/
|
||||
if (oldState != State.READY && newState == State.READY && LTE_AVAILABLE_ON_CDMA) {
|
||||
mPhone.mSIMRecords.onSimReady();
|
||||
if (mPhone.mIccRecords instanceof SIMRecords) {
|
||||
((SIMRecords)mPhone.mIccRecords).onSimReady();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,9 +21,6 @@ import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.os.Registrant;
|
||||
import android.os.RegistrantList;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* {@hide}
|
||||
@@ -79,6 +76,11 @@ public abstract class IccRecords extends Handler implements IccConstants {
|
||||
this.phone = p;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call when the IccRecords object is no longer going to be used.
|
||||
*/
|
||||
public abstract void dispose();
|
||||
|
||||
protected abstract void onRadioOffOrNotAvailable();
|
||||
|
||||
//***** Public Methods
|
||||
@@ -99,6 +101,17 @@ public abstract class IccRecords extends Handler implements IccConstants {
|
||||
recordsLoadedRegistrants.remove(h);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the International Mobile Subscriber ID (IMSI) on a SIM
|
||||
* for GSM, UMTS and like networks. Default is null if IMSI is
|
||||
* not supported or unavailable.
|
||||
*
|
||||
* @return null if SIM is not yet ready or unavailable
|
||||
*/
|
||||
public String getIMSI() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getMsisdnNumber() {
|
||||
return msisdn;
|
||||
}
|
||||
@@ -220,6 +233,7 @@ public abstract class IccRecords extends Handler implements IccConstants {
|
||||
}
|
||||
|
||||
//***** Overridden from Handler
|
||||
@Override
|
||||
public abstract void handleMessage(Message msg);
|
||||
|
||||
protected abstract void onRecordLoaded();
|
||||
@@ -232,8 +246,51 @@ public abstract class IccRecords extends Handler implements IccConstants {
|
||||
* and TS 51.011 10.3.11 for details.
|
||||
*
|
||||
* If the SPN is not found on the SIM, the rule is always PLMN_ONLY.
|
||||
* Generally used for GSM/UMTS and the like SIMs.
|
||||
*/
|
||||
protected abstract int getDisplayRule(String plmn);
|
||||
public abstract int getDisplayRule(String plmn);
|
||||
|
||||
/**
|
||||
* Return true if "Restriction of menu options for manual PLMN selection"
|
||||
* bit is set or EF_CSP data is unavailable, return false otherwise.
|
||||
* Generally used for GSM/UMTS and the like SIMs.
|
||||
*/
|
||||
public boolean isCspPlmnEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the 5 or 6 digit MCC/MNC of the operator that
|
||||
* provided the SIM card. Returns null of SIM is not yet ready
|
||||
* or is not valid for the type of IccCard. Generally used for
|
||||
* GSM/UMTS and the like SIMS
|
||||
*/
|
||||
public String getOperatorNumeric() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current Voice call forwarding flag for GSM/UMTS and the like SIMs
|
||||
*
|
||||
* @return true if enabled
|
||||
*/
|
||||
public boolean getVoiceCallForwardingFlag() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the voice call forwarding flag for GSM/UMTS and the like SIMs
|
||||
*
|
||||
* @param line to enable/disable
|
||||
* @param enable
|
||||
*/
|
||||
public void setVoiceCallForwardingFlag(int line, boolean enable) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Write string to log file
|
||||
*
|
||||
* @param s is the string to write
|
||||
*/
|
||||
protected abstract void log(String s);
|
||||
}
|
||||
|
||||
@@ -118,8 +118,8 @@ public abstract class PhoneBase extends Handler implements Phone {
|
||||
int mCallRingDelay;
|
||||
public boolean mIsTheCurrentActivePhone = true;
|
||||
boolean mIsVoiceCapable = true;
|
||||
public SIMRecords mSIMRecords;
|
||||
public SimCard mSimCard;
|
||||
public IccRecords mIccRecords;
|
||||
public IccCard mIccCard;
|
||||
public SMSDispatcher mSMS;
|
||||
|
||||
/**
|
||||
@@ -681,6 +681,31 @@ public abstract class PhoneBase extends Handler implements Phone {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IccCard getIccCard() {
|
||||
return mIccCard;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIccSerialNumber() {
|
||||
return mIccRecords.iccid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getIccRecordsLoaded() {
|
||||
return mIccRecords.getRecordsLoaded();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getMessageWaitingIndicator() {
|
||||
return mIccRecords.getVoiceMessageWaiting();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getCallForwardingIndicator() {
|
||||
return mIccRecords.getVoiceCallForwardingFlag();
|
||||
}
|
||||
|
||||
/**
|
||||
* Query the status of the CDMA roaming preference
|
||||
*/
|
||||
|
||||
@@ -48,58 +48,30 @@ public class CDMALTEPhone extends CDMAPhone {
|
||||
// Constructors
|
||||
public CDMALTEPhone(Context context, CommandsInterface ci, PhoneNotifier notifier) {
|
||||
this(context, ci, notifier, false);
|
||||
log("CDMALTEPhone Constructors");
|
||||
}
|
||||
|
||||
public CDMALTEPhone(Context context, CommandsInterface ci, PhoneNotifier notifier,
|
||||
boolean unitTestMode) {
|
||||
super(context, ci, notifier, false);
|
||||
|
||||
mSIMRecords = new SIMRecords(this);
|
||||
mSimCard = new SimCard(this, LOG_TAG, DBG);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initSST() {
|
||||
protected void initSstIcc() {
|
||||
mSST = new CdmaLteServiceStateTracker(this);
|
||||
}
|
||||
|
||||
public void dispose() {
|
||||
synchronized (PhoneProxy.lockForRadioTechnologyChange) {
|
||||
super.dispose();
|
||||
mSIMRecords.dispose();
|
||||
mSimCard.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeReferences() {
|
||||
super.removeReferences();
|
||||
this.mSIMRecords = null;
|
||||
this.mSimCard = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServiceStateTracker getServiceStateTracker() {
|
||||
return mSST;
|
||||
}
|
||||
|
||||
public IccCard getIccCard() {
|
||||
return mSimCard;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIccSerialNumber() {
|
||||
return mSIMRecords.iccid;
|
||||
mIccRecords = new SIMRecords(this);
|
||||
mIccCard = new SimCard(this, LOG_TAG, DBG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataState getDataConnectionState(String apnType) {
|
||||
// TODO: Remove instanceof if possible.
|
||||
boolean isCdmaDataConnectionTracker = false;
|
||||
if (mDataConnectionTracker instanceof CdmaDataConnectionTracker) {
|
||||
log("getDataConnectionState isCdmaDataConnectionTracker");
|
||||
isCdmaDataConnectionTracker = true;
|
||||
} else {
|
||||
log("getDataConnectionState NOT CdmaDataConnectionTracker");
|
||||
}
|
||||
log("getDataConnectionState");
|
||||
DataState ret = DataState.DISCONNECTED;
|
||||
|
||||
if (!isCdmaDataConnectionTracker && (SystemProperties.get("adb.connected", "").length()
|
||||
@@ -145,28 +117,29 @@ public class CDMALTEPhone extends CDMAPhone {
|
||||
}
|
||||
}
|
||||
|
||||
log("getDataConnectionState apnType=" + apnType + " ret=" + ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public boolean updateCurrentCarrierInProvider() {
|
||||
if (mSIMRecords != null) {
|
||||
if (mIccRecords != null) {
|
||||
try {
|
||||
Uri uri = Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current");
|
||||
ContentValues map = new ContentValues();
|
||||
map.put(Telephony.Carriers.NUMERIC, mSIMRecords.getSIMOperatorNumeric());
|
||||
map.put(Telephony.Carriers.NUMERIC, mIccRecords.getOperatorNumeric());
|
||||
log("updateCurrentCarrierInProvider insert uri=" + uri);
|
||||
mContext.getContentResolver().insert(uri, map);
|
||||
return true;
|
||||
} catch (SQLException e) {
|
||||
Log.e(LOG_TAG, "[CDMALTEPhone] Can't store current operator", e);
|
||||
Log.e(LOG_TAG, "[CDMALTEPhone] Can't store current operator ret false", e);
|
||||
}
|
||||
} else {
|
||||
log("updateCurrentCarrierInProvider mIccRecords == null ret false");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getActiveApn(String apnType) {
|
||||
return mDataConnectionTracker.getActiveApnString(apnType);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void log(String s) {
|
||||
if (DBG)
|
||||
Log.d(LOG_TAG, "[CDMALTEPhone] " + s);
|
||||
|
||||
@@ -49,6 +49,7 @@ import com.android.internal.telephony.CommandException;
|
||||
import com.android.internal.telephony.CommandsInterface;
|
||||
import com.android.internal.telephony.Connection;
|
||||
import com.android.internal.telephony.DataConnection;
|
||||
import com.android.internal.telephony.IccRecords;
|
||||
import com.android.internal.telephony.MccTable;
|
||||
import com.android.internal.telephony.IccCard;
|
||||
import com.android.internal.telephony.IccException;
|
||||
@@ -99,8 +100,6 @@ public class CDMAPhone extends PhoneBase {
|
||||
// Instance Variables
|
||||
CdmaCallTracker mCT;
|
||||
CdmaServiceStateTracker mSST;
|
||||
RuimRecords mRuimRecords;
|
||||
RuimCard mRuimCard;
|
||||
ArrayList <CdmaMmiCode> mPendingMmis = new ArrayList<CdmaMmiCode>();
|
||||
RuimPhoneBookInterfaceManager mRuimPhoneBookInterfaceManager;
|
||||
RuimSmsInterfaceManager mRuimSmsInterfaceManager;
|
||||
@@ -142,19 +141,21 @@ public class CDMAPhone extends PhoneBase {
|
||||
// Constructors
|
||||
public CDMAPhone(Context context, CommandsInterface ci, PhoneNotifier notifier) {
|
||||
super(notifier, context, ci, false);
|
||||
initSST();
|
||||
initSstIcc();
|
||||
init(context, notifier);
|
||||
}
|
||||
|
||||
public CDMAPhone(Context context, CommandsInterface ci, PhoneNotifier notifier,
|
||||
boolean unitTestMode) {
|
||||
super(notifier, context, ci, unitTestMode);
|
||||
initSST();
|
||||
initSstIcc();
|
||||
init(context, notifier);
|
||||
}
|
||||
|
||||
protected void initSST() {
|
||||
protected void initSstIcc() {
|
||||
mSST = new CdmaServiceStateTracker(this);
|
||||
mIccRecords = new RuimRecords(this);
|
||||
mIccCard = new RuimCard(this, LOG_TAG, DBG);
|
||||
}
|
||||
|
||||
protected void init(Context context, PhoneNotifier notifier) {
|
||||
@@ -162,18 +163,16 @@ public class CDMAPhone extends PhoneBase {
|
||||
mCT = new CdmaCallTracker(this);
|
||||
mSMS = new CdmaSMSDispatcher(this);
|
||||
mIccFileHandler = new RuimFileHandler(this);
|
||||
mRuimRecords = new RuimRecords(this);
|
||||
mDataConnectionTracker = new CdmaDataConnectionTracker (this);
|
||||
mRuimCard = new RuimCard(this);
|
||||
mRuimPhoneBookInterfaceManager = new RuimPhoneBookInterfaceManager(this);
|
||||
mRuimSmsInterfaceManager = new RuimSmsInterfaceManager(this, mSMS);
|
||||
mSubInfo = new PhoneSubInfo(this);
|
||||
mEriManager = new EriManager(this, context, EriManager.ERI_FROM_XML);
|
||||
mCcatService = CatService.getInstance(mCM, mRuimRecords, mContext,
|
||||
mIccFileHandler, mRuimCard);
|
||||
mCcatService = CatService.getInstance(mCM, mIccRecords, mContext,
|
||||
mIccFileHandler, mIccCard);
|
||||
|
||||
mCM.registerForAvailable(this, EVENT_RADIO_AVAILABLE, null);
|
||||
mRuimRecords.registerForRecordsLoaded(this, EVENT_RUIM_RECORDS_LOADED, null);
|
||||
mIccRecords.registerForRecordsLoaded(this, EVENT_RUIM_RECORDS_LOADED, null);
|
||||
mCM.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
|
||||
mCM.registerForOn(this, EVENT_RADIO_ON, null);
|
||||
mCM.setOnSuppServiceNotification(this, EVENT_SSN, null);
|
||||
@@ -222,9 +221,10 @@ public class CDMAPhone extends PhoneBase {
|
||||
public void dispose() {
|
||||
synchronized(PhoneProxy.lockForRadioTechnologyChange) {
|
||||
super.dispose();
|
||||
log("dispose");
|
||||
|
||||
//Unregister from all former registered events
|
||||
mRuimRecords.unregisterForRecordsLoaded(this); //EVENT_RUIM_RECORDS_LOADED
|
||||
mIccRecords.unregisterForRecordsLoaded(this); //EVENT_RUIM_RECORDS_LOADED
|
||||
mCM.unregisterForAvailable(this); //EVENT_RADIO_AVAILABLE
|
||||
mCM.unregisterForOffOrNotAvailable(this); //EVENT_RADIO_OFF_OR_NOT_AVAILABLE
|
||||
mCM.unregisterForOn(this); //EVENT_RADIO_ON
|
||||
@@ -241,8 +241,8 @@ public class CDMAPhone extends PhoneBase {
|
||||
mSST.dispose();
|
||||
mSMS.dispose();
|
||||
mIccFileHandler.dispose(); // instance of RuimFileHandler
|
||||
mRuimRecords.dispose();
|
||||
mRuimCard.dispose();
|
||||
mIccRecords.dispose();
|
||||
mIccCard.dispose();
|
||||
mRuimPhoneBookInterfaceManager.dispose();
|
||||
mRuimSmsInterfaceManager.dispose();
|
||||
mSubInfo.dispose();
|
||||
@@ -252,13 +252,14 @@ public class CDMAPhone extends PhoneBase {
|
||||
}
|
||||
|
||||
public void removeReferences() {
|
||||
log("removeReferences");
|
||||
this.mRuimPhoneBookInterfaceManager = null;
|
||||
this.mRuimSmsInterfaceManager = null;
|
||||
this.mSMS = null;
|
||||
this.mSubInfo = null;
|
||||
this.mRuimRecords = null;
|
||||
this.mIccRecords = null;
|
||||
this.mIccFileHandler = null;
|
||||
this.mRuimCard = null;
|
||||
this.mIccCard = null;
|
||||
this.mDataConnectionTracker = null;
|
||||
this.mCT = null;
|
||||
this.mSST = null;
|
||||
@@ -547,14 +548,6 @@ public class CDMAPhone extends PhoneBase {
|
||||
Log.e(LOG_TAG, "setLine1Number: not possible in CDMA");
|
||||
}
|
||||
|
||||
public IccCard getIccCard() {
|
||||
return mRuimCard;
|
||||
}
|
||||
|
||||
public String getIccSerialNumber() {
|
||||
return mRuimRecords.iccid;
|
||||
}
|
||||
|
||||
public void setCallWaiting(boolean enable, Message onComplete) {
|
||||
Log.e(LOG_TAG, "method setCallWaiting is NOT supported in CDMA!");
|
||||
}
|
||||
@@ -657,6 +650,7 @@ public class CDMAPhone extends PhoneBase {
|
||||
}
|
||||
}
|
||||
|
||||
log("getDataConnectionState apnType=" + apnType + " ret=" + ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -733,7 +727,7 @@ public class CDMAPhone extends PhoneBase {
|
||||
Message resp;
|
||||
mVmNumber = voiceMailNumber;
|
||||
resp = obtainMessage(EVENT_SET_VM_NUMBER_DONE, 0, 0, onComplete);
|
||||
mRuimRecords.setVoiceMailNumber(alphaTag, mVmNumber, resp);
|
||||
mIccRecords.setVoiceMailNumber(alphaTag, mVmNumber, resp);
|
||||
}
|
||||
|
||||
public String getVoiceMailNumber() {
|
||||
@@ -755,7 +749,7 @@ public class CDMAPhone extends PhoneBase {
|
||||
* @hide
|
||||
*/
|
||||
public int getVoiceMessageCount() {
|
||||
int voicemailCount = mRuimRecords.getVoiceMessageCount();
|
||||
int voicemailCount = mIccRecords.getVoiceMessageCount();
|
||||
// If mRuimRecords.getVoiceMessageCount returns zero, then there is possibility
|
||||
// that phone was power cycled and would have lost the voicemail count.
|
||||
// So get the count from preferences.
|
||||
@@ -780,10 +774,6 @@ public class CDMAPhone extends PhoneBase {
|
||||
return ret;
|
||||
}
|
||||
|
||||
public boolean getIccRecordsLoaded() {
|
||||
return mRuimRecords.getRecordsLoaded();
|
||||
}
|
||||
|
||||
public void getCallForwardingOption(int commandInterfaceCFReason, Message onComplete) {
|
||||
Log.e(LOG_TAG, "getCallForwardingOption: not possible in CDMA");
|
||||
}
|
||||
@@ -864,13 +854,13 @@ public class CDMAPhone extends PhoneBase {
|
||||
/*package*/ void
|
||||
updateMessageWaitingIndicator(boolean mwi) {
|
||||
// this also calls notifyMessageWaitingIndicator()
|
||||
mRuimRecords.setVoiceMessageWaiting(1, mwi ? -1 : 0);
|
||||
mIccRecords.setVoiceMessageWaiting(1, mwi ? -1 : 0);
|
||||
}
|
||||
|
||||
/* This function is overloaded to send number of voicemails instead of sending true/false */
|
||||
/*package*/ void
|
||||
updateMessageWaitingIndicator(int mwi) {
|
||||
mRuimRecords.setVoiceMessageWaiting(1, mwi);
|
||||
mIccRecords.setVoiceMessageWaiting(1, mwi);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1417,6 +1407,7 @@ public class CDMAPhone extends PhoneBase {
|
||||
Uri uri = Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current");
|
||||
ContentValues map = new ContentValues();
|
||||
map.put(Telephony.Carriers.NUMERIC, operatorNumeric);
|
||||
log("updateCurrentCarrierInProvider insert uri=" + uri);
|
||||
getContext().getContentResolver().insert(uri, map);
|
||||
|
||||
// Updates MCC MNC device configuration information
|
||||
@@ -1429,4 +1420,9 @@ public class CDMAPhone extends PhoneBase {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected void log(String s) {
|
||||
if (DBG)
|
||||
Log.d(LOG_TAG, "[CDMAPhone] " + s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
|
||||
|
||||
p.mCM.registerForAvailable (this, EVENT_RADIO_AVAILABLE, null);
|
||||
p.mCM.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
|
||||
p.mRuimRecords.registerForRecordsLoaded(this, EVENT_RECORDS_LOADED, null);
|
||||
p.mIccRecords.registerForRecordsLoaded(this, EVENT_RECORDS_LOADED, null);
|
||||
p.mCM.registerForNVReady(this, EVENT_NV_READY, null);
|
||||
p.mCM.registerForDataNetworkStateChanged (this, EVENT_DATA_STATE_CHANGED, null);
|
||||
p.mCT.registerForVoiceCallEnded (this, EVENT_VOICE_CALL_ENDED, null);
|
||||
@@ -124,7 +124,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
|
||||
// Unregister from all events
|
||||
mPhone.mCM.unregisterForAvailable(this);
|
||||
mPhone.mCM.unregisterForOffOrNotAvailable(this);
|
||||
mCdmaPhone.mRuimRecords.unregisterForRecordsLoaded(this);
|
||||
mCdmaPhone.mIccRecords.unregisterForRecordsLoaded(this);
|
||||
mPhone.mCM.unregisterForNVReady(this);
|
||||
mPhone.mCM.unregisterForDataNetworkStateChanged(this);
|
||||
mCdmaPhone.mCT.unregisterForVoiceCallEnded(this);
|
||||
@@ -183,7 +183,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
|
||||
(psState == ServiceState.STATE_IN_SERVICE ||
|
||||
mAutoAttachOnCreation) &&
|
||||
(mPhone.mCM.getNvState() == CommandsInterface.RadioState.NV_READY ||
|
||||
mCdmaPhone.mRuimRecords.getRecordsLoaded()) &&
|
||||
mCdmaPhone.mIccRecords.getRecordsLoaded()) &&
|
||||
(mCdmaPhone.mSST.isConcurrentVoiceAndDataAllowed() ||
|
||||
mPhone.getState() == Phone.State.IDLE) &&
|
||||
!roaming &&
|
||||
@@ -197,7 +197,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
|
||||
reason += " - psState= " + psState;
|
||||
}
|
||||
if (!(mPhone.mCM.getNvState() == CommandsInterface.RadioState.NV_READY ||
|
||||
mCdmaPhone.mRuimRecords.getRecordsLoaded())) {
|
||||
mCdmaPhone.mIccRecords.getRecordsLoaded())) {
|
||||
reason += " - radioState= " + mPhone.mCM.getNvState() + " - RUIM not loaded";
|
||||
}
|
||||
if (!(mCdmaPhone.mSST.isConcurrentVoiceAndDataAllowed() ||
|
||||
|
||||
@@ -214,7 +214,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
|
||||
cm.unregisterForNVReady(this);
|
||||
cm.unregisterForCdmaOtaProvision(this);
|
||||
phone.unregisterForEriFileLoaded(this);
|
||||
phone.mRuimRecords.unregisterForRecordsLoaded(this);
|
||||
phone.mIccRecords.unregisterForRecordsLoaded(this);
|
||||
cm.unSetOnSignalStrengthUpdate(this);
|
||||
cm.unSetOnNITZTime(this);
|
||||
cr.unregisterContentObserver(mAutoTimeObserver);
|
||||
@@ -260,7 +260,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
|
||||
// unlocked. At this stage, the radio is already powered on.
|
||||
isSubscriptionFromRuim = true;
|
||||
if (mNeedToRegForRuimLoaded) {
|
||||
phone.mRuimRecords.registerForRecordsLoaded(this,
|
||||
phone.mIccRecords.registerForRecordsLoaded(this,
|
||||
EVENT_RUIM_RECORDS_LOADED, null);
|
||||
mNeedToRegForRuimLoaded = false;
|
||||
}
|
||||
|
||||
@@ -25,8 +25,8 @@ import com.android.internal.telephony.IccCard;
|
||||
*/
|
||||
public final class RuimCard extends IccCard {
|
||||
|
||||
RuimCard(CDMAPhone phone) {
|
||||
super(phone, "CDMA", true);
|
||||
RuimCard(CDMAPhone phone, String LOG_TAG, boolean dbg) {
|
||||
super(phone, LOG_TAG, dbg);
|
||||
mPhone.mCM.registerForRUIMLockedOrAbsent(mHandler, EVENT_ICC_LOCKED_OR_ABSENT, null);
|
||||
mPhone.mCM.registerForOffOrNotAvailable(mHandler, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
|
||||
mPhone.mCM.registerForRUIMReady(mHandler, EVENT_ICC_READY, null);
|
||||
@@ -43,7 +43,7 @@ public final class RuimCard extends IccCard {
|
||||
|
||||
@Override
|
||||
public String getServiceProviderName () {
|
||||
return ((CDMAPhone)mPhone).mRuimRecords.getServiceProviderName();
|
||||
return mPhone.mIccRecords.getServiceProviderName();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public class RuimPhoneBookInterfaceManager extends IccPhoneBookInterfaceManager
|
||||
|
||||
public RuimPhoneBookInterfaceManager(CDMAPhone phone) {
|
||||
super(phone);
|
||||
adnCache = phone.mRuimRecords.getAdnCache();
|
||||
adnCache = phone.mIccRecords.getAdnCache();
|
||||
//NOTE service "simphonebook" added by IccSmsInterfaceManagerProxy
|
||||
}
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ public final class RuimRecords extends IccRecords {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
//Unregister for all events
|
||||
phone.mCM.unregisterForRUIMReady(this);
|
||||
@@ -293,7 +294,7 @@ public final class RuimRecords extends IccRecords {
|
||||
|
||||
recordsLoadedRegistrants.notifyRegistrants(
|
||||
new AsyncResult(null, null, null));
|
||||
((CDMAPhone) phone).mRuimCard.broadcastIccStateChangedIntent(
|
||||
phone.mIccCard.broadcastIccStateChangedIntent(
|
||||
RuimCard.INTENT_VALUE_ICC_LOADED, null);
|
||||
}
|
||||
|
||||
@@ -302,7 +303,7 @@ public final class RuimRecords extends IccRecords {
|
||||
READY is sent before IMSI ready
|
||||
*/
|
||||
|
||||
((CDMAPhone) phone).mRuimCard.broadcastIccStateChangedIntent(
|
||||
phone.mIccCard.broadcastIccStateChangedIntent(
|
||||
RuimCard.INTENT_VALUE_ICC_READY, null);
|
||||
|
||||
fetchRuimRecords();
|
||||
@@ -324,8 +325,13 @@ public final class RuimRecords extends IccRecords {
|
||||
// Further records that can be inserted are Operator/OEM dependent
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* No Display rule for RUIMs yet.
|
||||
*/
|
||||
@Override
|
||||
protected int getDisplayRule(String plmn) {
|
||||
public int getDisplayRule(String plmn) {
|
||||
// TODO together with spn
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -142,19 +142,18 @@ public class GSMPhone extends PhoneBase {
|
||||
mSST = new GsmServiceStateTracker (this);
|
||||
mSMS = new GsmSMSDispatcher(this);
|
||||
mIccFileHandler = new SIMFileHandler(this);
|
||||
mSIMRecords = new SIMRecords(this);
|
||||
mIccRecords = new SIMRecords(this);
|
||||
mDataConnectionTracker = new GsmDataConnectionTracker (this);
|
||||
mSimCard = new SimCard(this);
|
||||
mIccCard = new SimCard(this);
|
||||
if (!unitTestMode) {
|
||||
mSimPhoneBookIntManager = new SimPhoneBookInterfaceManager(this);
|
||||
mSimSmsIntManager = new SimSmsInterfaceManager(this, mSMS);
|
||||
mSubInfo = new PhoneSubInfo(this);
|
||||
}
|
||||
mStkService = CatService.getInstance(mCM, mSIMRecords, mContext,
|
||||
(SIMFileHandler)mIccFileHandler, mSimCard);
|
||||
mStkService = CatService.getInstance(mCM, mIccRecords, mContext, mIccFileHandler, mIccCard);
|
||||
|
||||
mCM.registerForAvailable(this, EVENT_RADIO_AVAILABLE, null);
|
||||
mSIMRecords.registerForRecordsLoaded(this, EVENT_SIM_RECORDS_LOADED, null);
|
||||
mIccRecords.registerForRecordsLoaded(this, EVENT_SIM_RECORDS_LOADED, null);
|
||||
mCM.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
|
||||
mCM.registerForOn(this, EVENT_RADIO_ON, null);
|
||||
mCM.setOnUSSD(this, EVENT_USSD, null);
|
||||
@@ -206,7 +205,7 @@ public class GSMPhone extends PhoneBase {
|
||||
|
||||
//Unregister from all former registered events
|
||||
mCM.unregisterForAvailable(this); //EVENT_RADIO_AVAILABLE
|
||||
mSIMRecords.unregisterForRecordsLoaded(this); //EVENT_SIM_RECORDS_LOADED
|
||||
mIccRecords.unregisterForRecordsLoaded(this); //EVENT_SIM_RECORDS_LOADED
|
||||
mCM.unregisterForOffOrNotAvailable(this); //EVENT_RADIO_OFF_OR_NOT_AVAILABLE
|
||||
mCM.unregisterForOn(this); //EVENT_RADIO_ON
|
||||
mSST.unregisterForNetworkAttached(this); //EVENT_REGISTERED_TO_NETWORK
|
||||
@@ -221,8 +220,8 @@ public class GSMPhone extends PhoneBase {
|
||||
mDataConnectionTracker.dispose();
|
||||
mSST.dispose();
|
||||
mIccFileHandler.dispose(); // instance of SimFileHandler
|
||||
mSIMRecords.dispose();
|
||||
mSimCard.dispose();
|
||||
mIccRecords.dispose();
|
||||
mIccCard.dispose();
|
||||
mSimPhoneBookIntManager.dispose();
|
||||
mSimSmsIntManager.dispose();
|
||||
mSubInfo.dispose();
|
||||
@@ -236,9 +235,9 @@ public class GSMPhone extends PhoneBase {
|
||||
this.mSimSmsIntManager = null;
|
||||
this.mSMS = null;
|
||||
this.mSubInfo = null;
|
||||
this.mSIMRecords = null;
|
||||
this.mIccRecords = null;
|
||||
this.mIccFileHandler = null;
|
||||
this.mSimCard = null;
|
||||
this.mIccCard = null;
|
||||
this.mDataConnectionTracker = null;
|
||||
this.mCT = null;
|
||||
this.mSST = null;
|
||||
@@ -274,14 +273,6 @@ public class GSMPhone extends PhoneBase {
|
||||
return mSST.mSignalStrength;
|
||||
}
|
||||
|
||||
public boolean getMessageWaitingIndicator() {
|
||||
return mSIMRecords.getVoiceMessageWaiting();
|
||||
}
|
||||
|
||||
public boolean getCallForwardingIndicator() {
|
||||
return mSIMRecords.getVoiceCallForwardingFlag();
|
||||
}
|
||||
|
||||
public CallTracker getCallTracker() {
|
||||
return mCT;
|
||||
}
|
||||
@@ -419,7 +410,7 @@ public class GSMPhone extends PhoneBase {
|
||||
/*package*/ void
|
||||
updateMessageWaitingIndicator(boolean mwi) {
|
||||
// this also calls notifyMessageWaitingIndicator()
|
||||
mSIMRecords.setVoiceMessageWaiting(1, mwi ? -1 : 0);
|
||||
mIccRecords.setVoiceMessageWaiting(1, mwi ? -1 : 0);
|
||||
}
|
||||
|
||||
public void
|
||||
@@ -820,7 +811,7 @@ public class GSMPhone extends PhoneBase {
|
||||
|
||||
public String getVoiceMailNumber() {
|
||||
// Read from the SIM. If its null, try reading from the shared preference area.
|
||||
String number = mSIMRecords.getVoiceMailNumber();
|
||||
String number = mIccRecords.getVoiceMailNumber();
|
||||
if (TextUtils.isEmpty(number)) {
|
||||
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
number = sp.getString(VM_NUMBER, null);
|
||||
@@ -843,7 +834,7 @@ public class GSMPhone extends PhoneBase {
|
||||
public String getVoiceMailAlphaTag() {
|
||||
String ret;
|
||||
|
||||
ret = mSIMRecords.getVoiceMailAlphaTag();
|
||||
ret = mIccRecords.getVoiceMailAlphaTag();
|
||||
|
||||
if (ret == null || ret.length() == 0) {
|
||||
return mContext.getText(
|
||||
@@ -872,23 +863,19 @@ public class GSMPhone extends PhoneBase {
|
||||
}
|
||||
|
||||
public String getSubscriberId() {
|
||||
return mSIMRecords.imsi;
|
||||
}
|
||||
|
||||
public String getIccSerialNumber() {
|
||||
return mSIMRecords.iccid;
|
||||
return mIccRecords.getIMSI();
|
||||
}
|
||||
|
||||
public String getLine1Number() {
|
||||
return mSIMRecords.getMsisdnNumber();
|
||||
return mIccRecords.getMsisdnNumber();
|
||||
}
|
||||
|
||||
public String getLine1AlphaTag() {
|
||||
return mSIMRecords.getMsisdnAlphaTag();
|
||||
return mIccRecords.getMsisdnAlphaTag();
|
||||
}
|
||||
|
||||
public void setLine1Number(String alphaTag, String number, Message onComplete) {
|
||||
mSIMRecords.setMsisdnNumber(alphaTag, number, onComplete);
|
||||
mIccRecords.setMsisdnNumber(alphaTag, number, onComplete);
|
||||
}
|
||||
|
||||
public void setVoiceMailNumber(String alphaTag,
|
||||
@@ -898,7 +885,7 @@ public class GSMPhone extends PhoneBase {
|
||||
Message resp;
|
||||
mVmNumber = voiceMailNumber;
|
||||
resp = obtainMessage(EVENT_SET_VM_NUMBER_DONE, 0, 0, onComplete);
|
||||
mSIMRecords.setVoiceMailNumber(alphaTag, mVmNumber, resp);
|
||||
mIccRecords.setVoiceMailNumber(alphaTag, mVmNumber, resp);
|
||||
}
|
||||
|
||||
private boolean isValidCommandInterfaceCFReason (int commandInterfaceCFReason) {
|
||||
@@ -988,15 +975,6 @@ public class GSMPhone extends PhoneBase {
|
||||
mCM.setCallWaiting(enable, CommandsInterface.SERVICE_CLASS_VOICE, onComplete);
|
||||
}
|
||||
|
||||
public boolean
|
||||
getIccRecordsLoaded() {
|
||||
return mSIMRecords.getRecordsLoaded();
|
||||
}
|
||||
|
||||
public IccCard getIccCard() {
|
||||
return mSimCard;
|
||||
}
|
||||
|
||||
public void
|
||||
getAvailableNetworks(Message response) {
|
||||
mCM.getAvailableNetworks(response);
|
||||
@@ -1276,7 +1254,7 @@ public class GSMPhone extends PhoneBase {
|
||||
case EVENT_SET_CALL_FORWARD_DONE:
|
||||
ar = (AsyncResult)msg.obj;
|
||||
if (ar.exception == null) {
|
||||
mSIMRecords.setVoiceCallForwardingFlag(1, msg.arg1 == 1);
|
||||
mIccRecords.setVoiceCallForwardingFlag(1, msg.arg1 == 1);
|
||||
}
|
||||
onComplete = (Message) ar.userObj;
|
||||
if (onComplete != null) {
|
||||
@@ -1340,11 +1318,11 @@ public class GSMPhone extends PhoneBase {
|
||||
* @return true for success; false otherwise.
|
||||
*/
|
||||
boolean updateCurrentCarrierInProvider() {
|
||||
if (mSIMRecords != null) {
|
||||
if (mIccRecords != null) {
|
||||
try {
|
||||
Uri uri = Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current");
|
||||
ContentValues map = new ContentValues();
|
||||
map.put(Telephony.Carriers.NUMERIC, mSIMRecords.getSIMOperatorNumeric());
|
||||
map.put(Telephony.Carriers.NUMERIC, mIccRecords.getOperatorNumeric());
|
||||
mContext.getContentResolver().insert(uri, map);
|
||||
return true;
|
||||
} catch (SQLException e) {
|
||||
@@ -1409,11 +1387,11 @@ public class GSMPhone extends PhoneBase {
|
||||
if (infos == null || infos.length == 0) {
|
||||
// Assume the default is not active
|
||||
// Set unconditional CFF in SIM to false
|
||||
mSIMRecords.setVoiceCallForwardingFlag(1, false);
|
||||
mIccRecords.setVoiceCallForwardingFlag(1, false);
|
||||
} else {
|
||||
for (int i = 0, s = infos.length; i < s; i++) {
|
||||
if ((infos[i].serviceClass & SERVICE_CLASS_VOICE) != 0) {
|
||||
mSIMRecords.setVoiceCallForwardingFlag(1, (infos[i].status == 1));
|
||||
mIccRecords.setVoiceCallForwardingFlag(1, (infos[i].status == 1));
|
||||
// should only have the one
|
||||
break;
|
||||
}
|
||||
@@ -1462,6 +1440,6 @@ public class GSMPhone extends PhoneBase {
|
||||
}
|
||||
|
||||
public boolean isCspPlmnEnabled() {
|
||||
return mSIMRecords.isCspPlmnEnabled();
|
||||
return mIccRecords.isCspPlmnEnabled();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
|
||||
p.mCM.registerForAvailable (this, EVENT_RADIO_AVAILABLE, null);
|
||||
p.mCM.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
|
||||
p.mSIMRecords.registerForRecordsLoaded(this, EVENT_RECORDS_LOADED, null);
|
||||
p.mIccRecords.registerForRecordsLoaded(this, EVENT_RECORDS_LOADED, null);
|
||||
p.mCM.registerForDataNetworkStateChanged (this, EVENT_DATA_STATE_CHANGED, null);
|
||||
p.getCallTracker().registerForVoiceCallEnded (this, EVENT_VOICE_CALL_ENDED, null);
|
||||
p.getCallTracker().registerForVoiceCallStarted (this, EVENT_VOICE_CALL_STARTED, null);
|
||||
@@ -179,7 +179,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
//Unregister for all events
|
||||
mPhone.mCM.unregisterForAvailable(this);
|
||||
mPhone.mCM.unregisterForOffOrNotAvailable(this);
|
||||
mPhone.mSIMRecords.unregisterForRecordsLoaded(this);
|
||||
mPhone.mIccRecords.unregisterForRecordsLoaded(this);
|
||||
mPhone.mCM.unregisterForDataNetworkStateChanged(this);
|
||||
mPhone.getCallTracker().unregisterForVoiceCallEnded(this);
|
||||
mPhone.getCallTracker().unregisterForVoiceCallStarted(this);
|
||||
@@ -582,7 +582,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
|
||||
boolean allowed =
|
||||
gprsState == ServiceState.STATE_IN_SERVICE &&
|
||||
mPhone.mSIMRecords.getRecordsLoaded() &&
|
||||
mPhone.mIccRecords.getRecordsLoaded() &&
|
||||
mPhone.getState() == Phone.State.IDLE &&
|
||||
mInternalDataEnabled &&
|
||||
(!mPhone.getServiceState().getRoaming() || getDataOnRoamingEnabled()) &&
|
||||
@@ -593,7 +593,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
if (!(gprsState == ServiceState.STATE_IN_SERVICE)) {
|
||||
reason += " - gprs= " + gprsState;
|
||||
}
|
||||
if (!mPhone.mSIMRecords.getRecordsLoaded()) reason += " - SIM not loaded";
|
||||
if (!mPhone.mIccRecords.getRecordsLoaded()) reason += " - SIM not loaded";
|
||||
if (mPhone.getState() != Phone.State.IDLE) {
|
||||
reason += " - PhoneState= " + mPhone.getState();
|
||||
}
|
||||
@@ -1510,7 +1510,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
log("onRadioAvailable: We're on the simulator; assuming data is connected");
|
||||
}
|
||||
|
||||
if (mPhone.mSIMRecords.getRecordsLoaded()) {
|
||||
if (mPhone.mIccRecords.getRecordsLoaded()) {
|
||||
notifyDataAvailability(null);
|
||||
}
|
||||
|
||||
@@ -1757,7 +1757,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
*/
|
||||
private void createAllApnList() {
|
||||
mAllApns = new ArrayList<ApnSetting>();
|
||||
String operator = mPhone.mSIMRecords.getSIMOperatorNumeric();
|
||||
String operator = mPhone.mIccRecords.getOperatorNumeric();
|
||||
if (operator != null) {
|
||||
String selection = "numeric = '" + operator + "'";
|
||||
if (DBG) log("createAllApnList: selection=" + selection);
|
||||
@@ -1860,7 +1860,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
return apnList;
|
||||
}
|
||||
|
||||
String operator = mPhone.mSIMRecords.getSIMOperatorNumeric();
|
||||
String operator = mPhone.mIccRecords.getOperatorNumeric();
|
||||
if (requestedApnType.equals(Phone.APN_TYPE_DEFAULT)) {
|
||||
if (canSetPreferApn && mPreferredApn != null) {
|
||||
if (DBG) {
|
||||
|
||||
@@ -765,7 +765,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
// invalid length
|
||||
handlePasswordError(com.android.internal.R.string.invalidPin);
|
||||
} else if (sc.equals(SC_PIN) &&
|
||||
phone.mSimCard.getState() == SimCard.State.PUK_REQUIRED ) {
|
||||
phone.mIccCard.getState() == SimCard.State.PUK_REQUIRED ) {
|
||||
// Sim is puk-locked
|
||||
handlePasswordError(com.android.internal.R.string.needPuk);
|
||||
} else {
|
||||
@@ -885,7 +885,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
*/
|
||||
if ((ar.exception == null) && (msg.arg1 == 1)) {
|
||||
boolean cffEnabled = (msg.arg2 == 1);
|
||||
phone.mSIMRecords.setVoiceCallForwardingFlag(1, cffEnabled);
|
||||
phone.mIccRecords.setVoiceCallForwardingFlag(1, cffEnabled);
|
||||
}
|
||||
|
||||
onSetComplete(ar);
|
||||
@@ -1203,7 +1203,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
(info.serviceClass & serviceClassMask)
|
||||
== CommandsInterface.SERVICE_CLASS_VOICE) {
|
||||
boolean cffEnabled = (info.status == 1);
|
||||
phone.mSIMRecords.setVoiceCallForwardingFlag(1, cffEnabled);
|
||||
phone.mIccRecords.setVoiceCallForwardingFlag(1, cffEnabled);
|
||||
}
|
||||
|
||||
return TextUtils.replace(template, sources, destinations);
|
||||
@@ -1228,7 +1228,7 @@ public final class GsmMmiCode extends Handler implements MmiCode {
|
||||
sb.append(context.getText(com.android.internal.R.string.serviceDisabled));
|
||||
|
||||
// Set unconditional CFF in SIM to false
|
||||
phone.mSIMRecords.setVoiceCallForwardingFlag(1, false);
|
||||
phone.mIccRecords.setVoiceCallForwardingFlag(1, false);
|
||||
} else {
|
||||
|
||||
SpannableStringBuilder tb = new SpannableStringBuilder();
|
||||
|
||||
@@ -247,7 +247,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
|
||||
cm.unregisterForVoiceNetworkStateChanged(this);
|
||||
cm.unregisterForSIMReady(this);
|
||||
|
||||
phone.mSIMRecords.unregisterForRecordsLoaded(this);
|
||||
phone.mIccRecords.unregisterForRecordsLoaded(this);
|
||||
cm.unSetOnSignalStrengthUpdate(this);
|
||||
cm.unSetOnRestrictedStateChanged(this);
|
||||
cm.unSetOnNITZTime(this);
|
||||
@@ -281,7 +281,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
|
||||
// it has been unlocked. At this stage, the radio is already
|
||||
// powered on.
|
||||
if (mNeedToRegForSimLoaded) {
|
||||
phone.mSIMRecords.registerForRecordsLoaded(this,
|
||||
phone.mIccRecords.registerForRecordsLoaded(this,
|
||||
EVENT_SIM_RECORDS_LOADED, null);
|
||||
mNeedToRegForSimLoaded = false;
|
||||
}
|
||||
@@ -487,8 +487,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
|
||||
}
|
||||
|
||||
protected void updateSpnDisplay() {
|
||||
int rule = phone.mSIMRecords.getDisplayRule(ss.getOperatorNumeric());
|
||||
String spn = phone.mSIMRecords.getServiceProviderName();
|
||||
int rule = phone.mIccRecords.getDisplayRule(ss.getOperatorNumeric());
|
||||
String spn = phone.mIccRecords.getServiceProviderName();
|
||||
String plmn = ss.getOperatorAlphaLong();
|
||||
|
||||
// For emergency calls only, pass the EmergencyCallsOnly string via EXTRA_PLMN
|
||||
|
||||
@@ -59,8 +59,8 @@ public final class SIMRecords extends IccRecords {
|
||||
|
||||
// ***** Cached SIM State; cleared on channel close
|
||||
|
||||
String imsi;
|
||||
boolean callForwardingEnabled;
|
||||
private String imsi;
|
||||
private boolean callForwardingEnabled;
|
||||
|
||||
|
||||
/**
|
||||
@@ -191,6 +191,7 @@ public final class SIMRecords extends IccRecords {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
//Unregister for all events
|
||||
phone.mCM.unregisterForSIMReady(this);
|
||||
@@ -231,7 +232,10 @@ public final class SIMRecords extends IccRecords {
|
||||
|
||||
//***** Public Methods
|
||||
|
||||
/** Returns null if SIM is not yet ready */
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public String getIMSI() {
|
||||
return imsi;
|
||||
}
|
||||
@@ -404,10 +408,18 @@ public final class SIMRecords extends IccRecords {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean getVoiceCallForwardingFlag() {
|
||||
return callForwardingEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void setVoiceCallForwardingFlag(int line, boolean enable) {
|
||||
|
||||
if (line != 1) return; // only line 1 is supported
|
||||
@@ -468,12 +480,13 @@ public final class SIMRecords extends IccRecords {
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns the 5 or 6 digit MCC/MNC of the operator that
|
||||
* provided the SIM card. Returns null of SIM is not yet ready
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getSIMOperatorNumeric() {
|
||||
@Override
|
||||
public String getOperatorNumeric() {
|
||||
if (imsi == null) {
|
||||
Log.d(LOG_TAG, "getSIMOperatorNumeric: IMSI == null");
|
||||
Log.d(LOG_TAG, "getOperatorNumeric: IMSI == null");
|
||||
return null;
|
||||
}
|
||||
if (mncLength == UNINITIALIZED || mncLength == UNKNOWN) {
|
||||
@@ -484,7 +497,7 @@ public final class SIMRecords extends IccRecords {
|
||||
// STOPSHIP: to be removed
|
||||
if (SystemProperties.getInt(com.android.internal.telephony.TelephonyProperties
|
||||
.PROPERTY_NETWORK_LTE_ON_CDMA, 0) == 1) {
|
||||
Log.e(LOG_TAG, "getSIMOperatorNumeric: STOPSHIP bad numeric operators in lte");
|
||||
Log.e(LOG_TAG, "getOperatorNumeric: STOPSHIP bad numeric operators in lte");
|
||||
return SystemProperties.get("ro.cdma.home.operator.numeric", "310004");
|
||||
}
|
||||
// Length = length of MCC + length of MNC
|
||||
@@ -559,7 +572,7 @@ public final class SIMRecords extends IccRecords {
|
||||
// finally have both the imsi and the mncLength and can parse the imsi properly
|
||||
MccTable.updateMccMncConfiguration(phone, imsi.substring(0, 3 + mncLength));
|
||||
}
|
||||
phone.mSimCard.broadcastIccStateChangedIntent(
|
||||
phone.mIccCard.broadcastIccStateChangedIntent(
|
||||
SimCard.INTENT_VALUE_ICC_IMSI, null);
|
||||
break;
|
||||
|
||||
@@ -1221,7 +1234,7 @@ public final class SIMRecords extends IccRecords {
|
||||
protected void onAllRecordsLoaded() {
|
||||
Log.d(LOG_TAG, "SIMRecords: record load complete");
|
||||
|
||||
String operator = getSIMOperatorNumeric();
|
||||
String operator = getOperatorNumeric();
|
||||
|
||||
// Some fields require more than one SIM record to set
|
||||
|
||||
@@ -1240,7 +1253,7 @@ public final class SIMRecords extends IccRecords {
|
||||
|
||||
recordsLoadedRegistrants.notifyRegistrants(
|
||||
new AsyncResult(null, null, null));
|
||||
phone.mSimCard.broadcastIccStateChangedIntent(
|
||||
phone.mIccCard.broadcastIccStateChangedIntent(
|
||||
SimCard.INTENT_VALUE_ICC_LOADED, null);
|
||||
}
|
||||
|
||||
@@ -1265,7 +1278,7 @@ public final class SIMRecords extends IccRecords {
|
||||
/* broadcast intent SIM_READY here so that we can make sure
|
||||
READY is sent before IMSI ready
|
||||
*/
|
||||
phone.mSimCard.broadcastIccStateChangedIntent(
|
||||
phone.mIccCard.broadcastIccStateChangedIntent(
|
||||
SimCard.INTENT_VALUE_ICC_READY, null);
|
||||
|
||||
fetchSimRecords();
|
||||
@@ -1362,7 +1375,8 @@ public final class SIMRecords extends IccRecords {
|
||||
*
|
||||
* If the SPN is not found on the SIM, the rule is always PLMN_ONLY.
|
||||
*/
|
||||
protected int getDisplayRule(String plmn) {
|
||||
@Override
|
||||
public int getDisplayRule(String plmn) {
|
||||
int rule;
|
||||
if (spn == null || spnDisplayCondition == -1) {
|
||||
// EF_SPN was not found on the SIM, or not yet loaded. Just show ONS.
|
||||
@@ -1389,7 +1403,7 @@ public final class SIMRecords extends IccRecords {
|
||||
private boolean isOnMatchingPlmn(String plmn) {
|
||||
if (plmn == null) return false;
|
||||
|
||||
if (plmn.equals(getSIMOperatorNumeric())) {
|
||||
if (plmn.equals(getOperatorNumeric())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ public final class SimCard extends IccCard {
|
||||
|
||||
@Override
|
||||
public String getServiceProviderName () {
|
||||
return ((GSMPhone)mPhone).mSIMRecords.getServiceProviderName();
|
||||
return mPhone.mIccRecords.getServiceProviderName();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class SimPhoneBookInterfaceManager extends IccPhoneBookInterfaceManager {
|
||||
|
||||
public SimPhoneBookInterfaceManager(GSMPhone phone) {
|
||||
super(phone);
|
||||
adnCache = phone.mSIMRecords.getAdnCache();
|
||||
adnCache = phone.mIccRecords.getAdnCache();
|
||||
//NOTE service "simphonebook" added by IccSmsInterfaceManagerProxy
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user