package de.pixart.messenger.utils; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import java.util.ArrayList; import java.util.List; import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.entities.Account; import de.pixart.messenger.services.XmppConnectionService; public class AccountUtils { public static final Class MANAGE_ACCOUNT_ACTIVITY; static { MANAGE_ACCOUNT_ACTIVITY = getManageAccountActivityClass(); } public static List getEnabledAccounts(final XmppConnectionService service) { ArrayList accounts = new ArrayList<>(); for (Account account : service.getAccounts()) { if (account.getStatus() != Account.State.DISABLED) { if (Config.DOMAIN_LOCK != null) { accounts.add(account.getJid().getLocal()); } else { accounts.add(account.getJid().asBareJid().toString()); } } } return accounts; } public static Account getFirstEnabled(XmppConnectionService service) { final List accounts = service.getAccounts(); for (Account account : accounts) { if (!account.isOptionSet(Account.OPTION_DISABLED)) { return account; } } return null; } public static Account getFirst(XmppConnectionService service) { final List accounts = service.getAccounts(); for (Account account : accounts) { return account; } return null; } public static Account getPendingAccount(XmppConnectionService service) { Account pending = null; for (Account account : service.getAccounts()) { if (!account.isOptionSet(Account.OPTION_LOGGED_IN_SUCCESSFULLY)) { pending = account; } else { return null; } } return pending; } public static void launchManageAccounts(Activity activity) { if (MANAGE_ACCOUNT_ACTIVITY != null) { activity.startActivity(new Intent(activity, MANAGE_ACCOUNT_ACTIVITY)); } else { Toast.makeText(activity, R.string.feature_not_implemented, Toast.LENGTH_SHORT).show(); } } private static Class getManageAccountActivityClass() { try { return Class.forName("de.pixart.messenger.ui.ManageAccountActivity"); } catch (ClassNotFoundException e) { return null; } } }