From 3cebf5910478ec1013adbe1daaa26509aba2618f Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Thu, 24 Mar 2011 11:28:45 +0100 Subject: [PATCH] Fix incoming call dialog destruction on remote hang. --- src/org/linphone/DialerActivity.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/org/linphone/DialerActivity.java b/src/org/linphone/DialerActivity.java index b9ef47dc2..a57bcdc8f 100644 --- a/src/org/linphone/DialerActivity.java +++ b/src/org/linphone/DialerActivity.java @@ -90,6 +90,7 @@ public class DialerActivity extends Activity implements LinphoneGuiListener, New private static final String CURRENT_ADDRESS = "org.linphone.current-address"; private static final String CURRENT_DISPLAYNAME = "org.linphone.current-displayname"; + private static final int INCOMING_CALL_DIALOG_ID = 1; /** * @return null if not ready yet @@ -262,6 +263,11 @@ public class DialerActivity extends Activity implements LinphoneGuiListener, New private void exitCallMode() { + // Remove dialog if existing + try { + dismissDialog(INCOMING_CALL_DIALOG_ID); + } catch (Throwable e) {/* Exception if never created */} + if (useIncallActivity) { LinphoneActivity.instance().closeIncallActivity(); } else { @@ -294,6 +300,12 @@ public class DialerActivity extends Activity implements LinphoneGuiListener, New private void callPending(final LinphoneCall call) { + showDialog(INCOMING_CALL_DIALOG_ID); + } + + + @Override + protected Dialog onCreateDialog(int id, Bundle b) { String from = LinphoneManager.getInstance().extractIncomingRemoteName(); View incomingCallView = getLayoutInflater().inflate(R.layout.incoming_call, null); @@ -314,17 +326,15 @@ public class DialerActivity extends Activity implements LinphoneGuiListener, New boolean videoMuted = !(prefVideoEnable && prefAutoShareMyCamera); AndroidCameraRecordManager.getInstance().setMuted(videoMuted); - call.enableCamera(prefAutoShareMyCamera); + LinphoneManager.getLc().getCurrentCall().enableCamera(prefAutoShareMyCamera); } }); ((HangCallButton) incomingCallView.findViewById(R.id.Decline)).setExternalClickListener(new OnClickListener() { public void onClick(View v) {dialog.dismiss();} }); - dialog.show(); + return dialog; } - -