package com.wb.sc.mk.butler;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.common.date.FormatDateTime;
import com.common.net.volley.VolleyErrorHelper;
import com.common.widget.ToastHelper;
import com.wb.sc.R;
import com.wb.sc.activity.base.BaseActivity;
import com.wb.sc.activity.base.BaseNetActivity;
import com.wb.sc.activity.base.BasePhotoActivity.PhotoUploadListener;
import com.wb.sc.activity.base.BasePhotoFragment;
import com.wb.sc.app.SCApp;
import com.wb.sc.bean.BaseBean;
import com.wb.sc.config.NetConfig;
import com.wb.sc.config.RespCode;
import com.wb.sc.dialog.ToastLoginDialog;
import com.wb.sc.task.BaseRequest;
import com.wb.sc.util.ParamsUtil;
/**
*
* @描述:个人报修
* @作者:liang bao xian
* @时间:2014年10月21日 下午5:14:46
*/
public class PersonalRepairsFragment extends BasePhotoFragment implements Listener<BaseBean>,
ErrorListener, PhotoUploadListener{
private BaseActivity mActivity;
private EditText houseInfoEt;
private EditText phoneEt;
private EditText descEt;
private CheckBox shareCb;
private Spinner dateSp;
private Spinner timeSp;
private View submitBtn;
private String houseInfo;
private String phone;
private String desc;
private Date selDate;
private String date;
private String time;
private BaseRequest mBaseRequest;
private List<Date> dateList;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mActivity = (BaseActivity) activity;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return setContentView(inflater, R.layout.fragment_personal_repairs);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView(view);
}
private void initView(View view) {
initPhoto(view, "FG38");
setUploadListener(this);
houseInfoEt = (EditText) view.findViewById(R.id.house_info);
phoneEt = (EditText) view.findViewById(R.id.phone);
descEt = (EditText) view.findViewById(R.id.desc);
shareCb = (CheckBox) view.findViewById(R.id.share);
dateSp = (Spinner) view.findViewById(R.id.date);
ArrayAdapter<String> dateAdapter = new ArrayAdapter<String>(getActivity(),
R.layout.spinner_text_layout, getDateList());
dateAdapter.setDropDownViewResource(R.layout.spinner_down_text_layout);
dateSp.setAdapter(dateAdapter);
timeSp = (Spinner) view.findViewById(R.id.time);
String[] types = getResources().getStringArray(R.array.property_repairs_time);
ArrayAdapter<String> timeAdapter = new ArrayAdapter<String>(getActivity(),
R.layout.spinner_text_layout, types);
timeAdapter.setDropDownViewResource(R.layout.spinner_down_text_layout);
timeSp.setAdapter(timeAdapter);
submitBtn = view.findViewById(R.id.submit);
submitBtn.setOnClickListener(this);
}
private List<String> getDateList() {
List<String> dateStrList = new ArrayList<String>();
dateList = new ArrayList<Date>();
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, 1);
for(int i=0; i<7; i++) {
String time = FormatDateTime.date2String(cal.getTime(), "MM-dd");
String weekDay = new SimpleDateFormat("EEEE").format(cal.getTime());
dateStrList.add(time + " " + weekDay);
dateList.add(cal.getTime());
cal.add(Calendar.DATE, 1);
}
return dateStrList;
}
@Override
public void onClick(View v) {
super.onClick(v);
switch(v.getId()) {
case R.id.submit:
if(ToastLoginDialog.checkLogin(getActivity())) {
submit();
}
break;
}
}
private void submit() {
houseInfo = houseInfoEt.getText().toString();
phone = phoneEt.getText().toString();
desc = descEt.getText().toString();
selDate = dateList.get(dateSp.getSelectedItemPosition());
date = FormatDateTime.date2String(selDate, FormatDateTime.DATE_YMD_STR);
int hour = Integer.valueOf(timeSp.getSelectedItem().toString().split(":")[0]);
Calendar ca = Calendar.getInstance();
ca.setTime(selDate);
ca.set(Calendar.HOUR_OF_DAY, hour);
ca.set(Calendar.MINUTE, 00);
ca.set(Calendar.SECOND, 00);
time = FormatDateTime.date2String(ca.getTime(), FormatDateTime.DATETIME_YMDHMS_STR);
if(TextUtils.isEmpty(houseInfo)) {
ToastHelper.showToastInBottom(getActivity(), "住房信息不能为空");
return;
}
if(TextUtils.isEmpty(phone)) {
ToastHelper.showToastInBottom(getActivity(), "手机号码不能为空");
return;
}
if(TextUtils.isEmpty(desc)) {
ToastHelper.showToastInBottom(getActivity(), "描述不能为空");
return;
}
mActivity.showProcess("正在提交报修,请稍候...");
startUploadPhoto();
}
/**
* 获取请求参数,请按照接口文档列表顺序排列
* @return
*/
private List<String> getBaseRequestParams(String imgsUrl) {
List<String> params = new ArrayList<String>();
params.add(ParamsUtil.getReqParam("FG38", 4));
params.add(ParamsUtil.getReqParam("MC_CENTERM", 16));
params.add(ParamsUtil.getReqParam("00001", 20));
params.add(ParamsUtil.getReqParam(SCApp.getInstance().getUser().userId, 64));
params.add(ParamsUtil.getReqParam(SCApp.getInstance().getUser().communityId, 64));
params.add(ParamsUtil.getReqParam(houseInfo, 50));
params.add(ParamsUtil.getReqParam(phone, 15));
params.add(ParamsUtil.getReqParam(desc, 140));
params.add(ParamsUtil.getReqParam(imgsUrl, 1024));
params.add(ParamsUtil.getReqParam(date, 8));
params.add(ParamsUtil.getReqParam(time, 16));
params.add(ParamsUtil.getReqParam("05", 2));
params.add(ParamsUtil.getReqParam("", 100));
if(shareCb.isChecked()) {
params.add(ParamsUtil.getReqParam("01", 2));
} else {
params.add(ParamsUtil.getReqParam("00", 2));
}
return params;
}
/**
* 执行任务请求
* @param method
* @param url
* @param params
* @param listenre
* @param errorListener
*/
private void requestBase(List<String> paramsList,
Listener<BaseBean> listenre, ErrorListener errorListener) {
if(mBaseRequest != null) {
mBaseRequest.cancel();
}
String url = NetConfig.getServerBaseUrl() + NetConfig.EXTEND_URL;
mBaseRequest = new BaseRequest(url, paramsList, listenre, errorListener);
((BaseNetActivity)getActivity()).startRequest(mBaseRequest);
}
/**
* 网络请求错误处理
*
*/
@Override
public void onErrorResponse(VolleyError error) {
((BaseActivity)getActivity()).dismissProcess();
ToastHelper.showToastInBottom(getActivity(), VolleyErrorHelper.getErrorMessage(getActivity(), error));
}
/**
* 请求完成,处理UI更新
*/
@Override
public void onResponse(BaseBean response) {
mActivity.dismissProcess();
if(response.respCode.equals(RespCode.SUCCESS)) {
ToastHelper.showToastInBottom(getActivity(), "您的报修已提交,我们会尽快处理~");
getActivity().finish();
} else {
ToastHelper.showToastInBottom(getActivity(), response.respCodeMsg);
}
}
/**
* 照片上传监听
*/
@Override
public void onUploadComplete(List<String> imgUrlList) {
String imgsUrl = "";
for(int i=0; i<imgUrlList.size(); i++) {
imgsUrl += imgUrlList.get(i);
imgsUrl += "-|";
}
requestBase(getBaseRequestParams(imgsUrl), this, this);
}
}