diff --git a/src/org/linphone/AbstractCalleesActivity.java b/src/org/linphone/AbstractCalleesActivity.java index 8333d7f7e..a9d1b4494 100644 --- a/src/org/linphone/AbstractCalleesActivity.java +++ b/src/org/linphone/AbstractCalleesActivity.java @@ -69,6 +69,9 @@ public abstract class AbstractCalleesActivity extends ListActivity implements Li * Called by the child classes AFTER their own onCreate. */ protected void onCreate(Bundle savedInstanceState) { + if (finishIfAutoRestartAfterACrash(savedInstanceState)) { + return; + } setListAdapter(mListAdapter = createCalleeListAdapter()); View muteMic = findViewById(R.id.toggleMuteMic); @@ -83,9 +86,10 @@ public abstract class AbstractCalleesActivity extends ListActivity implements Li protected abstract CalleeListAdapter createCalleeListAdapter(); - protected final boolean finishIfAutoRestartAfterACrash() { + protected final boolean finishIfAutoRestartAfterACrash(Bundle savedInstanceState) { if (!LinphoneManager.isInstanciated() || LinphoneManager.getLc().getCallsNb() == 0) { Log.e("No service running: avoid crash by finishing ", this.getClass().getName()); + super.onCreate(savedInstanceState); finish(); return true; } diff --git a/src/org/linphone/ConferenceDetailsActivity.java b/src/org/linphone/ConferenceDetailsActivity.java index c3ee7b7db..72d4b5722 100644 --- a/src/org/linphone/ConferenceDetailsActivity.java +++ b/src/org/linphone/ConferenceDetailsActivity.java @@ -44,7 +44,9 @@ public class ConferenceDetailsActivity extends AbstractCalleesActivity { @Override protected void onCreate(Bundle savedInstanceState) { - if (finishIfAutoRestartAfterACrash()) return; + if (finishIfAutoRestartAfterACrash(savedInstanceState)) { + return; + } setContentView(R.layout.conference_details_layout); super.onCreate(savedInstanceState); } diff --git a/src/org/linphone/IncallActivity.java b/src/org/linphone/IncallActivity.java index 76498067c..dca0fba67 100644 --- a/src/org/linphone/IncallActivity.java +++ b/src/org/linphone/IncallActivity.java @@ -89,7 +89,9 @@ public class IncallActivity extends AbstractCalleesActivity implements @Override protected void onCreate(Bundle savedInstanceState) { - if (finishIfAutoRestartAfterACrash()) return; + if (finishIfAutoRestartAfterACrash(savedInstanceState)) { + return; + } setContentView(R.layout.incall_layout); mAllowTransfers = getResources().getBoolean(R.bool.allow_transfers); diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 024531e2b..fb72210d1 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -95,13 +95,15 @@ public class LinphoneActivity extends TabActivity implements } public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (!LinphoneManager.isInstanciated()) { Log.e("No service running: avoid crash by finishing ", this.getClass().getName()); + // super.onCreate called earlier finish(); return; } instance = this; - super.onCreate(savedInstanceState); setContentView(R.layout.main); LinphonePreferenceManager.getInstance(this); diff --git a/src/org/linphone/VideoCallActivity.java b/src/org/linphone/VideoCallActivity.java index 851b074f3..f1da92140 100755 --- a/src/org/linphone/VideoCallActivity.java +++ b/src/org/linphone/VideoCallActivity.java @@ -60,13 +60,14 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh private Runnable mCallQualityUpdater; public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); if (!LinphoneManager.isInstanciated() || LinphoneManager.getLc().getCallsNb() == 0) { Log.e("No service running: avoid crash by finishing ", this.getClass().getName()); + // super.onCreate called earlier finish(); return; } - Log.d("onCreate VideoCallActivity"); - super.onCreate(savedInstanceState); + setContentView(R.layout.videocall); SurfaceView videoView = (SurfaceView) findViewById(R.id.video_surface);