package com.troy.xifan.manage; import com.troy.xifan.config.Constants; import com.troy.xifan.model.request.User; import com.troy.xifan.model.response.OAuthToken; import com.troy.xifan.util.FileUtils; import java.io.File; /** * Created by chenlongfei on 2016/11/27. */ public class UserHolder { private static final String FILE_NAME = "userinfo.data"; private static UserHolder sInstance; private File mCacheFile; public UserHolder() { mCacheFile = FileUtils.getCacheFile(FILE_NAME); } public static UserHolder getInstance() { if (sInstance == null) { synchronized (UserHolder.class) { if (sInstance == null) { sInstance = new UserHolder(); } } } return sInstance; } private void flushToken(User user) { OAuthToken oAuthToken = null; if (user != null) { oAuthToken = user.getToken(); } if (oAuthToken != null) { Constants.FanFou.OAUTH_TOKEN = oAuthToken.getOauthToken(); Constants.FanFou.OAUTH_TOKENSECRET = oAuthToken.getOauthTokenSecret(); } } public void saveUser(User user) { flushToken(user); FileUtils.saveObjectToFile(user, mCacheFile); } public User readUser() { User user = (User) FileUtils.readObjectFromFile(mCacheFile); flushToken(user); return user; } public void cleanUser() { FileUtils.deleteFile(mCacheFile); Constants.FanFou.OAUTH_TOKEN = null; Constants.FanFou.OAUTH_TOKENSECRET = null; } }