package edu.hebtu.movingcampus.activity.wrapper;
import android.app.Activity;
import android.content.ComponentCallbacks2;
import android.content.Intent;
import android.os.AsyncTask;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import edu.hebtu.movingcampus.R;
import edu.hebtu.movingcampus.activity.CardTransferActivity;
import edu.hebtu.movingcampus.activity.MainActivity;
import edu.hebtu.movingcampus.activity.base.PageWraper;
import edu.hebtu.movingcampus.biz.CardDao;
import edu.hebtu.movingcampus.biz.base.BaseDao;
import edu.hebtu.movingcampus.config.Constants;
import edu.hebtu.movingcampus.entity.CardEntity;
import edu.hebtu.movingcampus.subjects.NetworkChangeReceiver;
import edu.hebtu.movingcampus.subjects.NetworkChangeReceiver.NetworkchangeListener;
import edu.hebtu.movingcampus.utils.LogUtil;
import edu.hebtu.movingcampus.utils.NetWorkHelper;
public class AllInOneCardActivity implements PageWraper,NetworkchangeListener {
private CardEntity bean;
private CardDao dao;
private Activity mainActivity = MainActivity.instance;
private final View contentView;
private int loweast;
private AsyncTask<BaseDao, Integer, Boolean[]>mTask;
private boolean loaded;
public AllInOneCardActivity(View view) {
this.contentView = view;
loaded=false;
loweast = mainActivity.getSharedPreferences(Constants.PREFER_FILE,
ComponentCallbacks2.TRIM_MEMORY_MODERATE).getInt(
Constants.BALANCE_LOWEAST, 10);
contentView.findViewById(R.id.btn_lockunlock).setBackgroundResource(
R.drawable.unlock);
this.dao=new CardDao(mainActivity);
mTask=new Cardtask(null).execute(dao);
bindButton();
}
private void bindButton() {
//点击刷新
contentView.findViewById(R.id.rl_catdleft).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTask=new Cardtask(null).execute(dao);
Toast.makeText(mainActivity, "更新一卡通余额成功!", Toast.LENGTH_SHORT).show();
}
});
contentView.findViewById(R.id.ly_connection_failed).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
mainActivity.startActivity(new Intent(
"android.settings.WIRELESS_SETTINGS"));
}
});
contentView.findViewById(R.id.btn_balance_transfer).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
mainActivity.startActivity(new Intent(mainActivity,
CardTransferActivity.class));
}
});
contentView.findViewById(R.id.rl_lockunlock).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
if(bean!=null)
if(bean.getStatus()==true)
mTask=new Cardtask(Constants.ACTION_LOCK).execute(dao);
else
mTask=new Cardtask(Constants.ACTION_UNLOCK).execute(dao);
}
});
}
@Override
public void onResume() {
NetworkChangeReceiver.unRegistNetworkListener(this);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
}
private class Cardtask extends AsyncTask<BaseDao, Integer, Boolean[]> {
private String action = null;
public Cardtask(String action) {
this.action = action;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
loaded=false;
if (bean != null) {
LogUtil.d("object:", bean + "status:" + bean.getStatus());
((TextView) (contentView.findViewById(R.id.tv_balance_left)))
.setText(bean.getLastPay() + "元");
if (bean.getStatus() == false)
contentView.findViewById(R.id.btn_lockunlock)
.setBackgroundResource(R.drawable.lock);
else
contentView.findViewById(R.id.btn_lockunlock)
.setBackgroundResource(R.drawable.unlock);
} else {
// do nothing TODO
// ((TextView) (contentView.findViewById(R.id.tv_balance_left)))
// .setText("***" + "元");
}
}
@Override
protected Boolean[] doInBackground(BaseDao... params) {
Boolean[] res = new Boolean[2];
if(action!=null&&bean!=null)
res[0] = bean.getStatus();
else res[0]=null;
if (action != null)
((CardDao) params[0]).mapperJson(action);
bean = ((CardDao) params[0]).mapperJson(false);
if(bean!=null)
res[1] = bean.getStatus();
else res[1]=null;
return res;
}
@Override
protected void onPostExecute(Boolean[] result) {
// 如果为获取到信息或修改了一卡通状态,但状态未变化
if (bean == null||result[0]==null||result[1]==null || action != null && result[0] == result[1]) {
try {
if (!NetWorkHelper.isMobileDataEnable(mainActivity)
&& !NetWorkHelper.isWifiDataEnable(mainActivity)) {
Toast.makeText(mainActivity, "请检查您的网络连接",
Toast.LENGTH_SHORT).show();
return;
}
} catch (Exception e) {
e.printStackTrace();
}
}
if(action!=null&&result[0]!=result[1]){
Toast.makeText(mainActivity, "success",
Toast.LENGTH_SHORT).show();
}
if (bean != null) {
LogUtil.d("object:", bean + "status:" + bean.getStatus());
((TextView) (contentView.findViewById(R.id.tv_balance_left)))
.setText(bean.getLastPay() + "元");
if (bean.getStatus() == false)
contentView.findViewById(R.id.btn_lockunlock)
.setBackgroundResource(R.drawable.lock);
else
contentView.findViewById(R.id.btn_lockunlock)
.setBackgroundResource(R.drawable.unlock);
} else {
// do nothing TODO
// ((TextView) (contentView.findViewById(R.id.tv_balance_left)))
// .setText("***" + "元");
}
loaded=true;
}
}
@Override
public void onPause() {
NetworkChangeReceiver.registNetWorkListener(this);
}
@Override
public void onDataEnabled() {
if(!loaded)
mTask.execute(dao);
}
@Override
public void onDataDisabled() {
// TODO Auto-generated method stub
};
}