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)); } }