Newer
Older
dxcgt / app / src / main / java / com / smartdot / cgt / activity / FrmProblemReCheckDetail.java
wangxitong on 6 Apr 2021 28 KB first commit
package com.smartdot.cgt.activity;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Array;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.location.Location;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.esri.core.geometry.Point;
import com.esri.core.map.FeatureSet;
import com.esri.core.tasks.SpatialRelationship;
import com.smartdot.cgt.R;
import com.smartdot.cgt.model.CaseModel;
import com.smartdot.cgt.model.DictTypeModel;
import com.smartdot.cgt.model.ResponseResult;
import com.smartdot.cgt.request.ApiClent;
import com.smartdot.cgt.request.Request;
import com.smartdot.cgt.util.ActivityTools;
import com.smartdot.cgt.util.ApplicationMain;
import com.smartdot.cgt.util.BaseThread;
import com.smartdot.cgt.util.BitmapConvert;
import com.smartdot.cgt.util.GpsManager;
import com.smartdot.cgt.util.HandlerStatus;
import com.smartdot.cgt.util.MapUtil;
import com.smartdot.cgt.util.Msg;
import com.smartdot.cgt.util.PointD;
import com.smartdot.cgt.util.StringUtils;

import com.smartdot.cgt.view.ImagesLayout;
import com.smartdot.cgt.view.TitleBar;


import org.json.JSONException;
import org.json.JSONObject;

public class FrmProblemReCheckDetail extends BaseActivity
{

	private TitleBar titlebar;
	private BaseThread thread;
	private HashMap<String, BaseThread> threadList = new HashMap<String, BaseThread>(5);
	private final String THREAD_SUBMIT_FIELD = "THREAD_SUBMIT_FIELD";
	private final String THREAD_SUBMIT_PICTURE0 = "THREAD_SUBMIT_PICTURE0";
	private final String THREAD_SUBMIT_PICTURE1 = "THREAD_SUBMIT_PICTURE1";
	private final String THREAD_SUBMIT_PICTURE2 = "THREAD_SUBMIT_PICTURE2";
	private final String THREAD_SUBMIT_AUDIO = "THREAD_SUBMIT_Audio";
	private final int RESULT_POINT = 1101;
	private List<String> picpaths;
	JSONObject casejson;
	TextView txtcasenum,txtcasetype,txtcaselclass,txtcasesclass;
	TextView txtshequ,txtaddress,txtdetail,txttime;
	EditText txtremarks;
	TextView txtcheck;
	private View btnGetPosition;
	private ImagesLayout imagesLayout;
	private LinearLayout mainLayout;
	private ImagesLayout imagesLayout1;
	private LinearLayout mainLayout1;
	private ImagesLayout imagesLayout2;
	private LinearLayout mainLayout2;
	private Spinner spinCheckResult;
	public String nowstate,processId;
	private ImageButton closeBtn1,closeBtn2,closeBtn3;
	public List<Map<String,String>> nextstate;
	private Button submit_bt;
	private View btnGetImage;
	private static int SELECT_PICTURE = 0;
	private static int TAKE_PHOTO = 1;
	public int imgcount=0;
	private String longitude,latitude;
	Long id;
	private String eventId;
	@Override
	protected void setLayout()
	{
		initActivity();
		setContentView(R.layout.problemrecheckdetail);

		titlebar = (TitleBar) this.findViewById(R.id.titlebar);
		titlebar.setTitleText("案卷核查");

		txtcasenum = (TextView) findViewById(R.id.casenum);
		txttime = (TextView) findViewById(R.id.txttime);
		txtcasetype = (TextView) findViewById(R.id.casetype);
		txtcaselclass = (TextView) findViewById(R.id.caselclass);
		txtcasesclass = (TextView) findViewById(R.id.casesclass);
		txtshequ = (TextView) findViewById(R.id.spinSq);
		txtaddress = (TextView) findViewById(R.id.txtAddress);
		txtdetail = (TextView) findViewById(R.id.txtEventDesc);
		txtremarks = (EditText) findViewById(R.id.txtOpinion);
		txtcheck = (TextView) findViewById(R.id.dealresult);
		btnGetPosition = (View) findViewById(R.id.btnGetPosition);
		submit_bt = (Button)findViewById(R.id.submit_bt);
//        imageView = (ImageView) ApplicationMain.getInstance().inflateView(R.layout.imagelayout1);
		imagesLayout1 = (ImagesLayout) ApplicationMain.getInstance().inflateView(R.layout.imagelayout1);
		mainLayout1 = (LinearLayout) findViewById(R.id.layout_pic1);
		mainLayout1.addView(imagesLayout1);

		imagesLayout2 = (ImagesLayout) ApplicationMain.getInstance().inflateView(R.layout.imagelayout1);
		mainLayout2 = (LinearLayout) findViewById(R.id.layout_pic2);
		mainLayout2.addView(imagesLayout2);

		imagesLayout = (ImagesLayout) ApplicationMain.getInstance().inflateView(R.layout.imagelayout);
		closeBtn1 = (ImageButton) imagesLayout.findViewById(R.id.closeBtn1);
		closeBtn2 = (ImageButton) imagesLayout.findViewById(R.id.closeBtn2);
		closeBtn3 = (ImageButton) imagesLayout.findViewById(R.id.closeBtn3);
		btnGetImage = (View) findViewById(R.id.btnGetImage);
		mainLayout = (LinearLayout) findViewById(R.id.layout_pic);
		mainLayout.addView(imagesLayout);
		spinCheckResult = (Spinner)findViewById(R.id.spinCheckResult);
		spinCheckResult.setOnItemSelectedListener(onItemSelectedListener);
		imagesLayout.setVisibility(View.GONE);
		submit_bt.setClickable(true);
	}

