package com.qubling.sidekick.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AuthenticatorDescription;
import android.content.Context;
public class AuthenticationHelper {
public static final String ACCOUNT_TYPE_GITHUB = "com.github";
public static final String ACCOUNT_TYPE_TWITTER = "com.twitter.android.auth.login";
public static final String ACCOUNT_TYPE_FACEBOOK = "com.facebook.auth.login";
AccountManager accountManager;
public AuthenticationHelper(Context context) {
accountManager = AccountManager.get(context);
}
public Map<String, AuthenticatorDescription> getAuthenticatorMap() {
AuthenticatorDescription[] authenticators = accountManager.getAuthenticatorTypes();
HashMap<String, AuthenticatorDescription> result = new HashMap<String, AuthenticatorDescription>(authenticators.length);
for (AuthenticatorDescription authenticator : authenticators) {
result.put(authenticator.type, authenticator);
}
return result;
}
public List<Account> getAccounts() {
Account[] githubAccounts = accountManager.getAccountsByType(ACCOUNT_TYPE_GITHUB);
Account[] twitterAccounts = accountManager.getAccountsByType(ACCOUNT_TYPE_TWITTER);
Account[] facebookAccounts = accountManager.getAccountsByType(ACCOUNT_TYPE_FACEBOOK);
ArrayList<Account> result = new ArrayList<Account>(githubAccounts.length + twitterAccounts.length + facebookAccounts.length);
Collections.addAll(result, githubAccounts);
Collections.addAll(result, twitterAccounts);
Collections.addAll(result, facebookAccounts);
return result;
}
}