diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java index 624f6aa1b..157fd24cc 100644 --- a/app/src/main/java/org/linphone/LinphoneManager.java +++ b/app/src/main/java/org/linphone/LinphoneManager.java @@ -332,6 +332,8 @@ public class LinphoneManager implements SensorEventListener { } public static synchronized Core getCore() { + if (!LinphoneContext.isReady()) return null; + if (getInstance().mExited) { // Can occur if the UI thread play a posted event but in the meantime the // LinphoneManager was destroyed diff --git a/app/src/main/java/org/linphone/activities/MainActivity.java b/app/src/main/java/org/linphone/activities/MainActivity.java index ca509dd24..759cfc2de 100644 --- a/app/src/main/java/org/linphone/activities/MainActivity.java +++ b/app/src/main/java/org/linphone/activities/MainActivity.java @@ -419,7 +419,11 @@ public abstract class MainActivity extends LinphoneGenericActivity Intent intent = new Intent(); intent.setAction(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); - startActivity(intent); + try { + startActivity(intent); + } catch (IllegalStateException ise) { + Log.e("[Main Activity] Can't start home activity: ", ise); + } } private void quit() { diff --git a/app/src/main/java/org/linphone/call/CallStatsFragment.java b/app/src/main/java/org/linphone/call/CallStatsFragment.java index 504a99e87..25c076762 100644 --- a/app/src/main/java/org/linphone/call/CallStatsFragment.java +++ b/app/src/main/java/org/linphone/call/CallStatsFragment.java @@ -89,7 +89,11 @@ public class CallStatsFragment extends Fragment { @Override public void onPause() { super.onPause(); - LinphoneManager.getCore().removeListener(mListener); + + Core core = LinphoneManager.getCore(); + if (core != null) { + core.removeListener(mListener); + } } public void setDrawer(DrawerLayout drawer, RelativeLayout content) {