	private AdapterView.OnItemSelectedListener onItemSelectedListener = new AdapterView.OnItemSelectedListener()
	{
		@Override
		public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
		{
			TextView v1 = (TextView) arg1;
			if (arg0 == spinCheckResult)
			{
				txtremarks.setText(nextstate.get(arg2).get("nextOperation"));
			}
		}
		@Override
		public void onNothingSelected(AdapterView<?> arg0)
		{
		}
	};

	@Override
	protected void doInit()
	{
		initview();
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode,
									Intent intent) {
		if (resultCode == RESULT_OK) {
			if (requestCode == SELECT_PICTURE) {
				Bitmap yourSelectedImage = getImageFromReturnIntent(intent);
				if (yourSelectedImage != null) {
					imagesLayout.addSelectedImage(yourSelectedImage);
					if (imgcount < 3) {
						imgcount++;
						if (imgcount == 1) closeBtn1.setVisibility(View.VISIBLE);
						else if (imgcount == 2) closeBtn2.setVisibility(View.VISIBLE);
						else if (imgcount == 3) closeBtn3.setVisibility(View.VISIBLE);
					}

				}
			} else if (requestCode == TAKE_PHOTO) {
				Bitmap bitmap = getImageFromCameraIntent(intent);
				if (bitmap != null) {
					imagesLayout.addSelectedImage(bitmap);
					if (imgcount < 3) {
						imgcount++;
						if (imgcount == 1) closeBtn1.setVisibility(View.VISIBLE);
						else if (imgcount == 2) closeBtn2.setVisibility(View.VISIBLE);
						else if (imgcount == 3) closeBtn3.setVisibility(View.VISIBLE);
					}
				}
			}
		}
	}

	@Override
	protected void addEventListener()
	{
		btnGetPosition.setOnClickListener(onClickListener);
		submit_bt.setOnClickListener(onClickListener);
		btnGetImage.setOnClickListener(onClickListener);
		closeBtn1.setOnClickListener(onClickListener);
		closeBtn2.setOnClickListener(onClickListener);
		closeBtn3.setOnClickListener(onClickListener);

		imagesLayout1.setOnPreviewImage(imagesLayout1.new OnPreviewImage()
		{
			@Override
			public void previewImage(int viewIndex)
			{

				Intent intent = new Intent(FrmProblemReCheckDetail.this, FrmViewImage.class);
				intent.putExtra(FrmViewImage.BITMAPKEY, imagesLayout1.getSelectedImagesPath());
				intent.putExtra(FrmViewImage.FIRSTSHOWINDEX, viewIndex);
				startActivity(intent);
			}
		});
		imagesLayout2.setOnPreviewImage(imagesLayout2.new OnPreviewImage()
		{
			@Override
			public void previewImage(int viewIndex)
			{

				Intent intent = new Intent(FrmProblemReCheckDetail.this, FrmViewImage.class);
				intent.putExtra(FrmViewImage.BITMAPKEY, imagesLayout2.getSelectedImagesPath());
				intent.putExtra(FrmViewImage.FIRSTSHOWINDEX, viewIndex);
				startActivity(intent);
			}
		});
		imagesLayout.setOnCountChange(imagesLayout.new OnCountChange()
		{
			@Override
			public void getNowCount(int nowCount)
			{
				imagesLayout.setVisibility(nowCount == 0 ? View.GONE
						: View.VISIBLE);
				btnGetImage.setEnabled(nowCount < 3);
				imagesLayout.requestFocus();
			}
		});
		imagesLayout.setOnPreviewImage(imagesLayout.new OnPreviewImage()
		{
			@Override
			public void previewImage(int viewIndex)
			{

				Intent intent = new Intent(FrmProblemReCheckDetail.this, FrmViewImage.class);
				intent.putExtra(FrmViewImage.BITMAPKEY, imagesLayout


						.getSelectedImagesPath());
				intent.putExtra(FrmViewImage.FIRSTSHOWINDEX, viewIndex);
				startActivity(intent);
			}
		});
	}

