package com.fxy.detection; import android.annotation.SuppressLint; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.widget.RecyclerView; import android.view.KeyEvent; import android.view.View; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import com.elvishew.xlog.XLog; import com.fxy.R; import com.fxy.baselibrary.base.BaseActivity; import com.fxy.baselibrary.bean.BaseEventBusBean; import com.fxy.baselibrary.interfaces.OnRxScanerListener; import com.fxy.baselibrary.util.JsonUtil; import com.fxy.baselibrary.views.MarqueeTextView; import com.fxy.bean.ActionBean; import com.fxy.bean.ScanBean; import com.fxy.common.PictureSelectorUpload; import com.fxy.constant.BaseConfig; import com.fxy.constant.EventCode; import com.fxy.detection.bean.DealDiffBean; import com.fxy.detection.bean.NeedPhotoBean; import com.fxy.net.MyDialogCallback; import com.fxy.net.Urls; import com.google.gson.Gson; import com.google.zxing.Result; import com.luck.picture.lib.config.PictureConfig; import com.lzy.okgo.OkGo; import com.lzy.okgo.model.Response; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.Unbinder; import sto.android.app.StoJNI; import sto.android.app.StoPdaKeyEvent; import sto.android.app.StoTongJNI; public class DetectionDealDiffMainActivity extends BaseActivity implements StoJNI.ScanCallBack { /** * 列表适配器 */ Context mContext = this; @BindView(R.id.mt_box_number) MarqueeTextView mtBoxNumber; @BindView(R.id.mt_unit_code) MarqueeTextView mtUnitCode; @BindView(R.id.recyclerview) RecyclerView recyclerView; @BindView(R.id.ll_recycler_view) LinearLayout llRecyclerView; private DealDiffBean dealDiffBean = new DealDiffBean(); private List listNeedPhoto = new ArrayList<>(); //节点 private String nodeCode = ""; //定义文件上传 private HashMap mapPictureSelector = new HashMap<>(); private int currentPictureInx = -1; //提交数据 private JSONObject submitData = new JSONObject(); private Unbinder unbinder; private ScanBean scanBean; @Override public int getContentViewResId() { return R.layout.activity_fxy_detection_deal_diff; } @Override public boolean showToolBar() { return true; } @Override public boolean openEventBus() { return true; } @Override protected void getBundleExtras(Bundle bundle) { dealDiffBean = JsonUtil.jsonString2Bean(bundle.getString("data"),DealDiffBean.class); } //finish的返回监听 //这里的requestCode参数,就是上面设置的 1 ,当跳转的页面返回的时候,通过这个加以判断 //resultCode ,这个参数是在跳转的页面里面规定的,它也是一个int类型的标志 //第三个参数包含了返回的值 //如果不需要所跳转的页面返回值,也就不需要这个方法了 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 图片选择结果回调 if (resultCode == RESULT_OK) { // 图片选择结果回调 if (requestCode == PictureConfig.CHOOSE_REQUEST || requestCode == PictureConfig.REQUEST_CAMERA) { PictureSelectorUpload filedUpload = mapPictureSelector.get(currentPictureInx); if (filedUpload != null){ filedUpload.getSelectImg(data); } } } } /** * EventBus接收信息的方法,开启后才会调用(非粘性事件) * * @param event */ @Override protected void EventBean(BaseEventBusBean event) { // XLog.e("----------接收返回--------------"); // XLog.e("接收返回:"+event.getEventCode()); if (event != null && event.getEventCode() == EventCode.displacement_refresh) { } } @Override public boolean isPlayMusic() { return true; } @Override protected void initView() { unbinder = ButterKnife.bind(this); setTitleName("主机差异"); initData(); } private void initData() { nodeCode = dealDiffBean.getNodeCode(); mtBoxNumber.setText(dealDiffBean.getBoxNumber()); mtUnitCode.setText(dealDiffBean.getUnitCode()); listNeedPhoto = dealDiffBean.getNeedPhotos(); if (listNeedPhoto!=null){ for (int i=0;ipost(Urls.getServiceAddress(this) + Urls.FXY_DETECTION_COMPLETED).upJson(postJson) .execute(new MyDialogCallback(this, true, true) { @Override public void onSuccess(Response response) { super.onSuccess(response); try { ActionBean bean = JsonUtil.getObject(response.body(), ActionBean.class); if (bean.code == 1) { showSuccessToast(bean.msg); finish(); } else { showWarningToast(bean.msg); } } catch (Exception e) { e.printStackTrace(); XLog.e("请求返回信息错误", e.getMessage()); } } }); } /* * 校验必录 */ private boolean validate() { try { submitData.put("box_number",dealDiffBean.getBoxNumber()); submitData.put("goods_id",""); submitData.put("unit_code",dealDiffBean.getUnitCode()); JSONArray steps = new JSONArray(); if (listNeedPhoto!=null && listNeedPhoto.size()>0){ for (int i=0;i urlList = mapPictureSelector.get(i).getPhotoList(); String fieldKey = listNeedPhoto.get(i).getFieldKey(); if (urlList.size()==0){ showErrorToast(fieldKey+"需要拍照"); return false; } item.put("node_code",nodeCode); item.put("attr_id",""); item.put("field_key",fieldKey); item.put("url",(new Gson()).toJson(urlList)); steps.put(i,item); } } } catch (JSONException e) { e.printStackTrace(); showErrorToast(e.getMessage()); return false; } return true; } @OnClick({R.id.btn_confirm}) public void onViewClicked(View view) { Bundle bundle = new Bundle(); switch (view.getId()) { case R.id.btn_confirm: doConfirm(); break; default: break; } } @Override protected void onDestroy() { unbinder.unbind(); super.onDestroy(); } @Override protected void onResume() { super.onResume(); initReceiver(); } @Override protected void onPause() { super.onPause(); //销毁在onResume()方法中的广播 try { //停止扫描 Integer is_broadcast = scanBean.getIsBroadcast();//是否广播 if (is_broadcast == 0) { StoTongJNI.getIns(mContext).SetScannerStop(); StoTongJNI.getIns(mContext).SetScannerOff(); } else { unregisterReceiver(mReceiver); } } catch (Exception e) { XLog.e("销毁广播失败:", e.getMessage()); } } }