summaryrefslogtreecommitdiff
path: root/telephony/java
diff options
context:
space:
mode:
author Wink Saville <wink@google.com> 2012-03-13 15:10:55 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2012-03-13 15:10:55 -0700
commitf2fbd2eda54cc6083d302ab00367af3db2b7e793 (patch)
treebce364672002805701304194d263a750eb900262 /telephony/java
parent2e76c992bfa955cb637417005941e3e93810a99d (diff)
parent2b75d12a7bbe7ff64c7043855c18961fd4466870 (diff)
Merge "Telephony: Make IccFileHandler use ci instead of phone"
Diffstat (limited to 'telephony/java')
-rw-r--r--telephony/java/com/android/internal/telephony/IccCard.java7
-rw-r--r--telephony/java/com/android/internal/telephony/IccFileHandler.java68
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaLteUiccFileHandler.java11
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java10
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java9
5 files changed, 55 insertions, 50 deletions
diff --git a/telephony/java/com/android/internal/telephony/IccCard.java b/telephony/java/com/android/internal/telephony/IccCard.java
index fe80fdf2ad56..965bafad7073 100644
--- a/telephony/java/com/android/internal/telephony/IccCard.java
+++ b/telephony/java/com/android/internal/telephony/IccCard.java
@@ -186,10 +186,12 @@ public class IccCard {
if (phone.mCM.getLteOnCdmaMode() == Phone.LTE_ON_CDMA_TRUE
&& phone instanceof CDMALTEPhone) {
mIccRecords = new CdmaLteUiccRecords(phone);
- mIccFileHandler = new CdmaLteUiccFileHandler((CDMALTEPhone)phone);
+ mIccFileHandler = new CdmaLteUiccFileHandler(this, "", mPhone.mCM);
} else {
mIccRecords = is3gpp ? new SIMRecords(phone) : new RuimRecords(phone);
- mIccFileHandler = is3gpp ? new SIMFileHandler(phone) : new RuimFileHandler(phone);
+ // Correct aid will be set later (when GET_SIM_STATUS returns)
+ mIccFileHandler = is3gpp ? new SIMFileHandler(this, "", mPhone.mCM) :
+ new RuimFileHandler(this, "", mPhone.mCM);
}
mPhone.mCM.registerForOffOrNotAvailable(mHandler, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
mPhone.mCM.registerForOn(mHandler, EVENT_RADIO_ON, null);
@@ -572,6 +574,7 @@ public class IccCard {
}
if (oldState != State.READY && newState == State.READY) {
+ mIccFileHandler.setAid(getAid());
mIccRecords.onReady();
}
}
diff --git a/telephony/java/com/android/internal/telephony/IccFileHandler.java b/telephony/java/com/android/internal/telephony/IccFileHandler.java
index 380bfd1d05f2..70d8f7a2ce52 100644
--- a/telephony/java/com/android/internal/telephony/IccFileHandler.java
+++ b/telephony/java/com/android/internal/telephony/IccFileHandler.java
@@ -90,7 +90,9 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
static protected final int EVENT_READ_ICON_DONE = 10;
// member variables
- protected PhoneBase phone;
+ protected final CommandsInterface mCi;
+ protected final IccCard mParentCard;
+ protected String mAid;
static class LoadLinearFixedContext {
@@ -120,9 +122,10 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
/**
* Default constructor
*/
- protected IccFileHandler(PhoneBase phone) {
- super();
- this.phone = phone;
+ protected IccFileHandler(IccCard card, String aid, CommandsInterface ci) {
+ mParentCard = card;
+ mAid = aid;
+ mCi = ci;
}
public void dispose() {
@@ -145,9 +148,8 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
= obtainMessage(EVENT_GET_RECORD_SIZE_DONE,
new LoadLinearFixedContext(fileid, recordNum, onLoaded));
- phone.mCM.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
- 0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null,
- phone.getIccCard().getAid(), response);
+ mCi.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
+ 0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, mAid, response);
}
/**
@@ -165,10 +167,9 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
onLoaded));
// TODO(): Verify when path changes are done.
- phone.mCM.iccIOForApp(COMMAND_GET_RESPONSE, IccConstants.EF_IMG, "img",
+ mCi.iccIOForApp(COMMAND_GET_RESPONSE, IccConstants.EF_IMG, "img",
recordNum, READ_RECORD_MODE_ABSOLUTE,
- GET_RESPONSE_EF_IMG_SIZE_BYTES, null, null,
- phone.getIccCard().getAid(), response);
+ GET_RESPONSE_EF_IMG_SIZE_BYTES, null, null, mAid, response);
}
/**
@@ -184,9 +185,8 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
Message response
= obtainMessage(EVENT_GET_EF_LINEAR_RECORD_SIZE_DONE,
new LoadLinearFixedContext(fileid, onLoaded));
- phone.mCM.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
- 0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, phone.getIccCard().getAid(),
- response);
+ mCi.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
+ 0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, mAid, response);
}
/**
@@ -202,9 +202,8 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
Message response = obtainMessage(EVENT_GET_RECORD_SIZE_DONE,
new LoadLinearFixedContext(fileid,onLoaded));
- phone.mCM.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
- 0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null,
- phone.getIccCard().getAid(), response);
+ mCi.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
+ 0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, mAid, response);
}
/**
@@ -221,9 +220,8 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
Message response = obtainMessage(EVENT_GET_BINARY_SIZE_DONE,
fileid, 0, onLoaded);
- phone.mCM.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
- 0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null,
- phone.getIccCard().getAid(), response);
+ mCi.iccIOForApp(COMMAND_GET_RESPONSE, fileid, getEFPath(fileid),
+ 0, 0, GET_RESPONSE_EF_SIZE_BYTES, null, null, mAid, response);
}
/**
@@ -241,8 +239,8 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
Message response = obtainMessage(EVENT_READ_ICON_DONE, fileid, 0,
onLoaded);
- phone.mCM.iccIOForApp(COMMAND_READ_BINARY, fileid, "img", highOffset, lowOffset,
- length, null, null, phone.getIccCard().getAid(), response);
+ mCi.iccIOForApp(COMMAND_READ_BINARY, fileid, "img", highOffset, lowOffset,
+ length, null, null, mAid, response);
}
/**
@@ -256,10 +254,9 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
*/
public void updateEFLinearFixed(int fileid, int recordNum, byte[] data,
String pin2, Message onComplete) {
- phone.mCM.iccIOForApp(COMMAND_UPDATE_RECORD, fileid, getEFPath(fileid),
+ mCi.iccIOForApp(COMMAND_UPDATE_RECORD, fileid, getEFPath(fileid),
recordNum, READ_RECORD_MODE_ABSOLUTE, data.length,
- IccUtils.bytesToHexString(data), pin2,
- phone.getIccCard().getAid(), onComplete);
+ IccUtils.bytesToHexString(data), pin2, mAid, onComplete);
}
/**
@@ -268,10 +265,9 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
* @param data must be exactly as long as the EF
*/
public void updateEFTransparent(int fileid, byte[] data, Message onComplete) {
- phone.mCM.iccIOForApp(COMMAND_UPDATE_BINARY, fileid, getEFPath(fileid),
+ mCi.iccIOForApp(COMMAND_UPDATE_BINARY, fileid, getEFPath(fileid),
0, 0, data.length,
- IccUtils.bytesToHexString(data), null,
- phone.getIccCard().getAid(), onComplete);
+ IccUtils.bytesToHexString(data), null, mAid, onComplete);
}
@@ -402,11 +398,10 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
lc.results = new ArrayList<byte[]>(lc.countRecords);
}
- phone.mCM.iccIOForApp(COMMAND_READ_RECORD, lc.efid, getEFPath(lc.efid),
+ mCi.iccIOForApp(COMMAND_READ_RECORD, lc.efid, getEFPath(lc.efid),
lc.recordNum,
READ_RECORD_MODE_ABSOLUTE,
- lc.recordSize, null, null,
- phone.getIccCard().getAid(),
+ lc.recordSize, null, null, mAid,
obtainMessage(EVENT_READ_RECORD_DONE, lc));
break;
case EVENT_GET_BINARY_SIZE_DONE:
@@ -441,9 +436,8 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
size = ((data[RESPONSE_DATA_FILE_SIZE_1] & 0xff) << 8)
+ (data[RESPONSE_DATA_FILE_SIZE_2] & 0xff);
- phone.mCM.iccIOForApp(COMMAND_READ_BINARY, fileid, getEFPath(fileid),
- 0, 0, size, null, null,
- phone.getIccCard().getAid(),
+ mCi.iccIOForApp(COMMAND_READ_BINARY, fileid, getEFPath(fileid),
+ 0, 0, size, null, null, mAid,
obtainMessage(EVENT_READ_BINARY_DONE,
fileid, 0, response));
break;
@@ -477,11 +471,10 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
if (lc.recordNum > lc.countRecords) {
sendResult(response, lc.results, null);
} else {
- phone.mCM.iccIOForApp(COMMAND_READ_RECORD, lc.efid, getEFPath(lc.efid),
+ mCi.iccIOForApp(COMMAND_READ_RECORD, lc.efid, getEFPath(lc.efid),
lc.recordNum,
READ_RECORD_MODE_ABSOLUTE,
- lc.recordSize, null, null,
- phone.getIccCard().getAid(),
+ lc.recordSize, null, null, mAid,
obtainMessage(EVENT_READ_RECORD_DONE, lc));
}
}
@@ -551,5 +544,8 @@ public abstract class IccFileHandler extends Handler implements IccConstants {
protected abstract void logd(String s);
protected abstract void loge(String s);
+ protected void setAid(String aid) {
+ mAid = aid;
+ }
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaLteUiccFileHandler.java b/telephony/java/com/android/internal/telephony/cdma/CdmaLteUiccFileHandler.java
index e195ff2ec00e..93a6290cf759 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaLteUiccFileHandler.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaLteUiccFileHandler.java
@@ -17,6 +17,9 @@
package com.android.internal.telephony.cdma;
import android.util.Log;
+
+import com.android.internal.telephony.CommandsInterface;
+import com.android.internal.telephony.IccCard;
import com.android.internal.telephony.IccConstants;
import com.android.internal.telephony.IccFileHandler;
import android.os.Message;
@@ -27,8 +30,8 @@ import android.os.Message;
public final class CdmaLteUiccFileHandler extends IccFileHandler {
static final String LOG_TAG = "CDMA";
- public CdmaLteUiccFileHandler(CDMALTEPhone phone) {
- super(phone);
+ public CdmaLteUiccFileHandler(IccCard card, String aid, CommandsInterface ci) {
+ super(card, aid, ci);
}
protected String getEFPath(int efid) {
@@ -55,8 +58,8 @@ public final class CdmaLteUiccFileHandler extends IccFileHandler {
if (fileid == EF_CSIM_EPRL) {
// Entire PRL could be huge. We are only interested in
// the first 4 bytes of the record.
- phone.mCM.iccIOForApp(COMMAND_READ_BINARY, fileid, getEFPath(fileid),
- 0, 0, 4, null, null, phone.getIccCard().getAid(),
+ mCi.iccIOForApp(COMMAND_READ_BINARY, fileid, getEFPath(fileid),
+ 0, 0, 4, null, null, mAid,
obtainMessage(EVENT_READ_BINARY_DONE,
fileid, 0, onLoaded));
} else {
diff --git a/telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java b/telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java
index e854d7f8ae4b..9f30d3632bd5 100644
--- a/telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java
+++ b/telephony/java/com/android/internal/telephony/cdma/RuimFileHandler.java
@@ -19,6 +19,8 @@ package com.android.internal.telephony.cdma;
import android.os.*;
import android.util.Log;
+import com.android.internal.telephony.CommandsInterface;
+import com.android.internal.telephony.IccCard;
import com.android.internal.telephony.IccConstants;
import com.android.internal.telephony.IccException;
import com.android.internal.telephony.IccFileHandler;
@@ -39,8 +41,8 @@ public final class RuimFileHandler extends IccFileHandler {
//***** Instance Variables
//***** Constructor
- public RuimFileHandler(PhoneBase phone) {
- super(phone);
+ public RuimFileHandler(IccCard card, String aid, CommandsInterface ci) {
+ super(card, aid, ci);
}
public void dispose() {
@@ -58,9 +60,9 @@ public final class RuimFileHandler extends IccFileHandler {
Message response = obtainMessage(EVENT_READ_ICON_DONE, fileid, 0,
onLoaded);
- phone.mCM.iccIOForApp(COMMAND_GET_RESPONSE, fileid, "img", 0, 0,
+ mCi.iccIOForApp(COMMAND_GET_RESPONSE, fileid, "img", 0, 0,
GET_RESPONSE_EF_IMG_SIZE_BYTES, null, null,
- phone.getIccCard().getAid(), response);
+ mAid, response);
}
@Override
diff --git a/telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java b/telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java
index 8c3bc0e48d35..455ee742fb28 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SIMFileHandler.java
@@ -19,6 +19,7 @@ package com.android.internal.telephony.gsm;
import android.os.Message;
import android.util.Log;
+import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.IccCard;
import com.android.internal.telephony.IccCardApplication;
import com.android.internal.telephony.IccConstants;
@@ -35,8 +36,8 @@ public final class SIMFileHandler extends IccFileHandler implements IccConstants
//***** Constructor
- public SIMFileHandler(PhoneBase phone) {
- super(phone);
+ public SIMFileHandler(IccCard card, String aid, CommandsInterface ci) {
+ super(card, aid, ci);
}
public void dispose() {
@@ -91,8 +92,8 @@ public final class SIMFileHandler extends IccFileHandler implements IccConstants
// The EFids in USIM phone book entries are decided by the card manufacturer.
// So if we don't match any of the cases above and if its a USIM return
// the phone book path.
- IccCard card = phone.getIccCard();
- if (card != null && card.isApplicationOnIcc(IccCardApplication.AppType.APPTYPE_USIM)) {
+ if (mParentCard != null
+ && mParentCard.isApplicationOnIcc(IccCardApplication.AppType.APPTYPE_USIM)) {
return MF_SIM + DF_TELECOM + DF_PHONEBOOK;
}
Log.e(LOG_TAG, "Error: EF Path being returned in null");