diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java index 0f184b6f9..624f6aa1b 100644 --- a/app/src/main/java/org/linphone/LinphoneManager.java +++ b/app/src/main/java/org/linphone/LinphoneManager.java @@ -825,7 +825,7 @@ public class LinphoneManager implements SensorEventListener { public void setCallGsmON(boolean on) { mCallGsmON = on; - if (on) { + if (on && mCore != null) { mCore.pauseAllCalls(); } } diff --git a/app/src/main/java/org/linphone/activities/LinphoneGenericActivity.java b/app/src/main/java/org/linphone/activities/LinphoneGenericActivity.java index 1a218083f..100fe0c41 100644 --- a/app/src/main/java/org/linphone/activities/LinphoneGenericActivity.java +++ b/app/src/main/java/org/linphone/activities/LinphoneGenericActivity.java @@ -84,7 +84,11 @@ public abstract class LinphoneGenericActivity extends ThemeableActivity { } Log.i("[Generic Activity] Starting Service"); - startService(new Intent().setClass(this, LinphoneService.class)); + try { + startService(new Intent().setClass(this, LinphoneService.class)); + } catch (IllegalStateException ise) { + Log.e("[Generic Activity] Couldn't start service, exception: ", ise); + } } } } diff --git a/app/src/main/java/org/linphone/activities/MainActivity.java b/app/src/main/java/org/linphone/activities/MainActivity.java index ca1d15f46..694878b8d 100644 --- a/app/src/main/java/org/linphone/activities/MainActivity.java +++ b/app/src/main/java/org/linphone/activities/MainActivity.java @@ -424,8 +424,8 @@ public abstract class MainActivity extends LinphoneGenericActivity } private void quit() { - goHomeAndClearStack(); stopService(new Intent(Intent.ACTION_MAIN).setClass(this, LinphoneService.class)); + goHomeAndClearStack(); /*ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); am.killBackgroundProcesses(getString(R.string.sync_account_type)); android.os.Process.killProcess(android.os.Process.myPid());*/ diff --git a/app/src/main/java/org/linphone/assistant/AssistantActivity.java b/app/src/main/java/org/linphone/assistant/AssistantActivity.java index 996f356e5..a18883829 100644 --- a/app/src/main/java/org/linphone/assistant/AssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/AssistantActivity.java @@ -154,7 +154,9 @@ public abstract class AssistantActivity extends LinphoneGenericActivity } else { // If this isn't a sip.linphone.org account, disable push notifications and enable // service notification, otherwise incoming calls won't work (most probably) - proxyConfig.setPushNotificationAllowed(false); + if (proxyConfig != null) { + proxyConfig.setPushNotificationAllowed(false); + } Log.w( "[Assistant] Unknown domain used, push probably won't work, enable service mode"); LinphonePreferences.instance().setServiceNotificationVisibility(true); diff --git a/app/src/main/java/org/linphone/call/CallIncomingActivity.java b/app/src/main/java/org/linphone/call/CallIncomingActivity.java index 37ec97182..a21d50187 100644 --- a/app/src/main/java/org/linphone/call/CallIncomingActivity.java +++ b/app/src/main/java/org/linphone/call/CallIncomingActivity.java @@ -280,6 +280,7 @@ public class CallIncomingActivity extends LinphoneGenericActivity { permissionsList.add(Manifest.permission.READ_PHONE_STATE); } if (LinphonePreferences.instance().shouldAutomaticallyAcceptVideoRequests() + && mCall != null && mCall.getRemoteParams().videoEnabled()) { if (camera != PackageManager.PERMISSION_GRANTED) { Log.i("[Permission] Asking for camera"); diff --git a/app/src/main/java/org/linphone/contacts/AsyncContactsLoader.java b/app/src/main/java/org/linphone/contacts/AsyncContactsLoader.java index d8614fabd..c4941371a 100644 --- a/app/src/main/java/org/linphone/contacts/AsyncContactsLoader.java +++ b/app/src/main/java/org/linphone/contacts/AsyncContactsLoader.java @@ -144,25 +144,31 @@ class AsyncContactsLoader extends AsyncTask