SignupUtils.java

 1package eu.siacs.conversations.utils;
 2
 3import android.app.Activity;
 4import android.content.Intent;
 5
 6import eu.siacs.conversations.Config;
 7import eu.siacs.conversations.entities.Account;
 8import eu.siacs.conversations.services.XmppConnectionService;
 9import eu.siacs.conversations.ui.ConversationsActivity;
10import eu.siacs.conversations.ui.EditAccountActivity;
11import eu.siacs.conversations.ui.MagicCreateActivity;
12import eu.siacs.conversations.ui.ManageAccountActivity;
13import eu.siacs.conversations.ui.PickServerActivity;
14import eu.siacs.conversations.ui.StartConversationActivity;
15import eu.siacs.conversations.ui.WelcomeActivity;
16import eu.siacs.conversations.xmpp.Jid;
17
18public class SignupUtils {
19
20    public static boolean isSupportTokenRegistry() {
21        return true;
22    }
23
24    public static Intent getTokenRegistrationIntent(final Activity activity, Jid jid, String preAuth) {
25        final Intent intent = new Intent(activity, MagicCreateActivity.class);
26        if (jid.isDomainJid()) {
27            intent.putExtra(MagicCreateActivity.EXTRA_DOMAIN, jid.getDomain().toString());
28        } else {
29            intent.putExtra(MagicCreateActivity.EXTRA_DOMAIN, jid.getDomain().toString());
30            intent.putExtra(MagicCreateActivity.EXTRA_USERNAME, jid.getLocal());
31        }
32        intent.putExtra(MagicCreateActivity.EXTRA_PRE_AUTH, preAuth);
33        return intent;
34    }
35
36    public static Intent getSignUpIntent(final Activity activity) {
37        return getSignUpIntent(activity, false);
38    }
39
40    public static Intent getSignUpIntent(final Activity activity, final boolean toServerChooser) {
41        final Intent intent;
42        if (toServerChooser) {
43            intent = new Intent(activity, PickServerActivity.class);
44        } else {
45            intent = new Intent(activity, WelcomeActivity.class);
46        }
47        return intent;
48    }
49
50    public static Intent getRedirectionIntent(final ConversationsActivity activity) {
51        final XmppConnectionService service = activity.xmppConnectionService;
52        Account pendingAccount = AccountUtils.getPendingAccount(service);
53        Intent intent;
54        if (pendingAccount != null) {
55            intent = new Intent(activity, Config.ONBOARDING_DOMAIN.equals(pendingAccount.getJid().getDomain()) ? WelcomeActivity.class : EditAccountActivity.class);
56            intent.putExtra("jid", pendingAccount.getJid().asBareJid().toString());
57            if (!pendingAccount.isOptionSet(Account.OPTION_MAGIC_CREATE)) {
58                intent.putExtra(EditAccountActivity.EXTRA_FORCE_REGISTER, pendingAccount.isOptionSet(Account.OPTION_REGISTER));
59            }
60        } else {
61            if (service.getAccounts().size() == 0) {
62                if (Config.X509_VERIFICATION) {
63                    intent = new Intent(activity, ManageAccountActivity.class);
64                } else if (Config.MAGIC_CREATE_DOMAIN != null) {
65                    intent = activity.xmppConnectionService.getPreferences().contains("onboarding_action") ? new Intent(activity, MagicCreateActivity.class) : getSignUpIntent(activity);
66                } else {
67                    intent = new Intent(activity, EditAccountActivity.class);
68                }
69            } else {
70                intent = new Intent(activity, StartConversationActivity.class);
71            }
72        }
73        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
74        return intent;
75    }
76}