AccountUtils.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.Account;
11import eu.siacs.conversations.services.XmppConnectionService;
12
13public class AccountUtils {
14
15    public static final Class MANAGE_ACCOUNT_ACTIVITY;
16
17    static {
18        MANAGE_ACCOUNT_ACTIVITY = getManageAccountActivityClass();
19    }
20
21
22    public static Account getFirstEnabled(XmppConnectionService service) {
23        final List<Account> accounts = service.getAccounts();
24        for(Account account : accounts) {
25            if (!account.isOptionSet(Account.OPTION_DISABLED)) {
26                return account;
27            }
28        }
29        return null;
30    }
31
32    public static Account getPendingAccount(XmppConnectionService service) {
33        Account pending = null;
34        for (Account account : service.getAccounts()) {
35            if (!account.isOptionSet(Account.OPTION_LOGGED_IN_SUCCESSFULLY)) {
36                pending = account;
37            } else {
38                return null;
39            }
40        }
41        return pending;
42    }
43
44    public static void launchManageAccounts(Activity activity) {
45        if (MANAGE_ACCOUNT_ACTIVITY != null) {
46            activity.startActivity(new Intent(activity, MANAGE_ACCOUNT_ACTIVITY));
47        } else {
48            Toast.makeText(activity, R.string.feature_not_implemented, Toast.LENGTH_SHORT).show();
49        }
50    }
51
52    private static Class getManageAccountActivityClass() {
53        try {
54            return Class.forName("eu.siacs.conversations.ui.ManageAccountActivity");
55        } catch (ClassNotFoundException e) {
56            return null;
57        }
58    }
59}