private CacheEntry getEntry(Context context, Account account) { CacheEntry entry; if (account.isSaved() && !account.isTemporary()) { entry = mCache.get(account.mId); if (entry == null) { LogUtils.d(Logging.LOG_TAG, "initializing entry from database"); final HostAuth hostAuth = account.getOrCreateHostAuthRecv(context); final Credential credential = hostAuth.getOrCreateCredential(context); entry = new CacheEntry( account.mId, credential.mProviderId, credential.mAccessToken, credential.mRefreshToken, credential.mExpiration); mCache.put(account.mId, entry); } } else { // This account is temporary, just create a temporary entry. Don't store // it in the cache, it won't be findable because we don't yet have an account Id. final HostAuth hostAuth = account.getOrCreateHostAuthRecv(context); final Credential credential = hostAuth.getCredential(context); entry = new CacheEntry( account.mId, credential.mProviderId, credential.mAccessToken, credential.mRefreshToken, credential.mExpiration); } return entry; }
private void saveEntry(Context context, CacheEntry entry) { LogUtils.d(Logging.LOG_TAG, "saveEntry"); final Account account = Account.restoreAccountWithId(context, entry.mAccountId); final HostAuth hostAuth = account.getOrCreateHostAuthRecv(context); final Credential cred = hostAuth.getOrCreateCredential(context); cred.mProviderId = entry.mProviderId; cred.mAccessToken = entry.mAccessToken; cred.mRefreshToken = entry.mRefreshToken; cred.mExpiration = entry.mExpirationTime; cred.update(context, cred.toContentValues()); }