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);
}
}