Prevent incall activity from launching twice

This commit is contained in:
Sylvain Berfini 2012-05-16 13:57:26 +02:00
parent e124d9603d
commit 908849e1c9
2 changed files with 13 additions and 5 deletions

View file

@ -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;
@ -116,6 +116,8 @@ public class IncallActivity extends AbstractCalleesActivity implements
if (finishIfAutoRestartAfterACrash(savedInstanceState)) {
return;
}
setActive(true);
if (!Version.isXLargeScreen(this))
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
@ -148,6 +150,12 @@ public class IncallActivity extends AbstractCalleesActivity implements
super.onCreate(savedInstanceState);
}
@Override
protected void onPause() {
IncallActivity.active = false;
super.onPause();
}
@Override
protected boolean shouldFinishCalleeActivity() {
return lc().getCallsNb() == 0;

View file

@ -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() {