auto import from //branches/cupcake/...@126645

This commit is contained in:
The Android Open Source Project
2009-01-15 16:12:10 -08:00
parent b798689749
commit 9266c558bf
326 changed files with 11994 additions and 2045 deletions

View File

@@ -59,7 +59,7 @@ import com.android.internal.telephony.PhoneNotifier;
import com.android.internal.telephony.PhoneSubInfo;
import com.android.internal.telephony.SimCard;
import com.android.internal.telephony.gsm.SimException;
import com.android.internal.telephony.gsm.stk.Service;
import com.android.internal.telephony.gsm.stk.StkService;
import com.android.internal.telephony.test.SimulatedRadioControl;
import java.io.IOException;
@@ -102,7 +102,7 @@ public class GSMPhone extends PhoneBase {
SIMFileHandler mSIMFileHandler;
SIMRecords mSIMRecords;
GsmSimCard mSimCard;
Service mStkService;
StkService mStkService;
MyHandler h;
ArrayList <GsmMmiCode> mPendingMMIs = new ArrayList<GsmMmiCode>();
SimPhoneBookInterfaceManager mSimPhoneBookIntManager;
@@ -182,7 +182,7 @@ public class GSMPhone extends PhoneBase {
mSimSmsIntManager = new SimSmsInterfaceManager(this);
mSubInfo = new PhoneSubInfo(this);
}
mStkService = Service.getInstance(mCM, mSIMRecords, mContext,
mStkService = StkService.getInstance(mCM, mSIMRecords, mContext,
mSIMFileHandler, mSimCard);
mCM.registerForAvailable(h, EVENT_RADIO_AVAILABLE, null);

View File

@@ -28,7 +28,7 @@ import java.util.List;
/**
* Factory class, used for decoding raw byte arrays, received from baseband,
* into a CommandParams object.
* into a CommandParams object.
*
*/
class CommandParamsFactory extends Handler {
@@ -36,7 +36,7 @@ class CommandParamsFactory extends Handler {
private IconLoader mIconLoader;
private CommandParams mCmdParams = null;
private int mIconLoadState = LOAD_NO_ICON;
private Handler mCaller = null;
private RilMessageDecoder mCaller = null;
// constants
static final int MSG_ID_LOAD_ICON_DONE = 1;
@@ -52,7 +52,7 @@ class CommandParamsFactory extends Handler {
static final int REFRESH_NAA_INIT = 0x03;
static final int REFRESH_UICC_RESET = 0x04;
static synchronized CommandParamsFactory getInstance(Handler caller,
static synchronized CommandParamsFactory getInstance(RilMessageDecoder caller,
SIMFileHandler fh) {
if (sInstance != null) {
return sInstance;
@@ -63,7 +63,7 @@ class CommandParamsFactory extends Handler {
return null;
}
private CommandParamsFactory(Handler caller, SIMFileHandler fh) {
private CommandParamsFactory(RilMessageDecoder caller, SIMFileHandler fh) {
mCaller = caller;
mIconLoader = IconLoader.getInstance(this, fh);
}
@@ -107,7 +107,7 @@ class CommandParamsFactory extends Handler {
return;
}
// extract command type enumeration from the raw value stored inside
// extract command type enumeration from the raw value stored inside
// the Command Details object.
AppInterface.CommandType cmdType = AppInterface.CommandType
.fromInt(cmdDet.typeOfCommand);
@@ -203,18 +203,15 @@ class CommandParamsFactory extends Handler {
}
private void sendCmdParams(ResultCode resCode) {
Message msg = mCaller.obtainMessage(RilMessageDecoder.CMD_PARAMS_READY);
msg.arg1 = resCode.value();
msg.obj = mCmdParams;
msg.sendToTarget();
mCaller.sendMessageParamsDecoded(resCode, mCmdParams);
}
/**
* Search for a COMPREHENSION-TLV object with the given tag from a list
*
*
* @param tag A tag to search for
* @param ctlvs List of ComprehensionTlv objects used to search in
*
*
* @return A ComprehensionTlv object that has the tag value of {@code tag}.
* If no object is found with the tag, null is returned.
*/
@@ -229,10 +226,10 @@ class CommandParamsFactory extends Handler {
* list iterated by {@code iter}. {@code iter} points to the object next to
* the found object when this method returns. Used for searching the same
* list for similar tags, usually item id.
*
*
* @param tag A tag to search for
* @param iter Iterator for ComprehensionTlv objects used for search
*
*
* @return A ComprehensionTlv object that has the tag value of {@code tag}.
* If no object is found with the tag, null is returned.
*/
@@ -250,11 +247,11 @@ class CommandParamsFactory extends Handler {
/**
* Processes DISPLAY_TEXT proactive command from the SIM card.
*
*
* @param cmdDet Command Details container object.
* @param ctlvs List of ComprehensionTlv objects following Command Details
* object and Device Identities object within the proactive command
* @return true if the command is processing is pending and additional
* @return true if the command is processing is pending and additional
* asynchronous processing is required.
* @throws ResultException
*/
@@ -272,7 +269,7 @@ class CommandParamsFactory extends Handler {
if (ctlv != null) {
textMsg.text = ValueParser.retrieveTextString(ctlv);
}
// If the tlv object doesn't exist or the it is a null object reply
// If the tlv object doesn't exist or the it is a null object reply
// with command not understood.
if (textMsg.text == null) {
throw new ResultException(ResultCode.CMD_DATA_NOT_UNDERSTOOD);
@@ -311,7 +308,7 @@ class CommandParamsFactory extends Handler {
/**
* Processes SET_UP_IDLE_MODE_TEXT proactive command from the SIM card.
*
*
* @param cmdDet Command Details container object.
* @param ctlvs List of ComprehensionTlv objects following Command Details
* object and Device Identities object within the proactive command
@@ -354,7 +351,7 @@ class CommandParamsFactory extends Handler {
/**
* Processes GET_INKEY proactive command from the SIM card.
*
*
* @param cmdDet Command Details container object.
* @param ctlvs List of ComprehensionTlv objects following Command Details
* object and Device Identities object within the proactive command
@@ -366,7 +363,7 @@ class CommandParamsFactory extends Handler {
List<ComprehensionTlv> ctlvs) throws ResultException {
StkLog.d(this, "process GetInkey");
Input input = new Input();
IconId iconId = null;
@@ -404,7 +401,7 @@ class CommandParamsFactory extends Handler {
/**
* Processes GET_INPUT proactive command from the SIM card.
*
*
* @param cmdDet Command Details container object.
* @param ctlvs List of ComprehensionTlv objects following Command Details
* object and Device Identities object within the proactive command
@@ -471,7 +468,7 @@ class CommandParamsFactory extends Handler {
/**
* Processes REFRESH proactive command from the SIM card.
*
*
* @param cmdDet Command Details container object.
* @param ctlvs List of ComprehensionTlv objects following Command Details
* object and Device Identities object within the proactive command
@@ -482,8 +479,8 @@ class CommandParamsFactory extends Handler {
StkLog.d(this, "process Refresh");
// REFRESH proactive command is rerouted by the baseband and handled by
// the telephony layer. IDLE TEXT should be removed for a REFRESH command
// with "initialization" or "reset"
// the telephony layer. IDLE TEXT should be removed for a REFRESH command
// with "initialization" or "reset"
switch (cmdDet.commandQualifier) {
case REFRESH_NAA_INIT_AND_FULL_FILE_CHANGE:
case REFRESH_NAA_INIT_AND_FILE_CHANGE:
@@ -497,11 +494,11 @@ class CommandParamsFactory extends Handler {
/**
* Processes SELECT_ITEM proactive command from the SIM card.
*
*
* @param cmdDet Command Details container object.
* @param ctlvs List of ComprehensionTlv objects following Command Details
* object and Device Identities object within the proactive command
* @return true if the command is processing is pending and additional
* @return true if the command is processing is pending and additional
* asynchronous processing is required.
* @throws ResultException
*/
@@ -595,7 +592,7 @@ class CommandParamsFactory extends Handler {
/**
* Processes EVENT_NOTIFY message from baseband.
*
*
* @param cmdDet Command Details container object.
* @param ctlvs List of ComprehensionTlv objects following Command Details
* object and Device Identities object within the proactive command
@@ -805,7 +802,7 @@ class CommandParamsFactory extends Handler {
/**
* Processes SETUP_CALL proactive command from the SIM card.
*
*
* @param cmdDet Command Details object retrieved from the proactive command
* object
* @param ctlvs List of ComprehensionTlv objects following Command Details
@@ -866,4 +863,4 @@ class CommandParamsFactory extends Handler {
}
return false;
}
}
}

View File

@@ -30,6 +30,10 @@ import android.os.Message;
*/
class RilMessageDecoder extends HandlerStateMachine {
// constants
private static final int START = 1;
private static final int CMD_PARAMS_READY = 2;
// members
private static RilMessageDecoder sInstance = null;
private CommandParamsFactory mCmdParamsFactory = null;
@@ -40,27 +44,61 @@ class RilMessageDecoder extends HandlerStateMachine {
private StateStart mStateStart = new StateStart();
private StateCmdParamsReady mStateCmdParamsReady = new StateCmdParamsReady();
// constants
static final int START = 1;
static final int CMD_PARAMS_READY = 2;
static synchronized RilMessageDecoder getInstance(Handler caller, SIMFileHandler fh) {
/**
* Get the singleton instance, constructing if necessary.
*
* @param caller
* @param fh
* @return RilMesssageDecoder
*/
public static synchronized RilMessageDecoder getInstance(Handler caller, SIMFileHandler fh) {
if (sInstance == null) {
sInstance = new RilMessageDecoder(caller, fh);
}
return sInstance;
}
/**
* Start decoding the message parameters,
* when complete MSG_ID_RIL_MSG_DECODED will be returned to caller.
*
* @param rilMsg
*/
public void sendStartDecodingMessageParams(RilMessage rilMsg) {
Message msg = obtainMessage(START);
msg.obj = rilMsg;
sendMessage(msg);
}
/**
* The command parameters have been decoded.
*
* @param resCode
* @param cmdParams
*/
public void sendMessageParamsDecoded(ResultCode resCode, CommandParams cmdParams) {
Message msg = obtainMessage(RilMessageDecoder.CMD_PARAMS_READY);
msg.arg1 = resCode.value();
msg.obj = cmdParams;
sendMessage(msg);
}
private void sendCmdForExecution(RilMessage rilMsg) {
Message msg = mCaller.obtainMessage(StkService.MSG_ID_RIL_MSG_DECODED,
new RilMessage(rilMsg));
msg.sendToTarget();
}
private RilMessageDecoder(Handler caller, SIMFileHandler fh) {
super("RilMessageDecoder");
setDbg(false);
setInitialState(mStateStart);
mCaller = caller;
mCmdParamsFactory = CommandParamsFactory.getInstance(this.getHandler(), fh);
mCmdParamsFactory = CommandParamsFactory.getInstance(this, fh);
}
class StateStart extends HandlerState {
private class StateStart extends HandlerState {
@Override public void processMessage(Message msg) {
if (msg.what == START) {
if (decodeMessageParams((RilMessage)msg.obj)) {
@@ -73,7 +111,7 @@ class RilMessageDecoder extends HandlerStateMachine {
}
}
class StateCmdParamsReady extends HandlerState {
private class StateCmdParamsReady extends HandlerState {
@Override public void processMessage(Message msg) {
if (msg.what == CMD_PARAMS_READY) {
mCurrentRilMessage.mResCode = ResultCode.fromInt(msg.arg1);
@@ -88,26 +126,20 @@ class RilMessageDecoder extends HandlerStateMachine {
}
}
public void startDecodingMessageParams(RilMessage rilMsg) {
Message msg = obtainMessage(START);
msg.obj = rilMsg;
sendMessage(msg);
}
private boolean decodeMessageParams(RilMessage rilMsg) {
boolean decodingStarted;
mCurrentRilMessage = rilMsg;
switch(rilMsg.mId) {
case Service.MSG_ID_SESSION_END:
case Service.MSG_ID_CALL_SETUP:
case StkService.MSG_ID_SESSION_END:
case StkService.MSG_ID_CALL_SETUP:
mCurrentRilMessage.mResCode = ResultCode.OK;
sendCmdForExecution(mCurrentRilMessage);
decodingStarted = false;
break;
case Service.MSG_ID_PROACTIVE_COMMAND:
case Service.MSG_ID_EVENT_NOTIFY:
case Service.MSG_ID_REFRESH:
case StkService.MSG_ID_PROACTIVE_COMMAND:
case StkService.MSG_ID_EVENT_NOTIFY:
case StkService.MSG_ID_REFRESH:
byte[] rawData = null;
try {
rawData = SimUtils.hexStringToBytes((String) rilMsg.mData);
@@ -134,10 +166,4 @@ class RilMessageDecoder extends HandlerStateMachine {
}
return decodingStarted;
}
private void sendCmdForExecution(RilMessage rilMsg) {
Message msg = mCaller.obtainMessage(Service.MSG_ID_RIL_MSG_DECODED,
new RilMessage(rilMsg));
msg.sendToTarget();
}
}

View File

@@ -38,32 +38,32 @@ import java.util.concurrent.LinkedBlockingQueue;
/**
* Enumeration for representing the tag value of COMPREHENSION-TLV objects. If
* you want to get the actual value, call {@link #value() value} method.
*
*
* {@hide}
*/
enum ComprehensionTlvTag {
COMMAND_DETAILS(0x01),
DEVICE_IDENTITIES(0x02),
RESULT(0x03),
DURATION(0x04),
ALPHA_ID(0x05),
USSD_STRING(0x0a),
TEXT_STRING(0x0d),
TONE(0x0e),
ITEM(0x0f),
ITEM_ID(0x10),
RESPONSE_LENGTH(0x11),
FILE_LIST(0x12),
HELP_REQUEST(0x15),
DEFAULT_TEXT(0x17),
EVENT_LIST(0x19),
ICON_ID(0x1e),
ITEM_ICON_ID_LIST(0x1f),
IMMEDIATE_RESPONSE(0x2b),
LANGUAGE(0x2d),
URL(0x31),
BROWSER_TERMINATION_CAUSE(0x34),
TEXT_ATTRIBUTE(0x50);
COMMAND_DETAILS(0x01),
DEVICE_IDENTITIES(0x02),
RESULT(0x03),
DURATION(0x04),
ALPHA_ID(0x05),
USSD_STRING(0x0a),
TEXT_STRING(0x0d),
TONE(0x0e),
ITEM(0x0f),
ITEM_ID(0x10),
RESPONSE_LENGTH(0x11),
FILE_LIST(0x12),
HELP_REQUEST(0x15),
DEFAULT_TEXT(0x17),
EVENT_LIST(0x19),
ICON_ID(0x1e),
ITEM_ICON_ID_LIST(0x1f),
IMMEDIATE_RESPONSE(0x2b),
LANGUAGE(0x2d),
URL(0x31),
BROWSER_TERMINATION_CAUSE(0x34),
TEXT_ATTRIBUTE(0x50);
private int mValue;
@@ -73,7 +73,7 @@ enum ComprehensionTlvTag {
/**
* Returns the actual value of this COMPREHENSION-TLV object.
*
*
* @return Actual tag value of this object
*/
public int value() {
@@ -110,13 +110,13 @@ class RilMessage {
/**
* Class that implements SIM Toolkit Telephony Service. Interacts with the RIL
* and application.
*
*
* {@hide}
*/
public class Service extends Handler implements AppInterface {
public class StkService extends Handler implements AppInterface {
// Service members.
private static Service sInstance;
private static StkService sInstance;
private CommandsInterface mCmdIf;
private SIMRecords mSimRecords;
private Context mContext;
@@ -146,7 +146,7 @@ public class Service extends Handler implements AppInterface {
private static final int DEV_ID_NETWORK = 0x83;
/* Intentionally private for singleton */
private Service(CommandsInterface ci, SIMRecords sr, Context context,
private StkService(CommandsInterface ci, SIMRecords sr, Context context,
SIMFileHandler fh, GsmSimCard sc) {
if (ci == null || sr == null || context == null || fh == null
|| sc == null) {
@@ -221,7 +221,7 @@ public class Service extends Handler implements AppInterface {
/**
* Handles RIL_UNSOL_STK_PROACTIVE_COMMAND unsolicited command from RIL.
* Sends valid proactive command data to the application using intents.
*
*
*/
private void handleProactiveCommand(CommandParams cmdParams) {
StkLog.d(this, cmdParams.getCommandType().name());
@@ -230,7 +230,7 @@ public class Service extends Handler implements AppInterface {
switch (cmdParams.getCommandType()) {
case SET_UP_MENU:
if (removeMenu(cmdMsg.getMenu())) {
mMenuCmd = null;
mMenuCmd = null;
} else {
mMenuCmd = cmdMsg;
}
@@ -238,7 +238,7 @@ public class Service extends Handler implements AppInterface {
null);
break;
case DISPLAY_TEXT:
// when application is not required to respond, send an immediate
// when application is not required to respond, send an immediate
// response.
if (!cmdMsg.geTextMessage().responseNeeded) {
sendTerminalResponse(cmdParams.cmdDet, ResultCode.OK, false,
@@ -246,7 +246,7 @@ public class Service extends Handler implements AppInterface {
}
break;
case REFRESH:
// ME side only handles refresh commands which meant to remove IDLE
// ME side only handles refresh commands which meant to remove IDLE
// MODE TEXT.
cmdParams.cmdDet.typeOfCommand = CommandType.SET_UP_IDLE_MODE_TEXT
.value();
@@ -279,7 +279,7 @@ public class Service extends Handler implements AppInterface {
/**
* Handles RIL_UNSOL_STK_SESSION_END unsolicited command from RIL.
*
*
*/
private void handleSessionEnd() {
StkLog.d(this, "SESSION END");
@@ -430,15 +430,15 @@ public class Service extends Handler implements AppInterface {
/**
* Used for instantiating the Service from the GsmPhone constructor.
*
*
* @param ci CommandsInterface object
* @param sr SIMRecords object
* @param context phone app context
* @param fh SIM file handler
* @param sc GSM SIM card
* @param sc GSM SIM card
* @return The only Service object in the system
*/
public static Service getInstance(CommandsInterface ci, SIMRecords sr,
public static StkService getInstance(CommandsInterface ci, SIMRecords sr,
Context context, SIMFileHandler fh, GsmSimCard sc) {
if (sInstance == null) {
if (ci == null || sr == null || context == null || fh == null
@@ -447,14 +447,14 @@ public class Service extends Handler implements AppInterface {
}
HandlerThread thread = new HandlerThread("Stk Telephony service");
thread.start();
sInstance = new Service(ci, sr, context, fh, sc);
sInstance = new StkService(ci, sr, context, fh, sc);
}
return sInstance;
}
/**
* Used by application to get an AppInterface object.
*
*
* @return The only Service object in the system
*/
public static AppInterface getInstance() {
@@ -481,10 +481,10 @@ public class Service extends Handler implements AppInterface {
}
}
}
mMsgDecoder.startDecodingMessageParams(new RilMessage(msg.what, data));
mMsgDecoder.sendStartDecodingMessageParams(new RilMessage(msg.what, data));
break;
case MSG_ID_CALL_SETUP:
mMsgDecoder.startDecodingMessageParams(new RilMessage(msg.what, null));
mMsgDecoder.sendStartDecodingMessageParams(new RilMessage(msg.what, null));
break;
case MSG_ID_SIM_LOADED:
break;