package com.emop.client;
import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.widget.Toast;
import com.baidu.mobstat.StatService;
import com.emop.client.io.FmeiClient;
public class BaseActivity extends FragmentActivity {
static final int LOGIN_REQUEST = 1;
static final int OPEN_TAOBAO = 2;
private long lastPressback = 0;
protected final int TOAST_MSG = 2;
protected FmeiClient client = null;
protected boolean isRunning = false;
protected ProgressDialog loading = null;
//处理一个蛋疼的问题。回复Tab状态和
protected int tabIndex = -1;
protected Handler handler = new Handler(){
public void handleMessage(final Message msg) {
String message = null;
if(msg.what == TOAST_MSG && msg.obj != null){
message = msg.obj.toString();
if(message != null){
Toast.makeText(BaseActivity.this, message, Toast.LENGTH_SHORT).show();
}
}
}
};
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
client = FmeiClient.getInstance(this, false);
}
protected void onResume (){
super.onResume();
StatService.onResume(this);
isRunning = true;
client.appImgLoader.clear();
MainTabActivity tab = (MainTabActivity)this.getParent();
if(tab != null){
if(tabIndex < 0){
tabIndex = tab.tabHost.getCurrentTab();
Log.d("emop", "save cur tab index:" + tabIndex);
}else {
Log.d("emop", "update tab to:" + tabIndex);
tab.activeTab(tabIndex);
}
}
}
protected void onPause (){
super.onPause();
StatService.onPause(this);
isRunning = false;
}
protected void showToast(String msg){
Message obj = handler.obtainMessage(TOAST_MSG, msg);
handler.sendMessage(obj);
}
public void onBackPressed() {
Log.d(com.emop.client.Constants.TAG_EMOP, "on back pressed on base view");
if(this.getParent() == null){
finish();
}else { // in Tab
if(System.currentTimeMillis() - this.lastPressback > 3000){
this.lastPressback = System.currentTimeMillis();
Toast.makeText(this,"再按一次退出!", Toast.LENGTH_SHORT).show();
} else {
finish();
}
}
return;
}
public void doFinish(View v){
onBackPressed();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Log.d(com.taidian.lookmash.Constants.TAG_FMEI, "on key pressed on base view");
onBackPressed();
return true;
}
return super.onKeyDown(keyCode, event);
}
public void doLogin(View v){
Intent intent = new Intent();
intent.setClass(this, LoginActivity.class);
this.startActivityForResult(intent, LOGIN_REQUEST);
}
public void onFinish(View v){
finish();
}
public void startActivityView(int viewId, Uri data, Bundle param){
Intent intent = new Intent();
intent.setClass(this, MutilFragmentActivity.class);
intent.putExtra("view_id", new int[]{viewId});
if(param != null){
intent.putExtras(param);
}
if(data != null){
intent.setData(data);
}
startActivity(intent);
}
public void showLoading(String msg){
if(loading == null){
loading = new ProgressDialog(this);
loading.requestWindowFeature(Window.FEATURE_NO_TITLE);
}
loading.setMessage(msg);
loading.show();
}
public void closeLoading(){
if(loading != null && loading.isShowing()){
loading.cancel();
}
}
public boolean isLoading(){
return loading != null && loading.isShowing();
}
}