package com.bigdo.app;
import com.bigdo.common.RState;
import com.bigdo.util.Pub;
import com.bigdo.util.WSResult;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class Main_Activity extends BaseActivity {
private final int waitime = 1000 * 6;
RelativeLayout splash_log;
MainHomeBll homeBll;
MainBoxBll boxBll;
MainMeBll meBll;
View main_home_host, main_box_host, main_me_host;
Bundle savedInstanceState;
boolean isShowSplash = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
Pub.createSystemSwitcherShortCut(this);
if (savedInstanceState != null) {
try {
isShowSplash = savedInstanceState.getBoolean("isShowSplash",
false);
} catch (Exception e) {
}
}
this.savedInstanceState = savedInstanceState;
splash_log = (RelativeLayout) findViewById(R.id.splash_img_host);
showSplash();
setMenuEvent();
}
private void showSplash() {
if (splash_log != null) {
if (!isShowSplash) {
isShowSplash = true;
splash_log.setVisibility(RelativeLayout.VISIBLE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (splash_log != null) {
splash_log.setVisibility(RelativeLayout.GONE);
init();
}
}
}, waitime);
return;
} else {
if (homeBll == null || boxBll == null || meBll == null) {
splash_log.setVisibility(RelativeLayout.GONE);
init();
}
}
splash_log.setVisibility(RelativeLayout.GONE);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (homeBll != null) {
homeBll.onActivityResult(requestCode, resultCode, data);
}
if (boxBll != null) {
boxBll.onActivityResult(requestCode, resultCode, data);
}
if (meBll != null) {
meBll.onActivityResult(requestCode, resultCode, data);
}
}
/**
* 初始化
*
* @param savedInstanceState
*/
private void init() {
main_home_host = (View) findViewById(R.id.main_home_host);
main_box_host = (View) findViewById(R.id.main_box_host);
main_me_host = (View) findViewById(R.id.main_me_host);
homeBll = new MainHomeBll(this, main_home_host, WsHandler);
homeBll.create(savedInstanceState);
boxBll = new MainBoxBll(this, main_box_host, WsHandler);
boxBll.create(savedInstanceState);
meBll = new MainMeBll(this, main_me_host, WsHandler);
meBll.create(savedInstanceState);
homeBll.show();
}
/**
* 设置菜单事件
*/
private void setMenuEvent() {
final LinearLayout home = (LinearLayout) findViewById(R.id.menu_item_home);
final LinearLayout box = (LinearLayout) findViewById(R.id.menu_item_box);
final LinearLayout me = (LinearLayout) findViewById(R.id.menu_item_me);
home.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
setContentVisibility(main_home_host, main_box_host,
main_me_host);
setMenuItembg(home, R.drawable.menu_home_press,
R.color.menu_selected_fc);
setMenuItembg(box, R.drawable.menu_bx, R.color.menu_fc);
setMenuItembg(me, R.drawable.menu_me, R.color.menu_fc);
homeBll.show();
}
});
box.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
setContentVisibility(main_box_host, main_home_host,
main_me_host);
setMenuItembg(home, R.drawable.menu_home, R.color.menu_fc);
setMenuItembg(box, R.drawable.menu_bx_press,
R.color.menu_selected_fc);
setMenuItembg(me, R.drawable.menu_me, R.color.menu_fc);
boxBll.show();
}
});
me.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
setContentVisibility(main_me_host, main_home_host,
main_box_host);
setMenuItembg(home, R.drawable.menu_home, R.color.menu_fc);
setMenuItembg(box, R.drawable.menu_bx, R.color.menu_fc);
setMenuItembg(me, R.drawable.menu_me_press,
R.color.menu_selected_fc);
meBll.show();
}
});
}
private void setMenuItembg(LinearLayout sitem, int r, int fc) {
TextView m_item = (TextView) sitem.getChildAt(0);
m_item.setCompoundDrawablesWithIntrinsicBounds(0, r, 0, 0);
m_item.setTextColor(getResources().getColor(fc));
}
/**
* 设置显示的内容
*
* @param sview
* @param hview
* @param hview2
*/
private void setContentVisibility(View sview, View hview, View hview2) {
sview.setVisibility(View.VISIBLE);
hview.setVisibility(View.GONE);
hview2.setVisibility(View.GONE);
}
/**
* 事件通知
*/
@SuppressLint("HandlerLeak")
Handler WsHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.arg1 == RState.WSCall) {
WSResult result = (WSResult) msg.getData().getParcelable(
WSResult.ResultKey);
if (homeBll != null
&& result.RequestCode == MainHomeBll.Ws_R_Code) {
homeBll.onHandler(result);
} else if (boxBll != null
&& result.RequestCode == MainBoxBll.Ws_R_Code) {
boxBll.onHandler(result);
} else if (meBll != null
&& result.RequestCode == MainMeBll.Ws_R_Code) {
meBll.onHandler(result);
}
}
}
};
private long exitTime = 0;
private boolean isFrist = true;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
if (homeBll != null && main_home_host != null
&& main_home_host.getVisibility() == View.VISIBLE
&& homeBll.onKeyBack()) {
return true;
} else {
if (exitTime > 0
&& Math.abs(System.currentTimeMillis() - exitTime) > 2000) {
isFrist = true;
}
if (isFrist) {
isFrist = false;
showInfo("再按一次返回桌面");
exitTime = System.currentTimeMillis();
return true;
}// else {
// finish();
// System.exit(0);
// }
}
moveTaskToBack(false);
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("isShowSplash", isShowSplash);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
isShowSplash = savedInstanceState.getBoolean("isShowSplash", false);
}
@Override
public void onClearData() {
if (homeBll != null) {
homeBll.onClearData();
}
if (boxBll != null) {
boxBll.onClearData();
}
if (meBll != null) {
meBll.onClearData();
}
}
@Override
public void onVideoBroadcast(Intent intent) {
// TODO Auto-generated method stub
}
}