package se.leiflandia.lroi.ui; import android.accounts.AccountAuthenticatorActivity; import android.accounts.AccountAuthenticatorResponse; import android.accounts.AccountManager; import android.content.Context; import android.content.Intent; public abstract class AbstractLoginActivity extends AccountAuthenticatorActivity { // TODO Read parameters in onCreate and handle missing private static final String PARAM_AUTH_TOKEN_TYPE = "PARAM_AUTH_TOKEN_TYPE"; public static Intent createIntent( Context context, Class<? extends AbstractLoginActivity> loginActivityClass, AccountAuthenticatorResponse response, String accountName, String accountType, String authTokenType) { final Intent intent = new Intent(context, loginActivityClass); intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, accountName); intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, accountType); intent.putExtra(AbstractLoginActivity.PARAM_AUTH_TOKEN_TYPE, authTokenType); intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response); return intent; } public static Intent createIntent( Context context, Class<? extends AbstractLoginActivity> loginActivityClass, AccountAuthenticatorResponse response, String accountType, String authTokenType) { return createIntent(context, loginActivityClass, response, null, accountType, authTokenType); } public static Intent createIntent( Context context, Class<? extends AbstractLoginActivity> loginActivityClass, String accountType, String authTokenType) { return createIntent(context, loginActivityClass, null, null, accountType, authTokenType); } public static boolean checkEmailFormat(String email) { return email != null && email.contains("@") && email.length() >= 3; } public static boolean checkUsernameFormat(String username) { return username != null && username.matches("^[-_@\\.0-9\\p{L}]{5,254}$"); } public static boolean checkPasswordFormat(String password) { return password != null && password.matches("^[\\x21-\\x7E\\xA0-\\xBF\\p{L}]{5,256}$"); } }