Loading src/java/com/android/internal/telephony/uicc/UiccController.java +48 −33 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ public class UiccController extends Handler { private static final int EVENT_SIM_REFRESH = 8; private static final int EVENT_EID_READY = 9; private static final int EVENT_MULTI_SIM_CONFIG_CHANGED = 10; // NOTE: any new EVENT_* values must be added to eventToString. // this needs to be here, because on bootup we dont know which index maps to which UiccSlot @UnsupportedAppUsage Loading Loading @@ -207,14 +208,11 @@ public class UiccController extends Handler { if (DBG) log("Creating UiccController"); mContext = c; mCis = PhoneFactory.getCommandsInterfaces(); if (DBG) { String logStr = "config_num_physical_slots = " + c.getResources().getInteger( com.android.internal.R.integer.config_num_physical_slots); log(logStr); sLocalLog.log(logStr); } int numPhysicalSlots = c.getResources().getInteger( com.android.internal.R.integer.config_num_physical_slots); if (DBG) { logWithLocalLog("config_num_physical_slots = " + numPhysicalSlots); } // Minimum number of physical slot count should be equals to or greater than phone count, // if it is less than phone count use phone count as physical slot count. if (numPhysicalSlots < mCis.length) { Loading Loading @@ -362,6 +360,7 @@ public class UiccController extends Handler { /** Map logicalSlot to physicalSlot, and activate the physicalSlot if it is inactive. */ public void switchSlots(int[] physicalSlots, Message response) { logWithLocalLog("switchSlots: " + Arrays.toString(physicalSlots)); mRadioConfig.setSimSlotsMapping(physicalSlots, response); } Loading Loading @@ -467,14 +466,15 @@ public class UiccController extends Handler { public void handleMessage (Message msg) { synchronized (mLock) { Integer phoneId = getCiIndex(msg); String eventName = eventToString(msg.what); if (phoneId < 0 || phoneId >= mCis.length) { Rlog.e(LOG_TAG, "Invalid phoneId : " + phoneId + " received with event " + msg.what); + eventName); return; } sLocalLog.log("handleMessage: Received " + msg.what + " for phoneId " + phoneId); logWithLocalLog("handleMessage: Received " + eventName + " for phoneId " + phoneId); AsyncResult ar = (AsyncResult)msg.obj; switch (msg.what) { Loading Loading @@ -541,14 +541,18 @@ public class UiccController extends Handler { private void onMultiSimConfigChanged() { int prevActiveModemCount = mCis.length; mCis = PhoneFactory.getCommandsInterfaces(); int newActiveModemCount = mCis.length; logWithLocalLog("onMultiSimConfigChanged: prevActiveModemCount " + prevActiveModemCount + ", newActiveModemCount " + newActiveModemCount); // Resize array. mPhoneIdToSlotId = copyOf(mPhoneIdToSlotId, mCis.length); mPhoneIdToSlotId = copyOf(mPhoneIdToSlotId, newActiveModemCount); // Register for new active modem for ss -> ds switch. // For ds -> ss switch, there's no need to unregister as the mCis should unregister // everything itself. for (int i = prevActiveModemCount; i < mCis.length; i++) { for (int i = prevActiveModemCount; i < newActiveModemCount; i++) { mPhoneIdToSlotId[i] = INVALID_SLOT_ID; mCis[i].registerForIccStatusChanged(this, EVENT_ICC_STATUS_CHANGED, i); Loading Loading @@ -590,6 +594,22 @@ public class UiccController extends Handler { return index; } private static String eventToString(int event) { switch (event) { case EVENT_ICC_STATUS_CHANGED: return "ICC_STATUS_CHANGED"; case EVENT_SLOT_STATUS_CHANGED: return "SLOT_STATUS_CHANGED"; case EVENT_GET_ICC_STATUS_DONE: return "GET_ICC_STATUS_DONE"; case EVENT_GET_SLOT_STATUS_DONE: return "GET_SLOT_STATUS_DONE"; case EVENT_RADIO_ON: return "RADIO_ON"; case EVENT_RADIO_AVAILABLE: return "RADIO_AVAILABLE"; case EVENT_RADIO_UNAVAILABLE: return "RADIO_UNAVAILABLE"; case EVENT_SIM_REFRESH: return "SIM_REFRESH"; case EVENT_EID_READY: return "EID_READY"; case EVENT_MULTI_SIM_CONFIG_CHANGED: return "MULTI_SIM_CONFIG_CHANGED"; default: return "UNKNOWN(" + event + ")"; } } // Easy to use API @UnsupportedAppUsage public UiccCardApplication getUiccCardApplication(int phoneId, int family) { Loading Loading @@ -654,7 +674,7 @@ public class UiccController extends Handler { IccCardStatus status = (IccCardStatus)ar.result; sLocalLog.log("onGetIccCardStatusDone: phoneId " + index + " IccCardStatus: " + status); logWithLocalLog("onGetIccCardStatusDone: phoneId " + index + " IccCardStatus: " + status); int slotId = status.physicalSlotIndex; if (VDBG) log("onGetIccCardStatusDone: phoneId " + index + " physicalSlotIndex " + slotId); Loading Loading @@ -714,10 +734,8 @@ public class UiccController extends Handler { if (mDefaultEuiccCardId == UNINITIALIZED_CARD_ID || mDefaultEuiccCardId == TEMPORARILY_UNSUPPORTED_CARD_ID) { mDefaultEuiccCardId = convertToPublicCardId(cardString); String logStr = "IccCardStatus eid=" + cardString + " slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId; sLocalLog.log(logStr); log(logStr); logWithLocalLog("IccCardStatus eid=" + cardString + " slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId); } } } Loading Loading @@ -878,10 +896,8 @@ public class UiccController extends Handler { sLocalLog.log(logStr); } else { // REQUEST_NOT_SUPPORTED logStr = "onGetSlotStatusDone: request not supported; marking " + "mIsSlotStatusSupported to false"; log(logStr); sLocalLog.log(logStr); logWithLocalLog("onGetSlotStatusDone: request not supported; marking " + "mIsSlotStatusSupported to false"); mIsSlotStatusSupported = false; } return; Loading @@ -893,6 +909,7 @@ public class UiccController extends Handler { log("onGetSlotStatusDone: No change in slot status"); return; } logWithLocalLog("onGetSlotStatusDone: " + status); sLastSlotStatus = status; Loading Loading @@ -961,10 +978,8 @@ public class UiccController extends Handler { if (!mUiccSlots[i].isRemovable() && !isDefaultEuiccCardIdSet) { isDefaultEuiccCardIdSet = true; mDefaultEuiccCardId = convertToPublicCardId(eid); String logStr = "Using eid=" + eid + " in slot=" + i + " to set mDefaultEuiccCardId=" + mDefaultEuiccCardId; sLocalLog.log(logStr); log(logStr); logWithLocalLog("Using eid=" + eid + " in slot=" + i + " to set mDefaultEuiccCardId=" + mDefaultEuiccCardId); } } } Loading Loading @@ -1059,8 +1074,7 @@ public class UiccController extends Handler { } IccRefreshResponse resp = (IccRefreshResponse) ar.result; log("onSimRefresh: " + resp); sLocalLog.log("onSimRefresh: " + resp); logWithLocalLog("onSimRefresh: index " + index + ", " + resp); if (resp == null) { Rlog.e(LOG_TAG, "onSimRefresh: received without input"); Loading Loading @@ -1133,18 +1147,14 @@ public class UiccController extends Handler { || mDefaultEuiccCardId == TEMPORARILY_UNSUPPORTED_CARD_ID) { if (!mUiccSlots[slotId].isRemovable()) { mDefaultEuiccCardId = convertToPublicCardId(eid); String logStr = "onEidReady: eid=" + eid + " slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId; sLocalLog.log(logStr); log(logStr); logWithLocalLog("onEidReady: eid=" + eid + " slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId); } else if (!mHasActiveBuiltInEuicc) { // we only set a removable eUICC to the default if there are no active non-removable // eUICCs mDefaultEuiccCardId = convertToPublicCardId(eid); String logStr = "onEidReady: eid=" + eid + " from removable eUICC in slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId; sLocalLog.log(logStr); log(logStr); logWithLocalLog("onEidReady: eid=" + eid + " from removable eUICC in slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId); } } card.unregisterForEidReady(this); Loading Loading @@ -1192,6 +1202,11 @@ public class UiccController extends Handler { Rlog.d(LOG_TAG, string); } private void logWithLocalLog(String string) { Rlog.d(LOG_TAG, string); sLocalLog.log(string); } public void addCardLog(String data) { sLocalLog.log(data); } Loading src/java/com/android/internal/telephony/uicc/UiccProfile.java +32 −9 Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ public class UiccProfile extends IccCard { private static final int EVENT_SIM_IO_DONE = 12; private static final int EVENT_CARRIER_PRIVILEGES_LOADED = 13; private static final int EVENT_CARRIER_CONFIG_CHANGED = 14; // NOTE: any new EVENT_* values must be added to eventToString. private TelephonyManager mTelephonyManager; Loading Loading @@ -180,6 +181,7 @@ public class UiccProfile extends IccCard { public final Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { String eventName = eventToString(msg.what); // We still need to handle the following response messages even the UiccProfile has been // disposed because whoever sent the request may be still waiting for the response. if (mDisposed && msg.what != EVENT_OPEN_LOGICAL_CHANNEL_DONE Loading @@ -187,11 +189,11 @@ public class UiccProfile extends IccCard { && msg.what != EVENT_TRANSMIT_APDU_LOGICAL_CHANNEL_DONE && msg.what != EVENT_TRANSMIT_APDU_BASIC_CHANNEL_DONE && msg.what != EVENT_SIM_IO_DONE) { loge("handleMessage: Received " + msg.what loge("handleMessage: Received " + eventName + " after dispose(); ignoring the message"); return; } loglocal("handleMessage: Received " + msg.what + " for phoneId " + mPhoneId); logWithLocalLog("handleMessage: Received " + eventName + " for phoneId " + mPhoneId); switch (msg.what) { case EVENT_NETWORK_LOCKED: mNetworkLockedRegistrants.notifyRegistrants(); Loading @@ -201,7 +203,7 @@ public class UiccProfile extends IccCard { case EVENT_APP_READY: case EVENT_RECORDS_LOADED: case EVENT_EID_READY: if (VDBG) log("handleMessage: Received " + msg.what); if (VDBG) log("handleMessage: Received " + eventName); updateExternalState(); break; Loading Loading @@ -234,8 +236,8 @@ public class UiccProfile extends IccCard { case EVENT_SIM_IO_DONE: AsyncResult ar = (AsyncResult) msg.obj; if (ar.exception != null) { loglocal("handleMessage: Exception " + ar.exception); log("handleMessage: Error in SIM access with exception" + ar.exception); logWithLocalLog("handleMessage: Error in SIM access with exception " + ar.exception); } AsyncResult.forMessage((Message) ar.userObj, ar.result, ar.exception); ((Message) ar.userObj).sendToTarget(); Loading Loading @@ -1469,8 +1471,8 @@ public class UiccProfile extends IccCard { * Exposes {@link CommandsInterface#iccOpenLogicalChannel} */ public void iccOpenLogicalChannel(String aid, int p2, Message response) { loglocal("iccOpenLogicalChannel: " + aid + " , " + p2 + " by pid:" + Binder.getCallingPid() + " uid:" + Binder.getCallingUid()); logWithLocalLog("iccOpenLogicalChannel: " + aid + " , " + p2 + " by pid:" + Binder.getCallingPid() + " uid:" + Binder.getCallingUid()); mCi.iccOpenLogicalChannel(aid, p2, mHandler.obtainMessage(EVENT_OPEN_LOGICAL_CHANNEL_DONE, response)); } Loading @@ -1479,7 +1481,7 @@ public class UiccProfile extends IccCard { * Exposes {@link CommandsInterface#iccCloseLogicalChannel} */ public void iccCloseLogicalChannel(int channel, Message response) { loglocal("iccCloseLogicalChannel: " + channel); logWithLocalLog("iccCloseLogicalChannel: " + channel); mCi.iccCloseLogicalChannel(channel, mHandler.obtainMessage(EVENT_CLOSE_LOGICAL_CHANNEL_DONE, response)); } Loading Loading @@ -1694,6 +1696,26 @@ public class UiccProfile extends IccCard { return null; } private static String eventToString(int event) { switch (event) { case EVENT_RADIO_OFF_OR_UNAVAILABLE: return "RADIO_OFF_OR_UNAVAILABLE"; case EVENT_ICC_LOCKED: return "ICC_LOCKED"; case EVENT_APP_READY: return "APP_READY"; case EVENT_RECORDS_LOADED: return "RECORDS_LOADED"; case EVENT_NETWORK_LOCKED: return "NETWORK_LOCKED"; case EVENT_EID_READY: return "EID_READY"; case EVENT_ICC_RECORD_EVENTS: return "ICC_RECORD_EVENTS"; case EVENT_OPEN_LOGICAL_CHANNEL_DONE: return "OPEN_LOGICAL_CHANNEL_DONE"; case EVENT_CLOSE_LOGICAL_CHANNEL_DONE: return "CLOSE_LOGICAL_CHANNEL_DONE"; case EVENT_TRANSMIT_APDU_LOGICAL_CHANNEL_DONE: return "TRANSMIT_APDU_LOGICAL_CHANNEL_DONE"; case EVENT_TRANSMIT_APDU_BASIC_CHANNEL_DONE: return "TRANSMIT_APDU_BASIC_CHANNEL_DONE"; case EVENT_SIM_IO_DONE: return "SIM_IO_DONE"; case EVENT_CARRIER_PRIVILEGES_LOADED: return "CARRIER_PRIVILEGES_LOADED"; case EVENT_CARRIER_CONFIG_CHANGED: return "CARRIER_CONFIG_CHANGED"; default: return "UNKNOWN(" + event + ")"; } } private static void log(String msg) { Rlog.d(LOG_TAG, msg); } Loading @@ -1702,7 +1724,8 @@ public class UiccProfile extends IccCard { Rlog.e(LOG_TAG, msg); } private void loglocal(String msg) { private void logWithLocalLog(String msg) { Rlog.d(LOG_TAG, msg); if (DBG) UiccController.sLocalLog.log("UiccProfile[" + mPhoneId + "]: " + msg); } Loading Loading
src/java/com/android/internal/telephony/uicc/UiccController.java +48 −33 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ public class UiccController extends Handler { private static final int EVENT_SIM_REFRESH = 8; private static final int EVENT_EID_READY = 9; private static final int EVENT_MULTI_SIM_CONFIG_CHANGED = 10; // NOTE: any new EVENT_* values must be added to eventToString. // this needs to be here, because on bootup we dont know which index maps to which UiccSlot @UnsupportedAppUsage Loading Loading @@ -207,14 +208,11 @@ public class UiccController extends Handler { if (DBG) log("Creating UiccController"); mContext = c; mCis = PhoneFactory.getCommandsInterfaces(); if (DBG) { String logStr = "config_num_physical_slots = " + c.getResources().getInteger( com.android.internal.R.integer.config_num_physical_slots); log(logStr); sLocalLog.log(logStr); } int numPhysicalSlots = c.getResources().getInteger( com.android.internal.R.integer.config_num_physical_slots); if (DBG) { logWithLocalLog("config_num_physical_slots = " + numPhysicalSlots); } // Minimum number of physical slot count should be equals to or greater than phone count, // if it is less than phone count use phone count as physical slot count. if (numPhysicalSlots < mCis.length) { Loading Loading @@ -362,6 +360,7 @@ public class UiccController extends Handler { /** Map logicalSlot to physicalSlot, and activate the physicalSlot if it is inactive. */ public void switchSlots(int[] physicalSlots, Message response) { logWithLocalLog("switchSlots: " + Arrays.toString(physicalSlots)); mRadioConfig.setSimSlotsMapping(physicalSlots, response); } Loading Loading @@ -467,14 +466,15 @@ public class UiccController extends Handler { public void handleMessage (Message msg) { synchronized (mLock) { Integer phoneId = getCiIndex(msg); String eventName = eventToString(msg.what); if (phoneId < 0 || phoneId >= mCis.length) { Rlog.e(LOG_TAG, "Invalid phoneId : " + phoneId + " received with event " + msg.what); + eventName); return; } sLocalLog.log("handleMessage: Received " + msg.what + " for phoneId " + phoneId); logWithLocalLog("handleMessage: Received " + eventName + " for phoneId " + phoneId); AsyncResult ar = (AsyncResult)msg.obj; switch (msg.what) { Loading Loading @@ -541,14 +541,18 @@ public class UiccController extends Handler { private void onMultiSimConfigChanged() { int prevActiveModemCount = mCis.length; mCis = PhoneFactory.getCommandsInterfaces(); int newActiveModemCount = mCis.length; logWithLocalLog("onMultiSimConfigChanged: prevActiveModemCount " + prevActiveModemCount + ", newActiveModemCount " + newActiveModemCount); // Resize array. mPhoneIdToSlotId = copyOf(mPhoneIdToSlotId, mCis.length); mPhoneIdToSlotId = copyOf(mPhoneIdToSlotId, newActiveModemCount); // Register for new active modem for ss -> ds switch. // For ds -> ss switch, there's no need to unregister as the mCis should unregister // everything itself. for (int i = prevActiveModemCount; i < mCis.length; i++) { for (int i = prevActiveModemCount; i < newActiveModemCount; i++) { mPhoneIdToSlotId[i] = INVALID_SLOT_ID; mCis[i].registerForIccStatusChanged(this, EVENT_ICC_STATUS_CHANGED, i); Loading Loading @@ -590,6 +594,22 @@ public class UiccController extends Handler { return index; } private static String eventToString(int event) { switch (event) { case EVENT_ICC_STATUS_CHANGED: return "ICC_STATUS_CHANGED"; case EVENT_SLOT_STATUS_CHANGED: return "SLOT_STATUS_CHANGED"; case EVENT_GET_ICC_STATUS_DONE: return "GET_ICC_STATUS_DONE"; case EVENT_GET_SLOT_STATUS_DONE: return "GET_SLOT_STATUS_DONE"; case EVENT_RADIO_ON: return "RADIO_ON"; case EVENT_RADIO_AVAILABLE: return "RADIO_AVAILABLE"; case EVENT_RADIO_UNAVAILABLE: return "RADIO_UNAVAILABLE"; case EVENT_SIM_REFRESH: return "SIM_REFRESH"; case EVENT_EID_READY: return "EID_READY"; case EVENT_MULTI_SIM_CONFIG_CHANGED: return "MULTI_SIM_CONFIG_CHANGED"; default: return "UNKNOWN(" + event + ")"; } } // Easy to use API @UnsupportedAppUsage public UiccCardApplication getUiccCardApplication(int phoneId, int family) { Loading Loading @@ -654,7 +674,7 @@ public class UiccController extends Handler { IccCardStatus status = (IccCardStatus)ar.result; sLocalLog.log("onGetIccCardStatusDone: phoneId " + index + " IccCardStatus: " + status); logWithLocalLog("onGetIccCardStatusDone: phoneId " + index + " IccCardStatus: " + status); int slotId = status.physicalSlotIndex; if (VDBG) log("onGetIccCardStatusDone: phoneId " + index + " physicalSlotIndex " + slotId); Loading Loading @@ -714,10 +734,8 @@ public class UiccController extends Handler { if (mDefaultEuiccCardId == UNINITIALIZED_CARD_ID || mDefaultEuiccCardId == TEMPORARILY_UNSUPPORTED_CARD_ID) { mDefaultEuiccCardId = convertToPublicCardId(cardString); String logStr = "IccCardStatus eid=" + cardString + " slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId; sLocalLog.log(logStr); log(logStr); logWithLocalLog("IccCardStatus eid=" + cardString + " slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId); } } } Loading Loading @@ -878,10 +896,8 @@ public class UiccController extends Handler { sLocalLog.log(logStr); } else { // REQUEST_NOT_SUPPORTED logStr = "onGetSlotStatusDone: request not supported; marking " + "mIsSlotStatusSupported to false"; log(logStr); sLocalLog.log(logStr); logWithLocalLog("onGetSlotStatusDone: request not supported; marking " + "mIsSlotStatusSupported to false"); mIsSlotStatusSupported = false; } return; Loading @@ -893,6 +909,7 @@ public class UiccController extends Handler { log("onGetSlotStatusDone: No change in slot status"); return; } logWithLocalLog("onGetSlotStatusDone: " + status); sLastSlotStatus = status; Loading Loading @@ -961,10 +978,8 @@ public class UiccController extends Handler { if (!mUiccSlots[i].isRemovable() && !isDefaultEuiccCardIdSet) { isDefaultEuiccCardIdSet = true; mDefaultEuiccCardId = convertToPublicCardId(eid); String logStr = "Using eid=" + eid + " in slot=" + i + " to set mDefaultEuiccCardId=" + mDefaultEuiccCardId; sLocalLog.log(logStr); log(logStr); logWithLocalLog("Using eid=" + eid + " in slot=" + i + " to set mDefaultEuiccCardId=" + mDefaultEuiccCardId); } } } Loading Loading @@ -1059,8 +1074,7 @@ public class UiccController extends Handler { } IccRefreshResponse resp = (IccRefreshResponse) ar.result; log("onSimRefresh: " + resp); sLocalLog.log("onSimRefresh: " + resp); logWithLocalLog("onSimRefresh: index " + index + ", " + resp); if (resp == null) { Rlog.e(LOG_TAG, "onSimRefresh: received without input"); Loading Loading @@ -1133,18 +1147,14 @@ public class UiccController extends Handler { || mDefaultEuiccCardId == TEMPORARILY_UNSUPPORTED_CARD_ID) { if (!mUiccSlots[slotId].isRemovable()) { mDefaultEuiccCardId = convertToPublicCardId(eid); String logStr = "onEidReady: eid=" + eid + " slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId; sLocalLog.log(logStr); log(logStr); logWithLocalLog("onEidReady: eid=" + eid + " slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId); } else if (!mHasActiveBuiltInEuicc) { // we only set a removable eUICC to the default if there are no active non-removable // eUICCs mDefaultEuiccCardId = convertToPublicCardId(eid); String logStr = "onEidReady: eid=" + eid + " from removable eUICC in slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId; sLocalLog.log(logStr); log(logStr); logWithLocalLog("onEidReady: eid=" + eid + " from removable eUICC in slot=" + slotId + " mDefaultEuiccCardId=" + mDefaultEuiccCardId); } } card.unregisterForEidReady(this); Loading Loading @@ -1192,6 +1202,11 @@ public class UiccController extends Handler { Rlog.d(LOG_TAG, string); } private void logWithLocalLog(String string) { Rlog.d(LOG_TAG, string); sLocalLog.log(string); } public void addCardLog(String data) { sLocalLog.log(data); } Loading
src/java/com/android/internal/telephony/uicc/UiccProfile.java +32 −9 Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ public class UiccProfile extends IccCard { private static final int EVENT_SIM_IO_DONE = 12; private static final int EVENT_CARRIER_PRIVILEGES_LOADED = 13; private static final int EVENT_CARRIER_CONFIG_CHANGED = 14; // NOTE: any new EVENT_* values must be added to eventToString. private TelephonyManager mTelephonyManager; Loading Loading @@ -180,6 +181,7 @@ public class UiccProfile extends IccCard { public final Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { String eventName = eventToString(msg.what); // We still need to handle the following response messages even the UiccProfile has been // disposed because whoever sent the request may be still waiting for the response. if (mDisposed && msg.what != EVENT_OPEN_LOGICAL_CHANNEL_DONE Loading @@ -187,11 +189,11 @@ public class UiccProfile extends IccCard { && msg.what != EVENT_TRANSMIT_APDU_LOGICAL_CHANNEL_DONE && msg.what != EVENT_TRANSMIT_APDU_BASIC_CHANNEL_DONE && msg.what != EVENT_SIM_IO_DONE) { loge("handleMessage: Received " + msg.what loge("handleMessage: Received " + eventName + " after dispose(); ignoring the message"); return; } loglocal("handleMessage: Received " + msg.what + " for phoneId " + mPhoneId); logWithLocalLog("handleMessage: Received " + eventName + " for phoneId " + mPhoneId); switch (msg.what) { case EVENT_NETWORK_LOCKED: mNetworkLockedRegistrants.notifyRegistrants(); Loading @@ -201,7 +203,7 @@ public class UiccProfile extends IccCard { case EVENT_APP_READY: case EVENT_RECORDS_LOADED: case EVENT_EID_READY: if (VDBG) log("handleMessage: Received " + msg.what); if (VDBG) log("handleMessage: Received " + eventName); updateExternalState(); break; Loading Loading @@ -234,8 +236,8 @@ public class UiccProfile extends IccCard { case EVENT_SIM_IO_DONE: AsyncResult ar = (AsyncResult) msg.obj; if (ar.exception != null) { loglocal("handleMessage: Exception " + ar.exception); log("handleMessage: Error in SIM access with exception" + ar.exception); logWithLocalLog("handleMessage: Error in SIM access with exception " + ar.exception); } AsyncResult.forMessage((Message) ar.userObj, ar.result, ar.exception); ((Message) ar.userObj).sendToTarget(); Loading Loading @@ -1469,8 +1471,8 @@ public class UiccProfile extends IccCard { * Exposes {@link CommandsInterface#iccOpenLogicalChannel} */ public void iccOpenLogicalChannel(String aid, int p2, Message response) { loglocal("iccOpenLogicalChannel: " + aid + " , " + p2 + " by pid:" + Binder.getCallingPid() + " uid:" + Binder.getCallingUid()); logWithLocalLog("iccOpenLogicalChannel: " + aid + " , " + p2 + " by pid:" + Binder.getCallingPid() + " uid:" + Binder.getCallingUid()); mCi.iccOpenLogicalChannel(aid, p2, mHandler.obtainMessage(EVENT_OPEN_LOGICAL_CHANNEL_DONE, response)); } Loading @@ -1479,7 +1481,7 @@ public class UiccProfile extends IccCard { * Exposes {@link CommandsInterface#iccCloseLogicalChannel} */ public void iccCloseLogicalChannel(int channel, Message response) { loglocal("iccCloseLogicalChannel: " + channel); logWithLocalLog("iccCloseLogicalChannel: " + channel); mCi.iccCloseLogicalChannel(channel, mHandler.obtainMessage(EVENT_CLOSE_LOGICAL_CHANNEL_DONE, response)); } Loading Loading @@ -1694,6 +1696,26 @@ public class UiccProfile extends IccCard { return null; } private static String eventToString(int event) { switch (event) { case EVENT_RADIO_OFF_OR_UNAVAILABLE: return "RADIO_OFF_OR_UNAVAILABLE"; case EVENT_ICC_LOCKED: return "ICC_LOCKED"; case EVENT_APP_READY: return "APP_READY"; case EVENT_RECORDS_LOADED: return "RECORDS_LOADED"; case EVENT_NETWORK_LOCKED: return "NETWORK_LOCKED"; case EVENT_EID_READY: return "EID_READY"; case EVENT_ICC_RECORD_EVENTS: return "ICC_RECORD_EVENTS"; case EVENT_OPEN_LOGICAL_CHANNEL_DONE: return "OPEN_LOGICAL_CHANNEL_DONE"; case EVENT_CLOSE_LOGICAL_CHANNEL_DONE: return "CLOSE_LOGICAL_CHANNEL_DONE"; case EVENT_TRANSMIT_APDU_LOGICAL_CHANNEL_DONE: return "TRANSMIT_APDU_LOGICAL_CHANNEL_DONE"; case EVENT_TRANSMIT_APDU_BASIC_CHANNEL_DONE: return "TRANSMIT_APDU_BASIC_CHANNEL_DONE"; case EVENT_SIM_IO_DONE: return "SIM_IO_DONE"; case EVENT_CARRIER_PRIVILEGES_LOADED: return "CARRIER_PRIVILEGES_LOADED"; case EVENT_CARRIER_CONFIG_CHANGED: return "CARRIER_CONFIG_CHANGED"; default: return "UNKNOWN(" + event + ")"; } } private static void log(String msg) { Rlog.d(LOG_TAG, msg); } Loading @@ -1702,7 +1724,8 @@ public class UiccProfile extends IccCard { Rlog.e(LOG_TAG, msg); } private void loglocal(String msg) { private void logWithLocalLog(String msg) { Rlog.d(LOG_TAG, msg); if (DBG) UiccController.sLocalLog.log("UiccProfile[" + mPhoneId + "]: " + msg); } Loading