summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-01-22 00:13:42 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-01-22 00:13:42 -0800
commitf1e484acb594a726fb57ad0ae4cfe902c7f35858 (patch)
tree99d2b34512f0dc2ae67666e756c1cfcd331e5fe3 /telephony
parent22f7dfd23490a3de2f21ff96949ba47003aac8f8 (diff)
downloadframeworks_base-f1e484acb594a726fb57ad0ae4cfe902c7f35858.zip
frameworks_base-f1e484acb594a726fb57ad0ae4cfe902c7f35858.tar.gz
frameworks_base-f1e484acb594a726fb57ad0ae4cfe902c7f35858.tar.bz2
auto import from //branches/cupcake/...@127436
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/stk/StkService.java19
1 files changed, 15 insertions, 4 deletions
diff --git a/telephony/java/com/android/internal/telephony/gsm/stk/StkService.java b/telephony/java/com/android/internal/telephony/gsm/stk/StkService.java
index a90e7ea..c0c4ceb 100644
--- a/telephony/java/com/android/internal/telephony/gsm/stk/StkService.java
+++ b/telephony/java/com/android/internal/telephony/gsm/stk/StkService.java
@@ -528,7 +528,16 @@ public class StkService extends Handler implements AppInterface {
}
private void handleCmdResponse(StkResponseMessage resMsg) {
- // make sure the response details match the last valid command.
+ // Make sure the response details match the last valid command. An invalid
+ // response is a one that doesn't have a corresponding proactive command
+ // and sending it can "confuse" the baseband/ril.
+ // One reason for out of order responses can be UI glitches. For example,
+ // if the application launch an activity, and that activity is stored
+ // by the framework inside the history stack. That activity will be
+ // available for relaunch using the latest application dialog
+ // (long press on the home button). Relaunching that activity can send
+ // the same command's result again to the StkService and can cause it to
+ // get out of sync with the SIM.
if (!validateResponse(resMsg)) {
return;
}
@@ -578,9 +587,11 @@ public class StkService extends Handler implements AppInterface {
break;
case SET_UP_CALL:
mCmdIf.handleCallSetupRequestFromSim(resMsg.usersConfirm, null);
- if (!resMsg.usersConfirm) {
- resMsg.resCode = ResultCode.USER_NOT_ACCEPT;
- }
+ // No need to send terminal response for SET UP CALL. The user's
+ // confirmation result is send back using a dedicated ril message
+ // invoked by the CommandInterface call above.
+ mCurrntCmd = null;
+ return;
}
break;
case NO_RESPONSE_FROM_USER: