package com.jiuqi.njt.ui;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewStub;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import com.jiuqi.njt.R;
import com.jiuqi.njt.adapter.UploadAdapter;
import com.jiuqi.njt.adapter.UploadAdapter.OnInfoDeleteListener;
import com.jiuqi.njt.data.WorkTaskBeanLocal;
import com.jiuqi.njt.db.WorkTaskNewsBeanDBHelper;
import com.jiuqi.njt.inf.ServiceInf;
import com.jiuqi.njt.inf.TaskInf;
import com.jiuqi.njt.service.UploadRecordSerice;
import com.jiuqi.njt.service.impl.WorkTaskNewsBeanImp;
import com.jiuqi.njt.util.ActivityUtil;
import com.jiuqi.njt.util.TitleBarUtil;
import com.jiuqi.ui.widget.swipelistview.BaseSwipeListViewListener;
import com.jiuqi.ui.widget.swipelistview.SwipeListView;
@SuppressLint("NewApi")
public class Ceshi extends Activity implements OnClickListener, TaskInf,
OnInfoDeleteListener {
private Button uploadBtn;
private SwipeListView mSwipeListView;
private int width;
private List<WorkTaskBeanLocal> bulist;
private UploadAdapter adapter;
protected int progress = 0;
private UploadRecordSerice service;// 绑定的service对象
private WorkTaskNewsBeanDBHelper db;
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
initData();
resetData();
break;
case 1:
break;
default:
break;
}
};
};
// 连接对象,//在客户端覆写onServiceConnected方法,当服务绑定成功会调用此回调函数
ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
}
@Override
public void onServiceConnected(ComponentName name, IBinder bind) {
service = ((UploadRecordSerice.MyBind) bind).getService();// //通过IBinder获取Service
Log.wtf("Activity", "2-3onServiceConnected");
service.setListener(new ServiceInf() {
@Override
public void successBean(WorkTaskBeanLocal b) {
bulist.clear();
initData();
Log.wtf("successBean", b.getWorkType().getName() + "");
resetData();
}
@Override
public void failBean(WorkTaskBeanLocal b) {
bulist.clear();
b.setState(0);
Log.wtf("failBean", b.getWorkType().getName() + "");
// 更新对象
initData();
resetData();
}
@Override
public void currBean(WorkTaskBeanLocal b) {
Log.wtf("currBean", b.getWorkType().getName() + "");
for (int i = 0; i < bulist.size(); i++) {
if (b.getId() == bulist.get(i).getId()) {
bulist.remove(i);
b.setState(1);
bulist.add(i, b);
resetData();
break;
}
}
}
});
}
};
protected void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
initParam();
initWidget();
initTitleBar();
// 开始绑定
Log.wtf("Activity", "1-onCreate");
Intent intent = new Intent(this, UploadRecordSerice.class);
bindService(intent, connection, Context.BIND_AUTO_CREATE);
initUpload();
};
private void initUpload() {
adapter.start(true);
adapter.notifyDataSetChanged();
// onUpload();
}
private void initParam() {
bulist = new ArrayList<WorkTaskBeanLocal>();
db = new WorkTaskNewsBeanDBHelper(this);
width = ActivityUtil.getWindowWidth(this);
}
/**
* 初始化标题栏
*/
private void initTitleBar() {
ViewStub rlTitleBar = (ViewStub) findViewById(R.id.upload_titleBarStub);
TitleBarUtil.createTitleBar(this, rlTitleBar, "后台上传",
new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}
});
}
private void initWidget() {
initData();
setContentView(R.layout.activity_upload_background);
uploadBtn = (Button) findViewById(R.id.upload_btn);
uploadBtn.setVisibility(View.GONE);
// 要上传的数据的列表
mSwipeListView = (SwipeListView) findViewById(R.id.upload_lv);
adapter = new UploadAdapter(this, width, bulist);
mSwipeListView.setAdapter(adapter);
mSwipeListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
mSwipeListView
.setSwipeListViewListener(new BaseSwipeListViewListener() {
private String TAG = "swipelistview";
@Override
public void onStartOpen(int position, int action,
boolean right) {
Log.d(TAG, "onStartOpen");
}
@Override
public void onStartClose(int position, boolean right) {
Log.d(TAG, "onStartClose");
}
@Override
public void onClickFrontView(int position) {
Log.d(TAG, "onClickFrontView");
Intent intent = new Intent(Ceshi.this,
PostInfoJobsActivityNew.class);
intent.putExtra("localbean", bulist.get(position));
startActivity(intent);
Ceshi.this.finish();
}
@Override
public void onClickBackView(int position) {
Log.d(TAG, "onClickBackView");
}
@Override
public void onDismiss(int[] reverseSortedPositions) {
adapter.notifyDataSetChanged();
}
});
reload();
}
private void reload() {
mSwipeListView.setSwipeMode(SwipeListView.SWIPE_MODE_NONE);
mSwipeListView.setSwipeMode(SwipeListView.SWIPE_MODE_LEFT);
mSwipeListView.setSwipeActionLeft(SwipeListView.SWIPE_ACTION_REVEAL);
mSwipeListView.setOffsetLeft(width * 3 / 4);
mSwipeListView.setAnimationTime(0);
mSwipeListView.setSwipeOpenOnLongPress(false);
}
@Override
public void onInfoDeleteClick(int position) {
// TODO Auto-generated method stub
db.deleteByGuid(bulist.get(position).getGuid());
bulist.remove(position);
resetData();
}
@Override
public void onPreExecute() {
// TODO Auto-generated method stub
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unbindService(connection);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
initData();
}
@Override
public void isSuccess(Object b) {
// TODO Auto-generated method stub
boolean success = (Boolean) b;
Message msg = new Message();
if (success) {
msg.what = 0;
} else {
msg.what = 1;
}
handler.sendMessage(msg);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.upload_btn:
adapter.start(true);
adapter.notifyDataSetChanged();
onUpload();
uploadBtn.setText("正在上传");
uploadBtn.setClickable(false);
break;
default:
break;
}
}
public void onUpload() {
if (null != bulist && bulist.size() > 0) {
WorkTaskNewsBeanImp upload = new WorkTaskNewsBeanImp(this,
getApplication());
upload.setListener(this);
upload.upLoad();
} else {// list中没有数据了
uploadBtn.setClickable(true);
uploadBtn.setText("开始上传");
}
}
private void initData() {
List<WorkTaskBeanLocal> savelist = db.queryForState(0);// 获取所有保存和提交过的数据
List<WorkTaskBeanLocal> submitList = db.queryForState(1);
if (bulist == null) {
bulist = new ArrayList<WorkTaskBeanLocal>();
} else {
bulist.clear();
}
if (savelist != null) {
bulist.addAll(savelist);
}
if (submitList != null) {
bulist.addAll(submitList);
}
}
private void resetData() {
adapter = new UploadAdapter(Ceshi.this, width, bulist);
mSwipeListView.setAdapter(adapter);
}
}