1package eu.siacs.conversations.utils;
2
3import android.app.Activity;
4import android.content.Intent;
5import android.widget.Toast;
6
7import java.util.List;
8
9import eu.siacs.conversations.R;
10import eu.siacs.conversations.entities.AccountConfiguration;
11import eu.siacs.conversations.persistance.DatabaseBackend;
12import eu.siacs.conversations.services.XmppConnectionService;
13import eu.siacs.conversations.ui.EditAccountActivity;
14import eu.siacs.conversations.xmpp.Jid;
15
16public class ProvisioningUtils {
17
18 public static void provision(final Activity activity, final String json) {
19 final AccountConfiguration accountConfiguration;
20 try {
21 accountConfiguration = AccountConfiguration.parse(json);
22 } catch (final IllegalArgumentException e) {
23 Toast.makeText(activity, R.string.improperly_formatted_provisioning, Toast.LENGTH_LONG).show();
24 return;
25 }
26 final Jid jid = accountConfiguration.getJid();
27 final List<Jid> accounts = DatabaseBackend.getInstance(activity).getAccountJids(true);
28 if (accounts.contains(jid)) {
29 Toast.makeText(activity, R.string.account_already_exists, Toast.LENGTH_LONG).show();
30 return;
31 }
32 final Intent serviceIntent = new Intent(activity, XmppConnectionService.class);
33 serviceIntent.setAction(XmppConnectionService.ACTION_PROVISION_ACCOUNT);
34 serviceIntent.putExtra("address", jid.asBareJid().toString());
35 serviceIntent.putExtra("password", accountConfiguration.password);
36 Compatibility.startService(activity, serviceIntent);
37 final Intent intent = new Intent(activity, EditAccountActivity.class);
38 intent.putExtra("jid", jid.asBareJid().toString());
39 intent.putExtra("init", true);
40 activity.startActivity(intent);
41 }
42
43}