package cn.edu.tsinghua.hpc.tmms; import android.content.Context; import android.util.Config; import android.util.Log; public class UserManager { protected String mSessionID = null; protected UserInfo mUser = null; protected Context mContext = null; protected RequestLogin mLogin = null; private static final String TAG = "UserManager"; private static final boolean DEBUG = false; private static final boolean LOCAL_LOGV = DEBUG ? Config.LOGD : Config.LOGV; private static UserManager mInstance = null; public UserManager(Context context) { assert(context != null); mContext = context; mLogin = new RequestLogin(mContext); mUser = new UserInfo(); } public static UserManager newInstance(Context context) { if (LOCAL_LOGV) { Log.v(TAG, "UserManager.newInstance()"); } mInstance = new UserManager(context); return mInstance; } public static UserManager getInstance() { return mInstance; } // uid must be not null. public void setUser(UserInfo user) { assert(user != null); mUser = user; return; } public UserInfo getUser() { return mUser; } public void setToken(String token) { assert(token != null); mUser.mToken = token; return; } public String getToken() { return mUser.mToken; } public void setUserID(String uid) { assert(uid != null); mUser.mUserID = uid; return; } public String getUserID() { return mUser.mUserID; } public void setTotal(int total) { assert(total >= 0); mUser.mTotal = total; return; } public int getTotal() { return mUser.mTotal; } // sessionID must be not null. public void setSessionID(String sessionID) { assert(sessionID != null); mSessionID = sessionID; } public String getSessionID() { return mSessionID; } public boolean requestLogin(OnLoginListener listener) { return mLogin.login(listener); } public boolean cancelLogin() { return mLogin.cancel(); } }