	private OnClickListener onClickListener = new OnClickListener() {
		@Override
		public void onClick(View arg0) {
			if (arg0 == btnGetPosition) {
				//地图和百度地图切换
				int getLocationId = ActivityTools.GETLOCATION_NONE;
				Intent intent = new Intent();
				intent.setClass(FrmProblemReCheckDetail.this,FrmMap.class);
				Bundle bundle = new Bundle();
				bundle.putString("lng",longitude);
				bundle.putString("lat",latitude);
				intent.putExtras(bundle);
				startActivity(intent);
			}else if(arg0 == submit_bt){
				submit_bt.setClickable(false);
				boolean bsub = true;
				if(StringUtils.isNullOrEmpty(txtremarks.getText().toString().trim())){
					Msg.showInfo(FrmProblemReCheckDetail.this, "请填写核查意见!\n");
					bsub = false;
				}
				if(txtremarks.getText().toString().length()>50){
					Msg.showInfo(FrmProblemReCheckDetail.this, "核查意见不能超过50字!\n");
				}
//				if (imagesLayout.getSelectedImageCount() <2)
//				{
//					Msg.showInfo(FrmProblemReCheckDetail.this, "请上传二张图片!\n");
//					bsub = false;
//				}
				if(bsub){
					picpaths = new ArrayList<String>();
					submitPicture();
					submitcheck();
				}else{
					submit_bt.setClickable(true);
				}
			}else if (arg0 == btnGetImage)
			{// 点击获取图片
				ActivityTools.getInstance().takePicture(SELECT_PICTURE,
						TAKE_PHOTO, FrmProblemReCheckDetail.this);
			}
			else if(arg0 == closeBtn1) {
				imagesLayout.removeSelectedImage(0);
				if(imgcount==1) closeBtn1.setVisibility(View.INVISIBLE);
				else if(imgcount==2) closeBtn2.setVisibility(View.INVISIBLE);
				else if(imgcount==3) closeBtn3.setVisibility(View.INVISIBLE);
				imgcount--;
			}
			else if(arg0 == closeBtn2) {
				imagesLayout.removeSelectedImage(1);
				if(imgcount==1) closeBtn1.setVisibility(View.INVISIBLE);
				else if(imgcount==2) closeBtn2.setVisibility(View.INVISIBLE);
				else if(imgcount==3) closeBtn3.setVisibility(View.INVISIBLE);
				imgcount--;
			}
			else if(arg0 == closeBtn3) {
				imagesLayout.removeSelectedImage(2);
				if(imgcount==1) closeBtn1.setVisibility(View.INVISIBLE);
				else if(imgcount==2) closeBtn2.setVisibility(View.INVISIBLE);
				else if(imgcount==3) closeBtn3.setVisibility(View.INVISIBLE);
				imgcount--;
			}
		}
	};
	public File getFile(Bitmap bm) {
		Long random = System.currentTimeMillis();
		String randomstr = random.toString();
		String path = Environment.getExternalStorageDirectory() + "/Ask";
		File dirFile = new File(path);
		if(!dirFile.exists()){
			dirFile.mkdir();
		}
		File myCaptureFile = new File(path +"/" + randomstr +".jpg");
		try {
			BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
			bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);
			bos.flush();
			bos.close();
		}catch (Exception e){
			e.printStackTrace();
		}
		return myCaptureFile;
	}

	private void submitPicture(){
		final Bitmap[] bitmapList = imagesLayout.getSelectedImages();
		BaseThread thread = new BaseThread(baseHandler) {
			@Override
			public void runThread() {
				final Message msg = this.obtainMessage();
				if (msg != null) {
					msg.what = HandlerStatus.SUBMIT_PICTURE0;
					try {
						for (int i = 0, count = imagesLayout.getSelectedImageCount(); i < count; i++){
							final int nowIndex = i;
							File file = getFile(bitmapList[nowIndex]);
							ApiClent.fileupload(file, new ApiClent.ClientCallback() {
								@Override
								public void onSuccess(Object data)
								{
									try {
										JSONObject jsonObject = new JSONObject(data.toString());
										picpaths.add(jsonObject.getString("data"));
										msg.arg1 = HandlerStatus.HANDLE_OK;
									} catch (JSONException e) {
										// TODO Auto-generated catch block
										e.printStackTrace();
										Log.i("fileupload", e.getMessage());
										msg.arg1 = HandlerStatus.HANDLE_FAIL;
									}
								}
								@Override
								public void onFailure(String message) {
									System.out.println("fileupload.message------------------ " + message);
									msg.arg1 = HandlerStatus.HANDLE_FAIL;
								}
								@Override
								public void onError(Exception e) {
									System.out.println("fileupload.e.getMessage()------------------ " + e.getMessage());
									msg.arg1 = HandlerStatus.HANDLE_FAIL;
								}
							});
						}
					}
					catch (Exception e)
					{
						msg.arg1 = HandlerStatus.HANDLE_ERROR;
					}
					this.sendMessage(msg);
				}
			}
		};
		showProgress("图片上传中。。。", "案卷录入");
		thread.start();
		final String key = "THREAD_SUBMIT_PICTURE0";
		threadList.put(key, thread);
	}


	private void submitcheck(){
		thread = new BaseThread(baseHandler)
		{
			@Override
			public void runThread()
			{
				final Message msg = thread.obtainMessage();
				if (msg != null)
				{
					msg.what = HandlerStatus.REQUEST_SUBMITCHECK;
					try
					{
						while(picpaths.size()<imagesLayout.getSelectedImageCount()){
							Thread.currentThread().sleep(500);
						}
						String picstr ="" ;
						for(int i=0; i<picpaths.size(); i++){
							if(i>0) picstr+=",";
							picstr+=picpaths.get(i);
						}
						String changeState = nextstate.get(spinCheckResult.getSelectedItemPosition()).get("nextState");
						String remarkers = txtremarks.getText().toString().trim();
						ApiClent.completeCaseTask(processId,id.toString(),nowstate, changeState,
								remarkers,picstr,new ApiClent.ClientCallback() {
									@Override
									public void onSuccess(Object data)
									{
										try {
											JSONObject jsonObject = new JSONObject(data.toString());
											System.out.println(jsonObject);
											msg.arg1 = HandlerStatus.HANDLE_OK;
										} catch (JSONException e) {
											// TODO Auto-generated catch block
											e.printStackTrace();
											Log.i("inputNewCase", e.getMessage());
											msg.arg1 = HandlerStatus.HANDLE_FAIL;
										}
									}
									@Override
									public void onFailure(String message) {
										System.out.println("inputNewCase.message------------------ " + message);
										msg.arg1 = HandlerStatus.HANDLE_FAIL;
									}
									@Override
									public void onError(Exception e) {
										System.out.println("inputNewCase.e.getMessage()------------------ " + e.getMessage());
										msg.arg1 = HandlerStatus.HANDLE_FAIL;
									}
								});
					}
					catch (Exception e)
					{
						msg.arg1 = HandlerStatus.HANDLE_ERROR;
					}
					this.sendMessage(msg);
				}
			}
		};
		showProgress("核查提交中。。。", "案卷核查");
		thread.start();
		threadList.put(THREAD_SUBMIT_FIELD, thread);
	}

	private boolean checkIsNeedCloseProgress()
	{
		boolean canCloseProgress = true;
		for (BaseThread thread : threadList.values())
		{
			if (thread != null && thread.getIsThreadGoing())
			{
				canCloseProgress = false;
			}
		}
		if (canCloseProgress)
		{
			try
			{
				closeProgress();
			}
			catch (Exception e)
			{
				e.printStackTrace();
			}
		}
		return canCloseProgress;
	}

	@SuppressWarnings("unchecked")
	@Override
	protected void handleMessage(Message msg)
	{
		if(msg.what == HandlerStatus.REQUEST_RPIC0){
			if (msg.arg1 == HandlerStatus.HANDLE_OK) {
				Bitmap bitmap = (Bitmap) msg.obj;
				imagesLayout2.addSelectedImage(bitmap);
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "处理图片加载失败!");
			}
			checkIsNeedCloseProgress();
		}else if(msg.what == HandlerStatus.REQUEST_RPIC1){
			if (msg.arg1 == HandlerStatus.HANDLE_OK) {
				Bitmap bitmap = (Bitmap) msg.obj;
				imagesLayout2.addSelectedImage(bitmap);
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "处理图片加载失败!");
			}
			checkIsNeedCloseProgress();
		}else if(msg.what == HandlerStatus.REQUEST_RPIC2){
			if (msg.arg1 == HandlerStatus.HANDLE_OK) {
				Bitmap bitmap = (Bitmap) msg.obj;
				imagesLayout2.addSelectedImage(bitmap);
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "处理图片加载失败!");
			}
			checkIsNeedCloseProgress();
		}else if(msg.what == HandlerStatus.REQUEST_PIC0){
			if (msg.arg1 == HandlerStatus.HANDLE_OK) {
				Bitmap bitmap = (Bitmap) msg.obj;
				imagesLayout1.addSelectedImage(bitmap);
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "案卷图片加载失败!");
			}
			checkIsNeedCloseProgress();
		}else if(msg.what == HandlerStatus.REQUEST_PIC1){
			if (msg.arg1 == HandlerStatus.HANDLE_OK) {
				Bitmap bitmap = (Bitmap) msg.obj;
				imagesLayout1.addSelectedImage(bitmap);
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "案卷图片加载失败!");
			}
			checkIsNeedCloseProgress();
		}else if(msg.what == HandlerStatus.REQUEST_PIC2){
			if (msg.arg1 == HandlerStatus.HANDLE_OK) {
				Bitmap bitmap = (Bitmap) msg.obj;
				imagesLayout1.addSelectedImage(bitmap);
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "案卷图片加载失败!");
			}
			checkIsNeedCloseProgress();
		}else if (msg.what == HandlerStatus.SUBMIT_PICTURE0)
		{
			threadList.get(THREAD_SUBMIT_PICTURE0).interrupt();
			if (msg.arg1 == HandlerStatus.HANDLE_OK)
			{
//				Msg.showInfo(FrmProblemReCheckDetail.this, "图片上传成功!");
				finishActivity(checkIsNeedCloseProgress());
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "上传图片失败!");
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_ERROR)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "上传图片时出现错误!");
			}
			checkIsNeedCloseProgress();
		}
		else if(msg.what ==HandlerStatus.REQUEST_DETAIL){
			if (msg.arg1 == HandlerStatus.HANDLE_OK) {
				casejson = (JSONObject) msg.obj;
				try
				{
					txtcasenum.setText(casejson.getString("caseid"));
					txttime.setText(casejson.getString("nodeLimittime"));
					txtcasetype.setText(casejson.getString("eorcName"));
					txtcaselclass.setText(casejson.getString("casetypeName"));
					txtcasesclass.setText(casejson.getString("casetypeDetailName"));
                    txtshequ.setText(casejson.getString("communityName"));
					txtaddress .setText(casejson.getString("fieldintro"));
					txtdetail.setText(casejson.getString("description"));
					txtcheck.setText(casejson.getString("processRemarks"));
					nowstate = casejson.getString("caseState");
					processId = casejson.getString("processId");
					longitude = casejson.getString("lng");
					latitude = casejson.getString("lat");

					String fileIdVerify = casejson.getString("fileIdVerify").replace(" ", "").replace("\\","/");
					List<String> list = Arrays.asList(fileIdVerify.split(","));
					if(!fileIdVerify.equals("")){
						initpic(list);
					}else {
						mainLayout1.setVisibility(View.GONE);
					}
					String fileIdVerify1 = casejson.getString("fileIdProcess").replace(" ", "").replace("\\","/");
					List<String> list1 = Arrays.asList(fileIdVerify1.split(","));
					if(!fileIdVerify1.equals("")){
						initpic1(list1);
					}else {
						mainLayout2.setVisibility(View.GONE);
					}


					initspin();
				}catch (JSONException e){
					e.printStackTrace();
				}
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "获取案卷详情失败!");
			}
			else
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "获取案卷详情时出现错误!");
			}
			checkIsNeedCloseProgress();
		}else if (msg.what == HandlerStatus.REQUEST_SPINSTATE)
		{

			if (msg.arg1 == HandlerStatus.HANDLE_OK)
			{
				try {
					List<String> data_list = (List<String>) msg.obj;
					ArrayAdapter<String> arr_adapter = new ArrayAdapter<String>(FrmProblemReCheckDetail.this,
							android.R.layout.simple_spinner_item, data_list);
					arr_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
					spinCheckResult.setAdapter(arr_adapter);
					arr_adapter.notifyDataSetChanged();
					spinCheckResult.setSelection(0,true);
				}catch (Exception e){
					e.printStackTrace();
				}
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "获取核查情况信息失败!");
			}
			else
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "获取核查情况信息时出现错误!");
			}
			checkIsNeedCloseProgress();
		}else if (msg.what == HandlerStatus.REQUEST_SUBMITCHECK)
		{
			threadList.get(THREAD_SUBMIT_FIELD).interrupt();
			if (msg.arg1 == HandlerStatus.HANDLE_OK)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "上报成功!");
				finishActivity(checkIsNeedCloseProgress());
			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "案卷核查失败!");
			}
			else
			{
				Msg.showInfo(FrmProblemReCheckDetail.this, "案卷核查时出现错误!");
			}
			checkIsNeedCloseProgress();
		}
	}

	private void initspin(){
		thread = new BaseThread(baseHandler)
		{
			@Override
			public void runThread()
			{
				Message msg = thread.obtainMessage();
				if (msg != null)
				{
					msg.what = HandlerStatus.REQUEST_SPINSTATE;
					ResponseResult< List<Map<String,String>>> typelistResult = null;
					List<String> data_list = new ArrayList<String>();
					try
					{
						typelistResult = Request.getRequest().nextNodes(nowstate);
						nextstate = typelistResult.getResultObj();
						if (typelistResult.isSuccess())
						{
							for (int i=0;i<nextstate.size();i++)
								data_list.add(nextstate.get(i).get("nextOperation"));
							msg.obj = data_list;
							msg.arg1 = HandlerStatus.HANDLE_OK;
						}
						else if (typelistResult.isHadError())
						{
							msg.arg1 = HandlerStatus.HANDLE_ERROR;
						}
						else
						{
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}
					}
					catch (Exception e)
					{
						msg.arg1 = HandlerStatus.HANDLE_ERROR;
						msg.obj = e.getMessage();
						e.printStackTrace();
					}
					thread.sendMessage(msg);
				}
			}
		};
		thread.start();
	}
	private void initpic1(final List<String> list){
		int length = list.size();
		if(length>3) length = 3;
		for(int i=0; i<length; i++) {
			final int handlerStatusId = HandlerStatus.REQUEST_RPIC0 + i;
			final int nowIndex = i;
			thread = new BaseThread(baseHandler)
			{
				@Override
				public void runThread()
				{
					final Message msg = thread.obtainMessage();
					msg.what = handlerStatusId;
					if (msg != null)
					{
						try {
							String urlStr = ApplicationMain.getInstance().getCgtConfig().getRequestUrl()+"/static/"+list.get(nowIndex);
							URL url = new URL(urlStr);
							HttpURLConnection conn = (HttpURLConnection) url.openConnection();
							conn.setConnectTimeout(5000);
							conn.setRequestProperty("token",ApplicationMain.getInstance().getCgtConfig().gettokenStr());
							conn.setRequestMethod("GET");
							if (conn.getResponseCode() == 200) {
								InputStream inputStream = conn.getInputStream();
								Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
								if(bitmap!=null){
									msg.obj = bitmap;
									msg.arg1 = HandlerStatus.HANDLE_OK;
								}
							}
						}catch (MalformedURLException e){
							e.printStackTrace();
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}catch (IOException e){
							e.printStackTrace();
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}
						this.sendMessage(msg);
					}
				}
			};
			thread.start();
		}
	}

	private void initpic(final List<String> list){
		int length = list.size();
		if(length>3) length = 3;
		for(int i=0; i<length; i++) {
			final int handlerStatusId = HandlerStatus.REQUEST_PIC0 + i;
			final int nowIndex = i;
			thread = new BaseThread(baseHandler)
			{
				@Override
				public void runThread()
				{
					final Message msg = thread.obtainMessage();
					msg.what = handlerStatusId;
					if (msg != null)
					{
						try {
							String urlStr = ApplicationMain.getInstance().getCgtConfig().getRequestUrl()+"/static/"+list.get(nowIndex);
							URL url = new URL(urlStr);
							HttpURLConnection conn = (HttpURLConnection) url.openConnection();
							conn.setConnectTimeout(5000);
							conn.setRequestProperty("token",ApplicationMain.getInstance().getCgtConfig().gettokenStr());
							conn.setRequestMethod("GET");
							if (conn.getResponseCode() == 200) {
								InputStream inputStream = conn.getInputStream();
								Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
								if(bitmap!=null){
									msg.obj = bitmap;
									msg.arg1 = HandlerStatus.HANDLE_OK;
								}
							}
						}catch (MalformedURLException e){
							e.printStackTrace();
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}catch (IOException e){
							e.printStackTrace();
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}
						this.sendMessage(msg);
					}
				}
			};
			thread.start();
		}
	}
	private void initview(){
		thread = new BaseThread(baseHandler)
		{
			@Override
			public void runThread()
			{
				final Message msg = thread.obtainMessage();
				if (msg != null)
				{
					msg.what = HandlerStatus.REQUEST_DETAIL;
					Bundle bundle=getIntent().getExtras();
					id = bundle.getLong("id");
					ApiClent.caseDetail(id, new ApiClent.ClientCallback() {
						@Override
						public void onSuccess(Object data)
						{
							try {
								JSONObject jsonObject = new JSONObject(data.toString());
								JSONObject json = jsonObject.getJSONArray("data").getJSONObject(0);
								msg.obj = json;
								msg.arg1 = HandlerStatus.HANDLE_OK;
							} catch (JSONException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
								Log.i("list_error", e.getMessage());
								msg.arg1 = HandlerStatus.HANDLE_FAIL;
							}
						}
						@Override
						public void onFailure(String message) {
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}
						@Override
						public void onError(Exception e) {
							msg.arg1 = HandlerStatus.HANDLE_ERROR;
						}
					});
					this.sendMessage(msg);
				}
			}
		};
		thread.start();
	}

	private View.OnClickListener btnOnClick = new View.OnClickListener()
	{
		@Override
		public void onClick(View v){
			switch (v.getId()) {
				default:
					break;
			}
		}
	};

	/**
	 //	 * @param imageReturnedIntent
	 * @return
	 */
	private Bitmap getImageFromCameraIntent(Intent imageReturnedIntent)
	{
		Bitmap bitmap = BitmapConvert.resizeBitmap(ApplicationMain
				.getInstance().getImageTempPath());
		if (bitmap == null)
		{
			Msg.showInfo(this, "未能获取所拍摄的图片!");
		}
		return bitmap;
	}

	/**
	 * @param imageReturnedIntent
	 * @return
	 */
	private Bitmap getImageFromReturnIntent(Intent imageReturnedIntent)
	{
		Bitmap yourSelectedImage = null;
		try
		{
			String filePath = "";
			Uri selectedImage = imageReturnedIntent.getData();
			String[] filePathColumn = { MediaStore.Images.Media.DATA };

			Cursor cursor = getContentResolver().query(selectedImage,
					filePathColumn, null, null, null);
			if (cursor != null)
			{
				cursor.moveToFirst();
				int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
				filePath = cursor.getString(columnIndex);
				cursor.close();
			}
			else
			{
				filePath = selectedImage.getPath();
			}
			yourSelectedImage = BitmapConvert.resizeBitmap(filePath);

		}
		catch (Exception e)
		{
			Msg.showInfo(this, "未找到图片!");
		}
		return yourSelectedImage;
	}


	@Override
	protected void onCancelProgress(DialogInterface arg0)
	{
		for (BaseThread thread : threadList.values())
		{
			if (thread != null)
			{
				thread.interrupt();
			}
		}
		threadList.clear();
	}

	private void finishActivity(boolean canClose)
	{
		this.finishActivity(canClose, false);
	}

	private void finishActivity(boolean canClose, boolean needCacheAudio)
	{
		if (canClose)
		{
			if (imagesLayout.getSelectedImageCount() > 0)
			{
				try
				{
					Request.getRequest().saveImageCache(imagesLayout.getSelectedImages(), eventId, null);
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
			}
			setResult(0x007);
			FrmProblemReCheckDetail.this.finish();
		}
	}
}