summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--InCallUI/src/com/android/incallui/InCallActivity.java47
1 files changed, 33 insertions, 14 deletions
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index a97f6a05f..05f0d31af 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -55,6 +55,11 @@ public class InCallActivity extends Activity {
/** Use to pass 'showDialpad' from {@link #onNewIntent} to {@link #onResume} */
private boolean mShowDialpadRequested;
+ /** Use to pass parameters for showing the PostCharDialog to {@link #onResume} */
+ private boolean mShowPostCharWaitDialogOnResume;
+ private int mShowPostCharWaitDialogCallId;
+ private String mShowPostCharWaitDialogChars;
+
@Override
protected void onCreate(Bundle icicle) {
Log.d(this, "onCreate()... this = " + this);
@@ -102,6 +107,10 @@ public class InCallActivity extends Activity {
mCallButtonFragment.displayDialpad(true);
mShowDialpadRequested = false;
}
+
+ if (mShowPostCharWaitDialogOnResume) {
+ showPostCharWaitDialog(mShowPostCharWaitDialogCallId, mShowPostCharWaitDialogChars);
+ }
}
// onPause is guaranteed to be called when the InCallActivity goes
@@ -427,8 +436,18 @@ public class InCallActivity extends Activity {
}
public void showPostCharWaitDialog(int callId, String chars) {
- final PostCharDialogFragment fragment = new PostCharDialogFragment(callId, chars);
- fragment.show(getFragmentManager(), "postCharWait");
+ if (isForegroundActivity()) {
+ final PostCharDialogFragment fragment = new PostCharDialogFragment(callId, chars);
+ fragment.show(getFragmentManager(), "postCharWait");
+
+ mShowPostCharWaitDialogOnResume = false;
+ mShowPostCharWaitDialogCallId = 0;
+ mShowPostCharWaitDialogChars = null;
+ } else {
+ mShowPostCharWaitDialogOnResume = true;
+ mShowPostCharWaitDialogCallId = callId;
+ mShowPostCharWaitDialogChars = chars;
+ }
}
@Override
@@ -468,18 +487,18 @@ public class InCallActivity extends Activity {
dismissPendingDialogs();
mDialog = new AlertDialog.Builder(this)
- .setMessage(msg)
- .setPositiveButton(R.string.ok, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- onDialogDismissed();
- }})
- .setOnCancelListener(new OnCancelListener() {
- @Override
- public void onCancel(DialogInterface dialog) {
- onDialogDismissed();
- }})
- .create();
+ .setMessage(msg)
+ .setPositiveButton(R.string.ok, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ onDialogDismissed();
+ }})
+ .setOnCancelListener(new OnCancelListener() {
+ @Override
+ public void onCancel(DialogInterface dialog) {
+ onDialogDismissed();
+ }})
+ .create();
mDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
mDialog.show();