From 908849e1c9591e640f9974bc243af4a2681656bc Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 16 May 2012 13:57:26 +0200 Subject: [PATCH] Prevent incall activity from launching twice --- src/org/linphone/IncallActivity.java | 14 +++++++++++--- src/org/linphone/LinphoneActivity.java | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/org/linphone/IncallActivity.java b/src/org/linphone/IncallActivity.java index c7084bcf0..5043818c5 100644 --- a/src/org/linphone/IncallActivity.java +++ b/src/org/linphone/IncallActivity.java @@ -85,8 +85,8 @@ public class IncallActivity extends AbstractCalleesActivity implements private static IncallActivity instance; private CountDownTimer timer; public static boolean active; - @Override protected void setActive(boolean a) {active = a;} - @Override protected boolean isActive() {return active;} + @Override protected synchronized void setActive(boolean a) {active = a;} + @Override protected synchronized boolean isActive() {return active;} public static boolean isReady() { return instance!=null; @@ -112,10 +112,12 @@ public class IncallActivity extends AbstractCalleesActivity implements private boolean mAllowTransfers; @Override - protected void onCreate(Bundle savedInstanceState) { + protected void onCreate(Bundle savedInstanceState) { if (finishIfAutoRestartAfterACrash(savedInstanceState)) { return; } + setActive(true); + if (!Version.isXLargeScreen(this)) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); @@ -147,6 +149,12 @@ public class IncallActivity extends AbstractCalleesActivity implements } super.onCreate(savedInstanceState); } + + @Override + protected void onPause() { + IncallActivity.active = false; + super.onPause(); + } @Override protected boolean shouldFinishCalleeActivity() { diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 363b7ff21..397eb8270 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -420,13 +420,13 @@ public class LinphoneActivity extends TabActivity implements ContactPicked if (IncallActivity.instance() != null && IncallActivity.instance().isActive()) { return; } - mHandler.postDelayed(new Runnable() { + mHandler.post(new Runnable() { public void run() { if (IncallActivity.instance() != null && IncallActivity.instance().isActive()) return; Intent intent = new Intent().setClass(LinphoneActivity.this, IncallActivity.class); startActivityForResult(intent, incall_activity); } - }, 0); + }); } public void startIncomingCallActivity() {