ProvisioningUtils.java

 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}