/** * */ package com.photoshare.tabHost; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.widget.Toast; import com.photoshare.common.AbstractRequestListener; import com.photoshare.exception.NetworkError; import com.photoshare.fragments.stacktrace.TraceStack; import com.photoshare.service.signin.UserSignInRequestParam; import com.photoshare.service.signin.UserSignInResponseBean; import com.photoshare.service.users.UserInfo; import com.photoshare.utils.User; import com.photoshare.utils.Utils; import com.photoshare.utils.async.AsyncUtils; /** * @author Aron * * The base activity contains all the basic info for each sub activity * to use. They are {@link User} , {@link AsyncUtils} , * {@code mExceptionHandler}. * */ public class BaseActivity extends Activity { private ProgressDialog progressDialog; protected User user = User.getInstance(); protected AsyncUtils async = AsyncUtils.getInstance(); protected TraceStack stack = TraceStack.getInstance(); @Override protected void onDestroy() { super.onDestroy(); dismissProgress(); if (user.isLogging()) { } } /** * 显示等待框 * * @param title * @param message */ protected void showProgress(String title, String message) { progressDialog = ProgressDialog.show(this, title, message); } /** * 取消等待框 */ protected void dismissProgress() { if (progressDialog != null) { try { progressDialog.dismiss(); } catch (Exception e) { } } } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { Log.i("Restore", "start..."); super.onRestoreInstanceState(savedInstanceState); } @Override protected void onSaveInstanceState(Bundle outState) { Log.i("Save", "start..."); super.onSaveInstanceState(outState); } /** * 解析逗号分割的字符串 * * @return */ public String[] parseCommaIds(String s) { if (s == null) { return null; } String[] ids = s.split(","); return ids; } /** * 显示等待框 */ protected void showProgress() { showProgress("Please wait", "progressing"); } protected final Handler mExceptionHandler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub switch (msg.what) { case NetworkError.ERROR_CODE_ILLEGAL_PARAMETER: break; case NetworkError.ERROR_CODE_LOG_ERROR: break; case NetworkError.ERROR_CODE_NULL_PARAMETER: break; case NetworkError.ERROR_CODE_PARAMETER_EXTENDS_LIMIT: break; case NetworkError.ERROR_CODE_UNABLE_PARSE_RESPONSE: break; case NetworkError.ERROR_CODE_UNKNOWN_ERROR: break; case NetworkError.ERROR_COMMENT: break; case NetworkError.ERROR_EDIT_PROFILE: break; case NetworkError.ERROR_FOLLOW: break; case NetworkError.ERROR_MAIL_NULL: break; case NetworkError.ERROR_NAME_NULL: break; case NetworkError.ERROR_PHOTO: break; case NetworkError.ERROR_PSEUDO_NAME_NULL: break; case NetworkError.ERROR_PWD_NULL: break; case NetworkError.ERROR_REFRESH_DATA: break; case NetworkError.ERROR_SIGN_IN: break; case NetworkError.ERROR_SIGN_UP: break; case NetworkError.ERROR_LIKE: break; default: super.handleMessage(msg); } } }; protected void showAlertDialog(String title, String text, Utils.OnOptionListener listener) { Utils.showOptionWindow(this, title, text, listener); } protected void onLoginSuccess() { } /** * 显示Toast提示 * * @param message */ public void showTip(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } protected void AsyncSignIn() { UserSignInRequestParam param = new UserSignInRequestParam( user.getMail(), user.getPwd()); AbstractRequestListener<UserSignInResponseBean> listener = new AbstractRequestListener<UserSignInResponseBean>() { @Override public void onNetworkError(NetworkError networkError) { // TODO Auto-generated method stub runOnUiThread(new Runnable() { public void run() { // TODO Auto-generated method stub } }); } @Override public void onFault(Throwable fault) { // TODO Auto-generated method stub runOnUiThread(new Runnable() { public void run() { // TODO Auto-generated method stub } }); } @Override public void onComplete(UserSignInResponseBean bean) { if (bean != null) { UserInfo info = bean.getUserInfo(); if (info != null) { user.setUserInfo(info); user.setLogging(true); } } runOnUiThread(new Runnable() { public void run() { // TODO Auto-generated method stub onLoginSuccess(); } }); } }; async.SignIn(param, listener); } }