summaryrefslogtreecommitdiffstats
path: root/telephony/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'telephony/java/com')
-rw-r--r--telephony/java/com/android/internal/telephony/IccConstants.java61
-rw-r--r--telephony/java/com/android/internal/telephony/IccFileHandler.java51
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java52
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java6
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java75
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java44
6 files changed, 166 insertions, 123 deletions
diff --git a/telephony/java/com/android/internal/telephony/IccConstants.java b/telephony/java/com/android/internal/telephony/IccConstants.java
index 59ce5bb..014fbb6 100644
--- a/telephony/java/com/android/internal/telephony/IccConstants.java
+++ b/telephony/java/com/android/internal/telephony/IccConstants.java
@@ -21,39 +21,44 @@ package com.android.internal.telephony;
*/
public interface IccConstants {
// GSM SIM file ids from TS 51.011
- public static final int EF_ADN = 0x6F3A;
- public static final int EF_FDN = 0x6F3B;
- public static final int EF_SDN = 0x6F49;
- public static final int EF_EXT1 = 0x6F4A;
- public static final int EF_EXT2 = 0x6F4B;
- public static final int EF_EXT3 = 0x6F4C;
- public static final int EF_EXT6 = 0x6fc8; // Ext record for EF[MBDN]
- public static final int EF_MWIS = 0x6FCA;
- public static final int EF_MBDN = 0x6fc7;
- public static final int EF_PNN = 0x6fc5;
- public static final int EF_SPN = 0x6F46;
- public static final int EF_SMS = 0x6F3C;
- public static final int EF_ICCID = 0x2fe2;
- public static final int EF_AD = 0x6FAD;
- public static final int EF_MBI = 0x6fc9;
- public static final int EF_MSISDN = 0x6f40;
- public static final int EF_SPDI = 0x6fcd;
- public static final int EF_SST = 0x6f38;
- public static final int EF_CFIS = 0x6FCB;
- public static final int EF_IMG = 0x4f20;
+ static final int EF_ADN = 0x6F3A;
+ static final int EF_FDN = 0x6F3B;
+ static final int EF_SDN = 0x6F49;
+ static final int EF_EXT1 = 0x6F4A;
+ static final int EF_EXT2 = 0x6F4B;
+ static final int EF_EXT3 = 0x6F4C;
+ static final int EF_EXT6 = 0x6fc8; // Ext record for EF[MBDN]
+ static final int EF_MWIS = 0x6FCA;
+ static final int EF_MBDN = 0x6fc7;
+ static final int EF_PNN = 0x6fc5;
+ static final int EF_SPN = 0x6F46;
+ static final int EF_SMS = 0x6F3C;
+ static final int EF_ICCID = 0x2fe2;
+ static final int EF_AD = 0x6FAD;
+ static final int EF_MBI = 0x6fc9;
+ static final int EF_MSISDN = 0x6f40;
+ static final int EF_SPDI = 0x6fcd;
+ static final int EF_SST = 0x6f38;
+ static final int EF_CFIS = 0x6FCB;
+ static final int EF_IMG = 0x4f20;
// GSM SIM file ids from CPHS (phase 2, version 4.2) CPHS4_2.WW6
- public static final int EF_MAILBOX_CPHS = 0x6F17;
- public static final int EF_VOICE_MAIL_INDICATOR_CPHS = 0x6F11;
- public static final int EF_CFF_CPHS = 0x6F13;
- public static final int EF_SPN_CPHS = 0x6f14;
- public static final int EF_SPN_SHORT_CPHS = 0x6f18;
- public static final int EF_INFO_CPHS = 0x6f16;
+ static final int EF_MAILBOX_CPHS = 0x6F17;
+ static final int EF_VOICE_MAIL_INDICATOR_CPHS = 0x6F11;
+ static final int EF_CFF_CPHS = 0x6F13;
+ static final int EF_SPN_CPHS = 0x6f14;
+ static final int EF_SPN_SHORT_CPHS = 0x6f18;
+ static final int EF_INFO_CPHS = 0x6f16;
// CDMA RUIM file ids from 3GPP2 C.S0023-0
- public static final int EF_CST = 0x6f32;
- public static final int EF_RUIM_SPN =0x6F41;
+ static final int EF_CST = 0x6f32;
+ static final int EF_RUIM_SPN =0x6F41;
// SMS record length from TS 51.011 10.5.3
static public final int SMS_RECORD_LENGTH = 176;
+
+ static final String MF_SIM = "3F00";
+ static final String DF_TELECOM = "7F10";
+ static final String DF_GRAPHICS = "5F50";
+ static final String DF_GSM = "7F20";
}
diff --git a/telephony/java/com/android/internal/telephony/IccFileHandler.java b/telephony/java/com/android/internal/telephony/IccFileHandler.java
index e751c5e..92ddd2c 100644
--- a/telephony/java/com/android/internal/telephony/IccFileHandler.java
+++ b/telephony/java/com/android/internal/telephony/IccFileHandler.java
@@ -23,7 +23,7 @@ import java.util.ArrayList;
/**
* {@hide}
*/
-public abstract class IccFileHandler extends Handler {
+public abstract class IccFileHandler extends Handler implements IccConstants {
//from TS 11.11 9.1 or elsewhere
static protected final int COMMAND_READ_BINARY = 0xb0;
@@ -145,7 +145,7 @@ public abstract class IccFileHandler extends Handler {
= obtainMessage(EVENT_GET_RECORD_SIZE_DONE,
new LoadLinearFixedContext(fileid, recordNum, onLoaded));
- phone.mCM.iccIO(COMMAND_GET_RESPONSE, fileid, null,
+ phone.mCM.iccIO(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, response);
}
@@ -163,6 +163,7 @@ public abstract class IccFileHandler extends Handler {
new LoadLinearFixedContext(IccConstants.EF_IMG, recordNum,
onLoaded));
+ // TODO(): Verify when path changes are done.
phone.mCM.iccIO(COMMAND_GET_RESPONSE, IccConstants.EF_IMG, "img",
recordNum, READ_RECORD_MODE_ABSOLUTE,
GET_RESPONSE_EF_IMG_SIZE_BYTES, null, null, response);
@@ -181,7 +182,7 @@ public abstract class IccFileHandler extends Handler {
Message response
= obtainMessage(EVENT_GET_EF_LINEAR_RECORD_SIZE_DONE,
new LoadLinearFixedContext(fileid, onLoaded));
- phone.mCM.iccIO(COMMAND_GET_RESPONSE, fileid, null,
+ phone.mCM.iccIO(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, response);
}
@@ -198,7 +199,7 @@ public abstract class IccFileHandler extends Handler {
Message response = obtainMessage(EVENT_GET_RECORD_SIZE_DONE,
new LoadLinearFixedContext(fileid,onLoaded));
- phone.mCM.iccIO(COMMAND_GET_RESPONSE, fileid, null,
+ phone.mCM.iccIO(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, response);
}
@@ -216,7 +217,7 @@ public abstract class IccFileHandler extends Handler {
Message response = obtainMessage(EVENT_GET_BINARY_SIZE_DONE,
fileid, 0, onLoaded);
- phone.mCM.iccIO(COMMAND_GET_RESPONSE, fileid, null,
+ phone.mCM.iccIO(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, response);
}
@@ -250,7 +251,7 @@ public abstract class IccFileHandler extends Handler {
*/
public void updateEFLinearFixed(int fileid, int recordNum, byte[] data,
String pin2, Message onComplete) {
- phone.mCM.iccIO(COMMAND_UPDATE_RECORD, fileid, null,
+ phone.mCM.iccIO(COMMAND_UPDATE_RECORD, fileid, getEFPath(fileid),
recordNum, READ_RECORD_MODE_ABSOLUTE, data.length,
IccUtils.bytesToHexString(data), pin2, onComplete);
}
@@ -261,7 +262,7 @@ public abstract class IccFileHandler extends Handler {
* @param data must be exactly as long as the EF
*/
public void updateEFTransparent(int fileid, byte[] data, Message onComplete) {
- phone.mCM.iccIO(COMMAND_UPDATE_BINARY, fileid, null,
+ phone.mCM.iccIO(COMMAND_UPDATE_BINARY, fileid, getEFPath(fileid),
0, 0, data.length,
IccUtils.bytesToHexString(data), null, onComplete);
}
@@ -394,7 +395,7 @@ public abstract class IccFileHandler extends Handler {
lc.results = new ArrayList<byte[]>(lc.countRecords);
}
- phone.mCM.iccIO(COMMAND_READ_RECORD, lc.efid, null,
+ phone.mCM.iccIO(COMMAND_READ_RECORD, lc.efid, getEFPath(lc.efid),
lc.recordNum,
READ_RECORD_MODE_ABSOLUTE,
lc.recordSize, null, null,
@@ -432,7 +433,7 @@ public abstract class IccFileHandler extends Handler {
size = ((data[RESPONSE_DATA_FILE_SIZE_1] & 0xff) << 8)
+ (data[RESPONSE_DATA_FILE_SIZE_2] & 0xff);
- phone.mCM.iccIO(COMMAND_READ_BINARY, fileid, null,
+ phone.mCM.iccIO(COMMAND_READ_BINARY, fileid, getEFPath(fileid),
0, 0, size, null, null,
obtainMessage(EVENT_READ_BINARY_DONE,
fileid, 0, response));
@@ -467,7 +468,7 @@ public abstract class IccFileHandler extends Handler {
if (lc.recordNum > lc.countRecords) {
sendResult(response, lc.results, null);
} else {
- phone.mCM.iccIO(COMMAND_READ_RECORD, lc.efid, null,
+ phone.mCM.iccIO(COMMAND_READ_RECORD, lc.efid, getEFPath(lc.efid),
lc.recordNum,
READ_RECORD_MODE_ABSOLUTE,
lc.recordSize, null, null,
@@ -506,6 +507,36 @@ public abstract class IccFileHandler extends Handler {
}
}
+ /**
+ * Returns the root path of the EF file.
+ * i.e returns MasterFile + DFfile as a string.
+ * Ex: For EF_ADN on a SIM, it will return "3F007F10"
+ * This function handles only EFids that are common to
+ * RUIM, SIM, USIM and other types of Icc cards.
+ *
+ * @param efId
+ * @return root path of the file.
+ */
+ protected String getCommonIccEFPath(int efid) {
+ switch(efid) {
+ case EF_ADN:
+ case EF_FDN:
+ case EF_MSISDN:
+ case EF_SDN:
+ case EF_EXT1:
+ case EF_EXT2:
+ case EF_EXT3:
+ return MF_SIM + DF_TELECOM;
+
+ case EF_ICCID:
+ return MF_SIM;
+ case EF_IMG:
+ return MF_SIM + DF_TELECOM + DF_GRAPHICS;
+ }
+ return null;
+ }
+
+ protected abstract String getEFPath(int efid);
protected abstract void logd(String s);
protected abstract void loge(String s);
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
index e0a84ab..651c505 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
@@ -64,7 +64,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
private static final String LOG_TAG = "CDMA";
private static final boolean DBG = true;
- //***** Instance Variables
+ private CDMAPhone mCdmaPhone;
// Indicates baseband will not auto-attach
private boolean noAutoAttach = false;
@@ -83,20 +83,19 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
private CdmaDataConnection mActiveDataConnection;
/** Defined cdma connection profiles */
- private static int EXTERNAL_NETWORK_DEFAULT_ID = 0;
- private static int EXTERNAL_NETWORK_NUM_TYPES = 1;
+ private static final int EXTERNAL_NETWORK_DEFAULT_ID = 0;
+ private static final int EXTERNAL_NETWORK_NUM_TYPES = 1;
private boolean[] dataEnabled = new boolean[EXTERNAL_NETWORK_NUM_TYPES];
- //***** Constants
-
/**
* Pool size of CdmaDataConnection objects.
*/
private static final int DATA_CONNECTION_POOL_SIZE = 1;
private static final int POLL_CONNECTION_MILLIS = 5 * 1000;
- private static final String INTENT_RECONNECT_ALARM = "com.android.internal.telephony.cdma-reconnect";
+ private static final String INTENT_RECONNECT_ALARM =
+ "com.android.internal.telephony.cdma-reconnect";
private static final String INTENT_RECONNECT_ALARM_EXTRA_REASON = "reason";
// Possibly promoate to base class, the only difference is
@@ -146,6 +145,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
CdmaDataConnectionTracker(CDMAPhone p) {
super(p);
+ mCdmaPhone = p;
p.mCM.registerForAvailable (this, EVENT_RADIO_AVAILABLE, null);
p.mCM.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
@@ -187,15 +187,15 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
//Unregister from all events
phone.mCM.unregisterForAvailable(this);
phone.mCM.unregisterForOffOrNotAvailable(this);
- ((CDMAPhone) phone).mRuimRecords.unregisterForRecordsLoaded(this);
+ mCdmaPhone.mRuimRecords.unregisterForRecordsLoaded(this);
phone.mCM.unregisterForNVReady(this);
phone.mCM.unregisterForDataStateChanged(this);
- ((CDMAPhone) phone).mCT.unregisterForVoiceCallEnded(this);
- ((CDMAPhone) phone).mCT.unregisterForVoiceCallStarted(this);
- ((CDMAPhone) phone).mSST.unregisterForCdmaDataConnectionAttached(this);
- ((CDMAPhone) phone).mSST.unregisterForCdmaDataConnectionDetached(this);
- ((CDMAPhone) phone).mSST.unregisterForRoamingOn(this);
- ((CDMAPhone) phone).mSST.unregisterForRoamingOff(this);
+ mCdmaPhone.mCT.unregisterForVoiceCallEnded(this);
+ mCdmaPhone.mCT.unregisterForVoiceCallStarted(this);
+ mCdmaPhone.mSST.unregisterForCdmaDataConnectionAttached(this);
+ mCdmaPhone.mSST.unregisterForCdmaDataConnectionDetached(this);
+ mCdmaPhone.mSST.unregisterForRoamingOn(this);
+ mCdmaPhone.mSST.unregisterForRoamingOff(this);
phone.getContext().unregisterReceiver(this.mIntentReceiver);
destroyAllDataConnectionList();
@@ -277,10 +277,10 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
public boolean isDataConnectionAsDesired() {
boolean roaming = phone.getServiceState().getRoaming();
- if ( ((phone.mCM.getRadioState() == CommandsInterface.RadioState.NV_READY) ||
- ((CDMAPhone) phone).mRuimRecords.getRecordsLoaded()) &&
- ((CDMAPhone) phone).mSST.getCurrentCdmaDataConnectionState() ==
- ServiceState.STATE_IN_SERVICE &&
+ if (((phone.mCM.getRadioState() == CommandsInterface.RadioState.NV_READY) ||
+ mCdmaPhone.mRuimRecords.getRecordsLoaded()) &&
+ (mCdmaPhone.mSST.getCurrentCdmaDataConnectionState() ==
+ ServiceState.STATE_IN_SERVICE) &&
(!roaming || getDataOnRoamingEnabled()) &&
!mIsWifiConnected ) {
return (state == State.CONNECTED);
@@ -353,7 +353,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
return true;
}
- int psState = ((CDMAPhone) phone).mSST.getCurrentCdmaDataConnectionState();
+ int psState = mCdmaPhone.mSST.getCurrentCdmaDataConnectionState();
boolean roaming = phone.getServiceState().getRoaming();
if ((state == State.IDLE || state == State.SCANNING)
@@ -361,9 +361,9 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
psState == ServiceState.RADIO_TECHNOLOGY_EVDO_0 ||
psState == ServiceState.RADIO_TECHNOLOGY_EVDO_A)
&& ((phone.mCM.getRadioState() == CommandsInterface.RadioState.NV_READY) ||
- ((CDMAPhone) phone).mRuimRecords.getRecordsLoaded())
- && (((CDMAPhone) phone).mSST.isConcurrentVoiceAndData() ||
- phone.getState() == Phone.State.IDLE )
+ mCdmaPhone.mRuimRecords.getRecordsLoaded())
+ && (mCdmaPhone.mSST.isConcurrentVoiceAndData() ||
+ phone.getState() == Phone.State.IDLE )
&& isDataAllowed()) {
return setupData(reason);
@@ -374,8 +374,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
" dataState=" + state +
" PS state=" + psState +
" radio state=" + phone.mCM.getRadioState() +
- " ruim=" + ((CDMAPhone) phone).mRuimRecords.getRecordsLoaded() +
- " concurrentVoice&Data=" + ((CDMAPhone) phone).mSST.isConcurrentVoiceAndData() +
+ " ruim=" + mCdmaPhone.mRuimRecords.getRecordsLoaded() +
+ " concurrentVoice&Data=" + mCdmaPhone.mSST.isConcurrentVoiceAndData() +
" phoneState=" + phone.getState() +
" dataEnabled=" + getAnyDataEnabled() +
" roaming=" + roaming +
@@ -781,7 +781,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
* @override com.android.internal.telephony.DataConnectionTracker
*/
protected void onVoiceCallStarted() {
- if (state == State.CONNECTED && !((CDMAPhone) phone).mSST.isConcurrentVoiceAndData()) {
+ if (state == State.CONNECTED && !mCdmaPhone.mSST.isConcurrentVoiceAndData()) {
stopNetStatPoll();
phone.notifyDataConnection(Phone.REASON_VOICE_CALL_STARTED);
}
@@ -792,7 +792,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
*/
protected void onVoiceCallEnded() {
if (state == State.CONNECTED) {
- if (!((CDMAPhone) phone).mSST.isConcurrentVoiceAndData()) {
+ if (!mCdmaPhone.mSST.isConcurrentVoiceAndData()) {
startNetStatPoll();
phone.notifyDataConnection(Phone.REASON_VOICE_CALL_ENDED);
} else {
@@ -818,7 +818,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
CdmaDataConnection dataConn;
for (int i = 0; i < DATA_CONNECTION_POOL_SIZE; i++) {
- dataConn = new CdmaDataConnection(((CDMAPhone) phone));
+ dataConn = new CdmaDataConnection(mCdmaPhone);
dataConnectionList.add(dataConn);
}
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java b/telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java
index 7d392f0..9de6c42 100644
--- a/telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java
+++ b/telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java
@@ -17,7 +17,6 @@
package com.android.internal.telephony.cdma;
import android.os.*;
-import android.os.AsyncResult;
import android.util.Log;
import com.android.internal.telephony.IccConstants;
@@ -68,6 +67,11 @@ public final class RuimFileHandler extends IccFileHandler {
super.handleMessage(msg);
}
+ protected String getEFPath(int efid) {
+ // TODO(): Implement for CDMA EFs.
+ return getCommonIccEFPath(efid);
+ }
+
protected void logd(String msg) {
Log.d(LOG_TAG, "[RuimFileHandler] " + msg);
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index 71ffe74..9e6ebc4 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -836,57 +836,38 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
return;
}
+ if (state == State.CONNECTED) {
+ // The way things are supposed to work, the PDP list
+ // should not contain the CID after it disconnects.
+ // However, the way things really work, sometimes the PDP
+ // context is still listed with active = false, which
+ // makes it hard to distinguish an activating context from
+ // an activated-and-then deactivated one.
+ if (!pdpStatesHasCID(pdpStates, cidActive)) {
+ // It looks like the PDP context has deactivated.
+ // Tear everything down and try to reconnect.
+
+ Log.i(LOG_TAG, "PDP connection has dropped. Reconnecting");
+
+ // Add an event log when the network drops PDP
+ int cid = -1;
+ GsmCellLocation loc = ((GsmCellLocation)phone.getCellLocation());
+ if (loc != null) cid = loc.getCid();
+ EventLog.List val = new EventLog.List(cid,
+ TelephonyManager.getDefault().getNetworkType());
+ EventLog.writeEvent(TelephonyEventLog.EVENT_LOG_PDP_NETWORK_DROP, val);
- // This is how things are supposed to work:
- // The PDP list is supposed to be empty of the CID
- // when it disconnects
-
- if (state == State.CONNECTED
- && !pdpStatesHasCID(pdpStates, cidActive)) {
-
- // It looks like the PDP context has deactivated
- // Tear everything down and try to reconnect
-
- Log.i(LOG_TAG, "PDP connection has dropped. Reconnecting");
-
- // Add an event log when the network drops PDP
- int cid = -1;
- GsmCellLocation loc = ((GsmCellLocation)phone.getCellLocation());
- if (loc != null) cid = loc.getCid();
-
- EventLog.List val = new EventLog.List(cid,
- TelephonyManager.getDefault().getNetworkType());
-
- EventLog.writeEvent(TelephonyEventLog.EVENT_LOG_PDP_NETWORK_DROP, val);
-
- cleanUpConnection(true, null);
-
- return;
- }
-
- if (true) {
- //
- // Workaround for issue #655426
- //
-
- // --------------------------
-
- // This is how some things work now: the PDP context is still
- // listed with active = false, which makes it hard to
- // distinguish an activating context from an activated-and-then
- // deactivated one.
- //
- // Here, we only consider this authoritative if we asked for the
- // PDP list. If it was an unsolicited response, we poll again
- // to make sure everyone agrees on the initial state
-
- if (state == State.CONNECTED
- && !pdpStatesHasActiveCID(pdpStates, cidActive)) {
+ cleanUpConnection(true, null);
+ return;
+ } else if (!pdpStatesHasActiveCID(pdpStates, cidActive)) {
+ // Here, we only consider this authoritative if we asked for the
+ // PDP list. If it was an unsolicited response, we poll again
+ // to make sure everyone agrees on the initial state.
if (!explicitPoll) {
// We think it disconnected but aren't sure...poll from our side
phone.mCM.getPDPContextList(
- this.obtainMessage(EVENT_GET_PDP_LIST_COMPLETE));
+ this.obtainMessage(EVENT_GET_PDP_LIST_COMPLETE));
} else {
Log.i(LOG_TAG, "PDP connection has dropped (active=false case). "
+ " Reconnecting");
@@ -895,10 +876,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
int cid = -1;
GsmCellLocation loc = ((GsmCellLocation)phone.getCellLocation());
if (loc != null) cid = loc.getCid();
-
EventLog.List val = new EventLog.List(cid,
TelephonyManager.getDefault().getNetworkType());
-
EventLog.writeEvent(TelephonyEventLog.EVENT_LOG_PDP_NETWORK_DROP, val);
cleanUpConnection(true, null);
diff --git a/telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java b/telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java
index ead1327..a08cdde 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java
@@ -16,26 +16,19 @@
package com.android.internal.telephony.gsm;
-import android.os.*;
-import android.os.AsyncResult;
+import android.os.Message;
import android.util.Log;
import com.android.internal.telephony.IccConstants;
-import com.android.internal.telephony.IccException;
import com.android.internal.telephony.IccFileHandler;
-import com.android.internal.telephony.IccFileTypeMismatch;
-import com.android.internal.telephony.IccIoResult;
-import com.android.internal.telephony.IccUtils;
-import com.android.internal.telephony.PhoneProxy;
-
-import java.util.ArrayList;
/**
* {@hide}
*/
-public final class SIMFileHandler extends IccFileHandler {
+public final class SIMFileHandler extends IccFileHandler implements IccConstants {
static final String LOG_TAG = "GSM";
+
//***** Instance Variables
//***** Constructor
@@ -59,6 +52,37 @@ public final class SIMFileHandler extends IccFileHandler {
super.handleMessage(msg);
}
+ protected String getEFPath(int efid) {
+ // TODO(): Make changes when USIM is supported
+ // TODO(): DF_GSM can be 7F20 or 7F21 to handle backward compatibility.
+ // Implement this after discussion with OEMs.
+ switch(efid) {
+ case EF_SMS:
+ return MF_SIM + DF_TELECOM;
+
+ case EF_EXT6:
+ case EF_MWIS:
+ case EF_MBI:
+ case EF_SPN:
+ case EF_AD:
+ case EF_MBDN:
+ case EF_PNN:
+ case EF_SPDI:
+ case EF_SST:
+ case EF_CFIS:
+ return MF_SIM + DF_GSM;
+
+ case EF_MAILBOX_CPHS:
+ case EF_VOICE_MAIL_INDICATOR_CPHS:
+ case EF_CFF_CPHS:
+ case EF_SPN_CPHS:
+ case EF_SPN_SHORT_CPHS:
+ case EF_INFO_CPHS:
+ return MF_SIM + DF_GSM;
+ }
+ return getCommonIccEFPath(efid);
+ }
+
protected void logd(String msg) {
Log.d(LOG_TAG, "[SIMFileHandler] " + msg);
}