// 保存登录信息
loginUserBean.getUser().setAccount(mUserName);
loginUserBean.getUser().setPwd(mPassword);
loginUserBean.getUser().setRememberMe(true);
AppContext.getInstance().saveUserInfo(loginUserBean.getUser());
/** * 保存登录信息 * * @param user 用户信息 */
@SuppressWarnings("serial")
public void saveUserInfo(final User user) {
this.loginUid = user.getId();
this.login = true;
setProperties(new Properties() {
{
setProperty("user.uid", String.valueOf(user.getId()));
setProperty("user.name", user.getName());
setProperty("user.face", user.getPortrait());// 用户头像-文件名
setProperty("user.account", user.getAccount());
setProperty("user.pwd",
CyptoUtils.encode("oschinaApp", user.getPwd()));
setProperty("user.location", user.getLocation());
setProperty("user.followers",
String.valueOf(user.getFollowers()));
setProperty("user.fans", String.valueOf(user.getFans()));
setProperty("user.score", String.valueOf(user.getScore()));
setProperty("user.favoritecount",
String.valueOf(user.getFavoritecount()));
setProperty("user.gender", String.valueOf(user.getGender()));
setProperty("user.isRememberMe",
String.valueOf(user.isRememberMe()));// 是否记住我的信息
}
});
}
private void initLogin() {
User user = getLoginUser();
if (null != user && user.getId() > 0) {
login = true;
loginUid = user.getId();
} else {
this.cleanLoginInfo();
}
}
/** * 获得登录用户的信息 * * @return */
public User getLoginUser() {
User user = new User();
user.setId(StringUtils.toInt(getProperty("user.uid"), 0));
user.setName(getProperty("user.name"));
user.setPortrait(getProperty("user.face"));
user.setAccount(getProperty("user.account"));
user.setLocation(getProperty("user.location"));
user.setFollowers(StringUtils.toInt(getProperty("user.followers"), 0));
user.setFans(StringUtils.toInt(getProperty("user.fans"), 0));
user.setScore(StringUtils.toInt(getProperty("user.score"), 0));
user.setFavoritecount(StringUtils.toInt(
getProperty("user.favoritecount"), 0));
user.setRememberMe(StringUtils.toBool(getProperty("user.isRememberMe")));
user.setGender(getProperty("user.gender"));
return user;
}
/** * 用户注销 */
public void Logout() {
cleanLoginInfo();
ApiHttpClient.cleanCookie();
this.cleanCookie();
this.login = false;
this.loginUid = 0;
Intent intent = new Intent(Constants.INTENT_ACTION_LOGOUT);
sendBroadcast(intent);
}
/** * 清除登录信息 */
public void cleanLoginInfo() {
this.loginUid = 0;
this.login = false;
removeProperty("user.uid", "user.name", "user.face", "user.location",
"user.followers", "user.fans", "user.score",
"user.isRememberMe", "user.gender", "user.favoritecount");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
if (args != null) {
event_type = args.getInt(BUNDLE_KEY_EVENT_TYPE);
}
if (event_type == EventList.EVENT_LIST_TYPE_MY_EVENT) {
IntentFilter filter = new IntentFilter(
Constants.INTENT_ACTION_USER_CHANGE);
filter.addAction(Constants.INTENT_ACTION_LOGOUT);
getActivity().registerReceiver(mReceiver, filter);
}
}
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
requestData(true);
}
};
@Override
protected void requestData(boolean refresh) {
if (event_type == EventList.EVENT_LIST_TYPE_NEW_EVENT) {
mCatalog = -1;
super.requestData(refresh);
return;
}
if (AppContext.getInstance().isLogin()) {
mCatalog = AppContext.getInstance().getLoginUid();
super.requestData(refresh);
} else {
mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR);
mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip));
}
}
相比广播,如果项目引入eventbus的,使用eventbus的话,可能会让代码更优雅一些。