From 0938a88a1dd19b3a2077ece7bf60382cb9b5507b Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Thu, 19 Jul 2018 09:57:35 +0200 Subject: [PATCH] Add check for new version --- res/raw/linphonerc_factory | 3 +- res/values/strings.xml | 1 + src/android/org/linphone/LinphoneManager.java | 28 ++++++++++++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/res/raw/linphonerc_factory b/res/raw/linphonerc_factory index 92ee60ca2..24084a6d7 100644 --- a/res/raw/linphonerc_factory +++ b/res/raw/linphonerc_factory @@ -17,7 +17,7 @@ auto_answer_replacing_calls=1 ping_with_options=0 rls_uri= use_cpim=1 -linphone_specs=groupchat +linphone_specs=groupchat [rtp] audio_rtp_port=7076 @@ -42,6 +42,7 @@ history_max_size=100 enable_basic_to_client_group_chat_room_migration=0 enable_simple_group_chat_message_state=0 aggregate_imdn=1 +version_check_url_root=https://www.linphone.org/releases [app] activation_code_length=4 diff --git a/res/values/strings.xml b/res/values/strings.xml index 72e66e0ba..0796484a1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -52,6 +52,7 @@ OK Yes Link your account + An update is available the libre SIP client diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java index b157eb9e6..4046e3ecb 100644 --- a/src/android/org/linphone/LinphoneManager.java +++ b/src/android/org/linphone/LinphoneManager.java @@ -27,6 +27,7 @@ import android.app.ProgressDialog; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager.NameNotFoundException; @@ -691,6 +692,9 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou String versionName = mServiceContext.getPackageManager().getPackageInfo(mServiceContext.getPackageName(), 0).versionName; if (versionName == null) { versionName = String.valueOf(mServiceContext.getPackageManager().getPackageInfo(mServiceContext.getPackageName(), 0).versionCode); + } else { + //Api to check version can't use version code + mLc.checkForUpdate(versionName); } mLc.setUserAgent("LinphoneAndroid", versionName); } catch (NameNotFoundException e) { @@ -1618,7 +1622,29 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou @Override public void onVersionUpdateCheckResultReceived(Core lc, VersionUpdateCheckResult result, String version, String url) { - + if (result == VersionUpdateCheckResult.NewVersionAvailable) { + final String urlToUse = url; + final String versionAv = version; + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + builder.setMessage(getString(R.string.update_available) + ": " + versionAv); + builder.setCancelable(false); + builder.setNeutralButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + if (urlToUse != null) { + Intent urlIntent = new Intent(Intent.ACTION_VIEW); + urlIntent.setData(Uri.parse(urlToUse)); + getContext().startActivity(urlIntent); + } + } + }); + builder.show(); + } + }, 1000); + } } @Override