diff --git a/res/values-FR/strings.xml b/res/values-FR/strings.xml
index 6e39b05e4..9f8a89fab 100644
--- a/res/values-FR/strings.xml
+++ b/res/values-FR/strings.xml
@@ -402,4 +402,6 @@
Renvoyer
Erreur durant le téléchargement ou l\'application de la configuration distante...
+ Remote provisioning
+ Do you want to change the provisioning URI ?
diff --git a/res/values-RU/strings.xml b/res/values-RU/strings.xml
index 1d307d256..f384bfd70 100755
--- a/res/values-RU/strings.xml
+++ b/res/values-RU/strings.xml
@@ -453,4 +453,6 @@
Retry
Failed to download or apply remote provisioning profile...
+ Remote provisioning
+ Do you want to change the provisioning URI ?
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 86e21287a..31657af9b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -453,4 +453,6 @@
Retry
Failed to download or apply remote provisioning profile...
+ Remote provisioning
+ Do you want to change the provisioning URI ?
diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java
index 523d3a42b..5e028bf19 100644
--- a/src/org/linphone/LinphoneManager.java
+++ b/src/org/linphone/LinphoneManager.java
@@ -250,9 +250,9 @@ public class LinphoneManager implements LinphoneCoreListener {
}
public void changeStatusToOnline() {
- if (isInstanciated() && isPresenceModelActivitySet() && getLc().getPresenceModel().getActivity().getType() != PresenceActivityType.Online) {
+ if (isInstanciated() && getLcIfManagerNotDestroyedOrNull() != null && isPresenceModelActivitySet() && getLc().getPresenceModel().getActivity().getType() != PresenceActivityType.Online) {
getLc().getPresenceModel().getActivity().setType(PresenceActivityType.Online);
- } else if (isInstanciated() && !isPresenceModelActivitySet()) {
+ } else if (isInstanciated() && getLcIfManagerNotDestroyedOrNull() != null && !isPresenceModelActivitySet()) {
PresenceModel model = LinphoneCoreFactoryImpl.instance().createPresenceModel(PresenceActivityType.Online, null);
getLc().setPresenceModel(model);
}
diff --git a/src/org/linphone/LinphonePreferences.java b/src/org/linphone/LinphonePreferences.java
index 6e4ad7ba3..4b6f0112f 100644
--- a/src/org/linphone/LinphonePreferences.java
+++ b/src/org/linphone/LinphonePreferences.java
@@ -63,6 +63,9 @@ public class LinphonePreferences {
}
private LinphoneCore getLc() {
+ if (!LinphoneManager.isInstanciated())
+ return null;
+
return LinphoneManager.getLcIfManagerNotDestroyedOrNull();
}
diff --git a/src/org/linphone/setup/RemoteProvisioningActivity.java b/src/org/linphone/setup/RemoteProvisioningActivity.java
index 39640bc46..6c33bba4a 100644
--- a/src/org/linphone/setup/RemoteProvisioningActivity.java
+++ b/src/org/linphone/setup/RemoteProvisioningActivity.java
@@ -30,6 +30,8 @@ import org.linphone.core.LinphoneCore.RemoteProvisioningState;
import org.linphone.mediastream.Log;
import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
@@ -121,7 +123,12 @@ public class RemoteProvisioningActivity extends Activity implements LinphoneOnRe
} else {
if (getResources().getBoolean(R.bool.display_confirmation_popup_after_first_configuration)
&& !LinphonePreferences.instance().isFirstRemoteProvisioning()) {
- // TODO: show confirmation popup
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ displayDialogConfirmation();
+ }
+ });
} else {
setRemoteProvisioningAddressAndRestart(configUriParam);
}
@@ -130,6 +137,23 @@ public class RemoteProvisioningActivity extends Activity implements LinphoneOnRe
}).start();
}
+ private void displayDialogConfirmation() {
+ new AlertDialog.Builder(RemoteProvisioningActivity.this)
+ .setTitle(getString(R.string.remote_provisioning_again_title))
+ .setMessage(getString(R.string.remote_provisioning_again_message))
+ .setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ setRemoteProvisioningAddressAndRestart(configUriParam);
+ }
+ })
+ .setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ goToLinphoneActivity();
+ }
+ })
+ .show();
+ }
+
private void setRemoteProvisioningAddressAndRestart(String configUri) {
if (spinner != null) spinner.setVisibility(View.VISIBLE);
@@ -151,6 +175,6 @@ public class RemoteProvisioningActivity extends Activity implements LinphoneOnRe
private void goToLinphoneActivity() {
LinphoneService.instance().setActivityToLaunchOnIncomingReceived(LinphoneActivity.class);
finish(); // To prevent the user to come back to this page using back button
- startActivity(new Intent().setClass(this, LinphoneActivity.class).setData(getIntent().getData()));
+ startActivity(new Intent().setClass(this, LinphoneActivity.class));
}
}