diff --git a/app/src/main/java/org/linphone/LinphoneActivity.java b/app/src/main/java/org/linphone/LinphoneActivity.java index 48feceacb..5418acbc7 100644 --- a/app/src/main/java/org/linphone/LinphoneActivity.java +++ b/app/src/main/java/org/linphone/LinphoneActivity.java @@ -366,6 +366,14 @@ public class LinphoneActivity extends LinphoneGenericActivity ActivityCompat.requestPermissions( this, permissions, PERMISSIONS_READ_EXTERNAL_STORAGE_DEVICE_RINGTONE); } + } else { + if (getResources().getBoolean(R.bool.check_for_update_when_app_starts)) { + String url = LinphonePreferences.instance().getCheckReleaseUrl(); + if (url != null && !url.isEmpty()) { + LinphoneManager.getLcIfManagerNotDestroyedOrNull() + .checkForUpdate(BuildConfig.VERSION_NAME); + } + } } if (checkPermission(Manifest.permission.READ_CONTACTS)) { @@ -609,6 +617,16 @@ public class LinphoneActivity extends LinphoneGenericActivity @Override public void onRequestPermissionsResult( int requestCode, String[] permissions, int[] grantResults) { + + // If permission was asked we wait here for the results so dialogs won't conflict + if (getResources().getBoolean(R.bool.check_for_update_when_app_starts)) { + String url = LinphonePreferences.instance().getCheckReleaseUrl(); + if (url != null && !url.isEmpty()) { + LinphoneManager.getLcIfManagerNotDestroyedOrNull() + .checkForUpdate(BuildConfig.VERSION_NAME); + } + } + if (permissions.length <= 0) return; int readContactsI = -1; diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java index 4a6bcf27c..2f69ab4c1 100644 --- a/app/src/main/java/org/linphone/LinphoneManager.java +++ b/app/src/main/java/org/linphone/LinphoneManager.java @@ -739,8 +739,6 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou + getString(R.string.linphone_sdk_branch) + ")"); - mCore.checkForUpdate(androidVersion); - // mCore.setChatDatabasePath(mChatDatabaseFile); mCore.setCallLogsDatabasePath(mCallLogDatabaseFile); mCore.setFriendsDatabasePath(mFriendsDatabaseFile); diff --git a/app/src/main/java/org/linphone/settings/LinphonePreferences.java b/app/src/main/java/org/linphone/settings/LinphonePreferences.java index 4ba635d55..37d8678cb 100644 --- a/app/src/main/java/org/linphone/settings/LinphonePreferences.java +++ b/app/src/main/java/org/linphone/settings/LinphonePreferences.java @@ -958,6 +958,10 @@ public class LinphonePreferences { getConfig().setBool("app", "show_service_notification", enable); } + public String getCheckReleaseUrl() { + return getConfig().getString("misc", "version_check_url_root", null); + } + public boolean isOverlayEnabled() { return getConfig().getBool("app", "display_overlay", false); } diff --git a/app/src/main/res/values/non_localizable_custom.xml b/app/src/main/res/values/non_localizable_custom.xml index 2f4223597..d0503dd40 100644 --- a/app/src/main/res/values/non_localizable_custom.xml +++ b/app/src/main/res/values/non_localizable_custom.xml @@ -129,6 +129,7 @@ true true + true 1000 7000