package com.xda.one.util;
import com.xda.one.auth.XDAAccount;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import static android.preference.PreferenceManager.getDefaultSharedPreferences;
public class AccountUtils {
private static final String SELECTED_ACCOUNT_USERNAME = "selected_account_username";
private static final String SELECTED_ACCOUNT_USERID = "selected_account_userid";
private static final String SELECTED_ACCOUNT_EMAIL = "selected_account_email";
private static final String SELECTED_ACCOUNT_AVATAR = "selected_account_avatar";
private static final String SELECTED_ACCOUNT_PM_COUNT = "selected_account_pm_count";
private static final String SELECTED_ACCOUNT_QUOTE_COUNT = "selected_account_quote_count";
private static final String SELECTED_ACCOUNT_MENTION_COUNT = "selected_accont_mention_count";
private static final String SELECTED_ACCOUNT_TOKEN = "selected_account_token";
public static boolean isAccountAvailable(final Context context) {
final SharedPreferences sharedPreferences = getDefaultSharedPreferences(context);
return sharedPreferences.getString(SELECTED_ACCOUNT_USERNAME, null) != null;
}
public static XDAAccount getAccount(final Context context) {
final SharedPreferences sharedPreferences = getDefaultSharedPreferences(context);
final String username = sharedPreferences.getString(SELECTED_ACCOUNT_USERNAME, null);
final String userId = sharedPreferences.getString(SELECTED_ACCOUNT_USERID, null);
final String email = sharedPreferences.getString(SELECTED_ACCOUNT_EMAIL, null);
final String avatar = sharedPreferences.getString(SELECTED_ACCOUNT_AVATAR, null);
final int pmCount = sharedPreferences.getInt(SELECTED_ACCOUNT_PM_COUNT, 0);
final int quoteCount = sharedPreferences.getInt(SELECTED_ACCOUNT_QUOTE_COUNT, 0);
final int mentionCount = sharedPreferences.getInt(SELECTED_ACCOUNT_MENTION_COUNT, 0);
final String token = sharedPreferences.getString(SELECTED_ACCOUNT_TOKEN, null);
return TextUtils.isEmpty(username) ? null : new XDAAccount(username, userId, email,
avatar, pmCount, quoteCount, mentionCount, token);
}
public static void storeAccount(final Context context, final XDAAccount account) {
final SharedPreferences sharedPreferences = getDefaultSharedPreferences(context);
final SharedPreferences.Editor editor = sharedPreferences.edit();
if (account == null) {
editor.remove(SELECTED_ACCOUNT_USERNAME).remove(SELECTED_ACCOUNT_USERID)
.remove(SELECTED_ACCOUNT_EMAIL).remove(SELECTED_ACCOUNT_AVATAR)
.remove(SELECTED_ACCOUNT_PM_COUNT).remove(SELECTED_ACCOUNT_QUOTE_COUNT)
.remove(SELECTED_ACCOUNT_MENTION_COUNT).remove(SELECTED_ACCOUNT_TOKEN);
} else {
editor.putString(SELECTED_ACCOUNT_USERNAME, account.getUserName())
.putString(SELECTED_ACCOUNT_USERID, account.getUserId())
.putString(SELECTED_ACCOUNT_EMAIL, account.getEmail())
.putString(SELECTED_ACCOUNT_AVATAR, account.getAvatarUrl())
.putInt(SELECTED_ACCOUNT_PM_COUNT, account.getPmCount())
.putInt(SELECTED_ACCOUNT_QUOTE_COUNT, account.getQuoteCount())
.putInt(SELECTED_ACCOUNT_MENTION_COUNT, account.getMentionCount())
.putString(SELECTED_ACCOUNT_TOKEN, account.getAuthToken());
}
editor.apply();
}
}