package com.mialab.palmsuda.syncauth; import android.accounts.Account; import android.accounts.AccountManager; import android.content.Context; import android.os.Bundle; import android.util.Log; import com.mialab.palmsuda.common.Constants; import com.mialab.palmsuda.common.Params; import com.mialab.palmsuda.main.R; public class AuthenticationUtil { public static String TAG = "AuthenticationUtil"; public static PalmAccount mAccount; public synchronized static void saveNewAccount(Context context) { if (mAccount == null) { Log.e(TAG, "saveNewAccount: mAccount is empty!"); return; } AccountManager mAccountManager = AccountManager.get(context); Account[] mAccounts = mAccountManager .getAccountsByType(Constants.ACCOUNT_TYPE); Log.d("hand", "-----mAccounts.length is: " + mAccounts.length + "------------"); if (mAccounts.length > 0) { Log.d( "hand", "saveNewAccount: account exist:" + mAccount.getAccountName()); return; } final Account account = new Account( context.getString(R.string.app_name), Constants.ACCOUNT_TYPE); Bundle userData = new Bundle(); //userData.putInt(Params.PARAMS_ACCOUNT_TYPE, mAccount.type); userData.putString(Params.PARAMS_ACCOUNT_TYPE, "" + mAccount.type); userData.putString(Params.PARAMS_LOGIN_ID, mAccount.getAccountName()); userData.putString(Params.PARAMS_LOGIN_PW, mAccount.getPassword()); userData.putString(Params.PARAMS_USER_NICK_NAME, mAccount.getNickname()); userData.putString(Params.PARAMS_USER_BIRTHDAY, mAccount.getBirthDate()); userData.putString(Params.PARAMS_USER_CITY, mAccount.getCityName()); userData.putString(Params.PARAMS_USER_DESC, mAccount.getMkeywords()); //userData.putInt(Params.PARAMS_USER_SEX, mAccount.getSex()); userData.putString(Params.PARAMS_USER_SEX, "" + mAccount.getSex()); userData.putString(Params.PARAMS_USER_EMAIL, mAccount.getEmail()); userData.putString(Params.PARAMS_NEW_MOBILE_NUMBER, mAccount.getNewNum()); userData.putString(Params.PARAMS_LOGIN_IMSI, mAccount.getImsi()); boolean addAccountSuccess = mAccountManager.addAccountExplicitly( account, mAccount.getAccountName(), userData); Log.d("hand", "--------addAccountSuccess is: " + addAccountSuccess + "-----------"); } public static Account getAccount(Context context) { AccountManager mAccountManager = AccountManager.get(context); Account[] mAccounts = mAccountManager .getAccountsByType(Constants.ACCOUNT_TYPE); if (mAccounts.length > 0) { return mAccounts[0]; } return null; } public static PalmAccount getAccountData(Context context) { AccountManager mAccountManager = AccountManager.get(context); Account[] mAccounts = mAccountManager .getAccountsByType(Constants.ACCOUNT_TYPE); if (mAccounts.length > 0) { PalmAccount cityAccount = new PalmAccount(); cityAccount.setAccountName(mAccountManager.getUserData( mAccounts[0], Params.PARAMS_LOGIN_ID)); cityAccount.setPassword(mAccountManager.getUserData(mAccounts[0], Params.PARAMS_LOGIN_PW)); cityAccount.setBirthDate(mAccountManager.getUserData(mAccounts[0], Params.PARAMS_USER_BIRTHDAY)); cityAccount.setCityName(mAccountManager.getUserData(mAccounts[0], Params.PARAMS_USER_CITY)); cityAccount.setEmail(mAccountManager.getUserData(mAccounts[0], Params.PARAMS_USER_EMAIL)); cityAccount.setNickname(mAccountManager.getUserData(mAccounts[0], Params.PARAMS_USER_NICK_NAME)); cityAccount.setMkeywords(mAccountManager.getUserData(mAccounts[0], Params.PARAMS_USER_DESC)); cityAccount.setImsi(mAccountManager.getUserData(mAccounts[0], Params.PARAMS_LOGIN_IMSI)); cityAccount.setNewNum(mAccountManager.getUserData(mAccounts[0], Params.PARAMS_NEW_MOBILE_NUMBER)); String sex = mAccountManager.getUserData(mAccounts[0], Params.PARAMS_USER_SEX); if (sex != null) { int i = 0; if (sex.equals("0")) { i = 0; } else { i = 1; } cityAccount.setSex(i); } return cityAccount; } return null; } public static void setAccountData(PalmAccount mAccount) { AuthenticationUtil.mAccount = mAccount; } public synchronized static void saveEditAccount(Context context, Account account) { if (mAccount == null) { Log.e(TAG, "saveEditAccount: mAccount is empty!"); return; } AccountManager mAccountManager = AccountManager.get(context); mAccountManager.setPassword(account, mAccount.getAccountName()); mAccountManager.setUserData(account, Params.PARAMS_LOGIN_PW, mAccount.getPassword()); mAccountManager.setUserData(account, Params.PARAMS_LOGIN_ID, mAccount.getAccountName()); mAccountManager.setUserData(account, Params.PARAMS_LOGIN_IMSI, mAccount.getImsi()); mAccountManager.setUserData(account, Params.PARAMS_USER_BIRTHDAY, mAccount.getBirthDate()); mAccountManager.setUserData(account, Params.PARAMS_USER_CITY, mAccount.getCityName()); mAccountManager.setUserData(account, Params.PARAMS_USER_EMAIL, mAccount.getEmail()); mAccountManager.setUserData(account, Params.PARAMS_USER_NICK_NAME, mAccount.getNickname()); mAccountManager.setUserData(account, Params.PARAMS_USER_DESC, mAccount.getMkeywords()); mAccountManager.setUserData(account, Params.PARAMS_USER_SEX, String.valueOf(mAccount.getSex())); mAccountManager.setUserData(account, Params.PARAMS_NEW_MOBILE_NUMBER, mAccount.getNewNum()); } public synchronized static void updateAccountParameter(Context context, String key, String value) { AccountManager mAccountManager = AccountManager.get(context); Account[] mAccounts = mAccountManager .getAccountsByType(Constants.ACCOUNT_TYPE); mAccountManager.setUserData(mAccounts[0], key, value); } public synchronized static void deleteAccount(Context context) { AccountManager mAccountManager = AccountManager.get(context); Account[] mAccounts = mAccountManager .getAccountsByType(Constants.ACCOUNT_TYPE); if (mAccounts != null && mAccounts.length > 0) { for (Account account2 : mAccounts) { Log.d(TAG, "account2 name=" + account2.name); mAccountManager.removeAccount(account2, null, null); } } } }