package com.yaoyumeng.v2ex.ui; import android.app.ProgressDialog; import android.content.Context; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import com.umeng.analytics.MobclickAgent; import com.yaoyumeng.v2ex.model.ProfileModel; import com.yaoyumeng.v2ex.ui.fragment.BaseFragment; import com.yaoyumeng.v2ex.utils.AccountUtils; public class BaseActivity extends ActionBarActivity implements AccountUtils.OnAccountListener, BaseFragment.BackHandledInterface { private ProgressDialog mProgressDialog; protected boolean mIsLogin; protected ProfileModel mLoginProfile; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mIsLogin = AccountUtils.isLogined(this); if (mIsLogin) mLoginProfile = AccountUtils.readLoginMember(this); AccountUtils.registerAccountListener(this); } @Override protected void onDestroy() { if (mProgressDialog != null) { mProgressDialog.dismiss(); mProgressDialog = null; } AccountUtils.unregisterAccountListener(this); super.onDestroy(); } @Override protected void onStart() { super.onStart(); } public void onResume() { super.onResume(); MobclickAgent.onPageStart(this.toString()); MobclickAgent.onResume(this); } public void onPause() { super.onPause(); MobclickAgent.onPageEnd(this.toString()); MobclickAgent.onPause(this); } @Override protected void onStop() { super.onStop(); } @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); } @Override public void onLogout() { mIsLogin = false; } @Override public void onLogin(ProfileModel member) { mIsLogin = true; mLoginProfile = member; } private BaseFragment mBackHandedFragment; @Override public void setSelectedFragment(BaseFragment selectedFragment) { mBackHandedFragment = selectedFragment; } @Override public void onBackPressed() { if (mBackHandedFragment == null || !mBackHandedFragment.onBackPressed()) { if (getSupportFragmentManager().getBackStackEntryCount() == 0) { super.onBackPressed(); } else { getSupportFragmentManager().popBackStack(); } } } public void showProgressBar(boolean show) { showProgressBar(show, ""); } private void initProgressBar() { if (mProgressDialog == null) { mProgressDialog = new ProgressDialog(this); mProgressDialog.setIndeterminate(true); mProgressDialog.setCancelable(false); } } public void showProgressBar(boolean show, String message) { initProgressBar(); if (show) { mProgressDialog.setMessage(message); mProgressDialog.show(); } else { mProgressDialog.hide(); } } public void showProgressBar(int messageId) { String message = getString(messageId); showProgressBar(true, message); } }