package com.wb.sc.mk.personal;
import java.util.ArrayList;
import java.util.List;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.widget.PopupMenu.OnMenuItemClickListener;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.common.net.volley.VolleyErrorHelper;
import com.common.widget.ToastHelper;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.wb.sc.R;
import com.wb.sc.activity.base.BaseActivity;
import com.wb.sc.activity.base.ReloadListener;
import com.wb.sc.adapter.MyComplaintAdpater;
import com.wb.sc.adapter.MyRepairAdpater;
import com.wb.sc.app.SCApp;
import com.wb.sc.bean.MyRepair;
import com.wb.sc.bean.MyRepair.MyRepairItem;
import com.wb.sc.bean.SentHome;
import com.wb.sc.config.NetConfig;
import com.wb.sc.config.RespCode;
import com.wb.sc.task.MyRepairRequest;
import com.wb.sc.util.Constans;
import com.wb.sc.util.MetaUtil;
import com.wb.sc.util.ParamsUtil;
public class MyRepairActivity extends BaseActivity implements OnMenuItemClickListener, OnClickListener, Listener<MyRepair>,
ErrorListener, ReloadListener{
private PullToRefreshListView mPullToRefreshListView;
private MyRepairAdpater mAdpter;
private String mKeyword;
private String sId;
private int pageNo;
private int pageSize = 10;
private MyRepairRequest MmyRepairRequest;
private boolean hasNextPage;
private String mDistrictName;
private List<MyRepairItem> list = new ArrayList<MyRepairItem>();
private Spinner mSpinner;
private View personalV;
private View publicV;
private int postion = 5;
private int handleType = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_repair);
getIntentData();
initView();
showLoading();
requestBase(getBaseRequestParams(), this, this);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
public void back (View view) {
finish();
}
public void initView() {
mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_scroll);
mPullToRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
new GetDataTask().execute();
}
});
mPullToRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
requestBase(getBaseRequestParams(), MyRepairActivity.this, MyRepairActivity.this);
}
});
mPullToRefreshListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = new Intent(MyRepairActivity.this, MyRepairActivity.class);
startActivity(intent);
}
});
initData();
mAdpter = new MyRepairAdpater(MyRepairActivity.this, list);
mAdpter.setRepairType(0);
mPullToRefreshListView.setDividerDrawable(null);
mPullToRefreshListView.setAdapter(mAdpter);
// 初始化控件
mSpinner = (Spinner) findViewById(R.id.spinner1);
// 建立数据源
String[] mItems = getResources().getStringArray(R.array.my_complaint);
// 建立Adapter并且绑定数据源
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.spinner_text_layout, mItems);
adapter.setDropDownViewResource(R.layout.spinner_down_text_layout);
mSpinner.setAdapter(adapter);
mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// if (handleType != arg2) { // 01:未处理,02:已受理,03:已处理
// mAdpter.setStatue(handleType);
// }
//
handleType = arg2 > 0 ? 1 + arg2 : arg2;
mAdpter.setStatue(handleType);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
personalV = findViewById(R.id.personal_repairs);
personalV.setSelected(true);
personalV.setOnClickListener(this);
publicV = findViewById(R.id.public_repairs);
publicV.setOnClickListener(this);
}
private class GetDataTask extends AsyncTask<Void, Void, String[]> {
@Override
protected String[] doInBackground(Void... params) {
// Simulates a background job.
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
}
return null;
}
@Override
protected void onPostExecute(String[] result) {
mAdpter.notifyDataSetChanged();
// Call onRefreshComplete when the list has been refreshed.
mPullToRefreshListView.onRefreshComplete();
super.onPostExecute(result);
}
}
private void initData() {
String [] name = {"缇斯西饼(洪山桥)", "安德鲁森(洪山桥太阳城店)", "陌上花开(仓山店)", "比哥鸡排", "那时花开"};
String [] category = {"餐饮", "餐饮", "花店", "餐饮", "花店"};
int [] resId = {R.drawable.xibing, R.drawable.mianbao, R.drawable.huadian, R.drawable.jipai, R.drawable.nashihuadian};
for (int i = 0; i < resId.length; i++) {
SentHome sentHome = new SentHome();
sentHome.name = name [i];
sentHome.category = category [i];
sentHome.resId = resId [i];
// list.add(sentHome);
}
}
/**
* 执行任务请求
* @param method
* @param url
* @param params
* @param listenre
* @param errorListener
*/
private void requestBase(List<String> paramsList,
Listener<MyRepair> listenre, ErrorListener errorListener) {
if(MmyRepairRequest != null) {
MmyRepairRequest.cancel();
}
String url = NetConfig.getServerBaseUrl() + NetConfig.EXTEND_URL;
MmyRepairRequest = new MyRepairRequest(url, paramsList, this, this);
startRequest(MmyRepairRequest);
}
/**
* 获取请求参数,请按照接口文档列表顺序排列
* @return
*/
private List<String> getBaseRequestParams() {
List<String> params = new ArrayList<String>();
params.add(ParamsUtil.getReqParam("FG40", 4));
params.add(ParamsUtil.getReqParam("MC_CENTERM", 16));
params.add(ParamsUtil.getReqParam(MetaUtil.readMeta(this, Constans.APP_CHANNEL), 20));
params.add(ParamsUtil.getReqParam(SCApp.getInstance().getUser().userId +"", 64));
params.add(ParamsUtil.getReqIntParam(pageNo, 3));
params.add(ParamsUtil.getReqIntParam(pageSize, 2));;
return params;
}
public void getIntentData() {
Intent intent = getIntent();
mKeyword = intent.getStringExtra("mKeyword");
pageNo = 1;
}
@Override
public boolean onMenuItemClick(MenuItem arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.personal_repairs:
// contentVp.setCurrentItem(0);
postion = 5; // 个人报修
mAdpter.setRepairType(5 + 0);
personalV.setSelected(true);
publicV.setSelected(false);
break;
case R.id.public_repairs:
// contentVp.setCurrentItem(1);
postion = 6; // 公共报修
mAdpter.setRepairType(5 + 1);
personalV.setSelected(false);
publicV.setSelected(true);
break;
}
}
@Override
public void onReload() {
// TODO Auto-generated method stub
}
@Override
public void onErrorResponse(VolleyError error) {
showLoadError(this);
ToastHelper.showToastInBottom(getApplicationContext(), VolleyErrorHelper.getErrorMessage(this, error));
}
@Override
public void onResponse(MyRepair response) {
if(response.respCode.equals(RespCode.SUCCESS)) {
if (response.totalNum > 0) {
pageNo ++;
list.addAll(response.datas);
} else {
ToastHelper.showToastInBottom(MyRepairActivity.this, "无工单数据");
}
// Call onRefreshComplete when the list has been refreshed.
mPullToRefreshListView.onRefreshComplete();
// mAdpter.notifyDataSetChanged();
mAdpter.setRepairType(postion);
if (!response.hasNextPage) {
mPullToRefreshListView.setMode(Mode.DISABLED);
}
showContent();
} else {
showLoadError(this);
ToastHelper.showToastInBottom(this, response.respCodeMsg);
}
}
}