xuxiuxi
2017-07-10 d6119c2d7fe2f802dd224d77bf2d95eeeedb4526
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
@@ -1,44 +1,79 @@
package cn.com.basic.face.fragment;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Base64;
import android.util.DisplayMetrics;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.bit.rfid.RFIDReader;
import com.bit.rfid.ReaderExtra;
import com.bsk.zhangbo.demoforbsk.R;
import cn.com.basic.face.adapter.SurveillanceFragment;
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.base.BaseFragment;
import cn.com.basic.face.base.PictureTaker;
import cn.com.basic.face.dialog.SurveillancePhotoDialog;
import cn.com.basic.face.discern.common.CommonVariables;
import cn.com.basic.face.discern.common.ResultBean;
import cn.com.basic.face.discern.entity.Register;
import cn.com.basic.face.discern.query.item.CheckInQueryItem;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.service.DictionaryMng;
import cn.com.basic.face.service.RegisterMng;
import cn.com.basic.face.service.SurveillanceMng;
import cn.com.basic.face.util.BitmapUtil;
import cn.com.basic.face.util.Constant;
import cn.com.basic.face.util.FileUtil;
import static cn.com.basic.face.util.FileUtil.*;
import cn.com.basic.face.util.IdCard;
import cn.com.basic.face.util.IdCardReaderThread;
import cn.com.basic.face.util.NativeImg;
import cn.com.basic.face.util.OkClickedListener;
import cn.com.basic.face.util.AppApi;
import cn.com.basic.face.dialog.DateSelectDialog;
import cn.com.basic.face.dialog.CountryDialog;
import cn.com.basic.face.util.PostData;
import cn.com.basic.face.util.Uploader;
import cn.com.basic.face.widget.register.RegisterRightFieldLabelView;
import cn.com.basic.face.widget.register.RegisterRightFieldTextView;
import cn.com.basic.face.dialog.SelectDialog;
import com.facebook.drawee.view.SimpleDraweeView;
import com.ivsign.android.IDCReader.IDCReaderSDK;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import org.xutils.http.RequestParams;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -67,36 +102,46 @@
    private RegisterRightFieldTextView fragment_register_company;
    @ViewInject(R.id.fragment_register_remark)
    private RegisterRightFieldTextView fragment_register_remark;
    @ViewInject(R.id.fragment_register_choose_photo)
    private ImageView fragment_register_choose_photo;
    @ViewInject(R.id.fragment_register_update_photo)
    private ImageView fragment_register_update_photo;
    @ViewInject(R.id.fragment_register_surveillance_photo)
    private ImageView fragment_register_surveillance_photo;
    @ViewInject(R.id.fragment_register_upload_custom_photo)
    private ImageView fragment_register_upload_custom_photo;
    @ViewInject(R.id.fragment_register_id_card_photo)
    private ImageView fragment_register_id_card_photo;
    @ViewInject(R.id.fragment_register_linear_layout)
    private LinearLayout fragment_register_linear_layout;
    @ViewInject(R.id.fragment_register_choose_photo_placeholder_image)
    private ImageView fragment_register_choose_photo_placeholder_image;
    @ViewInject(R.id.fragment_register_update_photo_placeholder_image)
    private ImageView fragment_register_update_photo_placeholder_image;
    @ViewInject(R.id.fragment_register_surveillance_photo_placeholder_image)
    private ImageView fragment_register_surveillance_photo_placeholder_image;
    @ViewInject(R.id.fragment_register_upload_custom_photo_placeholder_image)
    private ImageView fragment_register_upload_custom_photo_placeholder_image;
    @ViewInject(R.id.fragment_register_id_card_photo_placeholder_image)
    private ImageView fragment_register_id_card_photo_placeholder_image;
    @ViewInject(R.id.fragment_register_choose_photo_placeholder_text_view)
    private TextView fragment_register_choose_photo_placeholder_text_view;
    @ViewInject(R.id.fragment_register_update_photo_placeholder_text_view)
    private TextView fragment_register_update_photo_placeholder_text_view;
    @ViewInject(R.id.fragment_register_surveillance_photo_placeholder_text_view)
    private TextView fragment_register_surveillance_photo_placeholder_text_view;
    @ViewInject(R.id.fragment_register_upload_custom_photo_placeholder_text_view)
    private TextView fragment_register_upload_custom_photo_placeholder_text_view;
    @ViewInject(R.id.fragment_register_id_card_photo_placeholder_text_view)
    private TextView fragment_register_id_card_photo_placeholder_text_view;
    private static final int fragment_register_choose_photo_ = 1;
    private static final int fragment_register_update_photo_ = 2;
    private static final int fragment_register_surveillance_photo_ = 1;
    private static final int fragment_register_upload_custom_photo_ = 2;
    private static final int fragment_register_id_card_photo_ = 3;
    private Bitmap fragment_register_choose_photo_img;
    private Bitmap fragment_register_update_photo_img;
    private Bitmap fragment_register_surveillance_photo_img;
    private Bitmap fragment_register_upload_custom_photo_img;
    private Bitmap fragment_register_id_card_photo_img;
    private SurveillanceQueryItem surveillanceQueryItem_selectPhoto;
    private SurveillanceQueryItem surveillanceQueryItem_uploadPhoto;
    public static long selectedSurveillancePhotoId = -1;
    public static long selectedCustomPhotoId = -1;
    private File idCardImageCaptureFile = null;
    private IdCardReaderThread idCardReaderThread = null;
    private String idCardHeadPath = "";
    private static RegisterFragment instance = new RegisterFragment();
@@ -108,155 +153,206 @@
        return R.layout.fragment_register;
    }
    @OnClick(R.id.fragment_register_save)
    public void fragment_register_save_click(View view) { }
    @OnClick(R.id.fragment_register_add)
    public void fragment_register_add_click(View v) {
    public void fragment_register_add_click(View view) {
        resetForm();
    }
    @OnClick(R.id.fragment_register_save)
    public void fragment_register_save_click(View v) {
        RequestParams params = new RequestParams();
//        String name = fragment_register_name.getValue();
//        if (name.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "姓名不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_name.requestFocus();
//            return;
//        }
//        String phone = fragment_register_phone.getValue();
//        if (phone.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "电话不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_phone.requestFocus();
//            return;
//        }
//        String gender = fragment_register_gender.getValue();
//        if (gender.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "性别不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_gender.callOnClick();
//            return;
//        }
//        String id_class = fragment_register_id_class.getValue();
//        if (id_class.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "证件类型不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_id_class.callOnClick();
//            return;
//        }
//        String country = fragment_register_country.getValue();
//        if (country.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "国籍不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_country.callOnClick();
//            return;
//        }
//        String id_num = fragment_register_id_num.getValue();
//        if (id_num.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "证件编号不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_id_num.requestFocus();
//            return;
//        }
//        String birthday = fragment_register_birthday.getValue();
//        if (birthday.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "出生日期不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_birthday.callOnClick();
//            return;
//        }
//        String company = fragment_register_company.getValue();
//        if (company.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "公司名称不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_company.requestFocus();
//            return;
//        }
//        String remark = fragment_register_remark.getValue();
//        if (remark.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "备注不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_remark.requestFocus();
//            return;
//        }
//        String visitor_class = fragment_register_visitor_class.getValue();
//        if (visitor_class.trim().length() <= 0) {
//            Toast.makeText(MainActivity.getInstance(), "访客类型不能为空", Toast.LENGTH_SHORT).show();
//            fragment_register_visitor_class.callOnClick();
//            return;
//        }
//        params.addBodyParameter(Register.FieldNames.username, name);
//        params.addBodyParameter(Register.FieldNames.mobilePhone, phone);
//        params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender));
//        params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class));
//        params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country));
//        params.addBodyParameter(Register.FieldNames.identifyNum, id_num);
//        params.addBodyParameter(Register.FieldNames.companyId, company);
//        params.addBodyParameter(Register.FieldNames.birthday, birthday);
        if (fragment_register_choose_photo_img != null) {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            fragment_register_choose_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
            byte[] imageBytes = byteArrayOutputStream.toByteArray();
            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
            params.addBodyParameter("choosePhoto", encodedImage);
        String name = fragment_register_name.getValue();
        if (name.trim().length() <= 0) {
            Toast.makeText(MainActivity.getInstance(), "姓名不能为空", Toast.LENGTH_SHORT).show();
            fragment_register_name.requestFocus();
            return;
        }
        String phone = fragment_register_phone.getValue();
        if (phone.trim().length() <= 0) {
            Toast.makeText(MainActivity.getInstance(), "电话不能为空", Toast.LENGTH_SHORT).show();
            fragment_register_phone.requestFocus();
            return;
        }
        String company = fragment_register_company.getValue();
        if (company.trim().length() <= 0) {
            Toast.makeText(MainActivity.getInstance(), "公司名称不能为空", Toast.LENGTH_SHORT).show();
            fragment_register_company.requestFocus();
            return;
        }
        String visitor_type = fragment_register_visitor_class.getValue();
        if (visitor_type.trim().length() <= 0) {
            Toast.makeText(MainActivity.getInstance(), "访客类型不能为空", Toast.LENGTH_SHORT).show();
            fragment_register_visitor_class.callOnClick();
            return;
        }
        if (fragment_register_update_photo_img != null) {
        params.addBodyParameter(Register.FieldNames.username, name);
        params.addBodyParameter(Register.FieldNames.mobilePhone, phone);
        params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(fragment_register_gender.getValue()));
        params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(fragment_register_id_class.getValue()));
        params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(fragment_register_country.getValue()));
        params.addBodyParameter(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_type));
        params.addBodyParameter(Register.FieldNames.identifyNum, fragment_register_id_num.getValue());
        params.addBodyParameter(Register.FieldNames.companyId, company);
        params.addBodyParameter(Register.FieldNames.birthday, fragment_register_birthday.getValue());
        params.addBodyParameter(Register.FieldNames.remark, fragment_register_remark.getValue());
        if (surveillanceQueryItem_selectPhoto != null) {
            params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth());
            params.addBodyParameter("height", surveillanceQueryItem_selectPhoto.getHeight());
            fragment_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap();
            NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg();
            byte[] imageBytes = new byte[nativeImg.size];
            for (int i = 0; i < nativeImg.size; i++) {
                imageBytes[i] = nativeImg.image[i];
            }
            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", imageBytes));
        } else {
            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", new byte[]{}));
        }
        if (fragment_register_surveillance_photo_img != null) {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            fragment_register_update_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
            fragment_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
            byte[] imageBytes = byteArrayOutputStream.toByteArray();
            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
            params.addBodyParameter("uploadPhoto", encodedImage);
            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", imageBytes));
        } else {
            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", new byte[]{}));
        }
        if (fragment_register_upload_custom_photo_img != null) {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            fragment_register_upload_custom_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
            byte[] imageBytes = byteArrayOutputStream.toByteArray();
            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", imageBytes));
        } else {
            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", new byte[]{}));
        }
        if (fragment_register_id_card_photo_img != null) {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            fragment_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
            byte[] imageBytes = byteArrayOutputStream.toByteArray();
            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
            params.addBodyParameter("idPhoto", encodedImage);
        }
        RegisterMng.getInstance().add(params);
            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", imageBytes));
        } else {
            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", new byte[]{}));
        }
        RegisterMng.getInstance().add(params, idCardHeadPath);
    }
    public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) {
        surveillanceQueryItem_selectPhoto = item;
        fragment_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
        fragment_register_surveillance_photo_img = item.getBitmap();
        fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
        fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
    }
    public void set_fragment_register_upload_custom_photo(SurveillanceQueryItem item) {
        surveillanceQueryItem_uploadPhoto = item;
        fragment_register_upload_custom_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
        fragment_register_upload_custom_photo_img = item.getBitmap();
        fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
        fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == fragment_register_choose_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
        if (requestCode == fragment_register_surveillance_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
            Uri uri = data.getData();
            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
                fragment_register_choose_photo.setImageBitmap(bitmap);
                fragment_register_choose_photo_img = bitmap;
                fragment_register_surveillance_photo.setImageBitmap(bitmap);
                fragment_register_surveillance_photo_img = bitmap;
                fragment_register_choose_photo_placeholder_image.setVisibility(View.INVISIBLE);
                fragment_register_choose_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
                fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
                fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (requestCode == fragment_register_update_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
        if (requestCode == fragment_register_upload_custom_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
            Uri uri = data.getData();
            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
                fragment_register_update_photo.setImageBitmap(bitmap);
                fragment_register_update_photo_img = bitmap;
                fragment_register_upload_custom_photo.setImageBitmap(bitmap);
                fragment_register_update_photo_placeholder_image.setVisibility(View.INVISIBLE);
                fragment_register_update_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
                fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
                fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
                List<Bitmap> bitmapList = new ArrayList<>();
                bitmapList.add(0, bitmap);
                List<SurveillanceQueryItem> bitmapList = new ArrayList<>();
                SurveillanceQueryItem item = new SurveillanceQueryItem();
                item.setWidth(bitmap.getWidth()+"");
                item.setHeight(bitmap.getHeight()+"");
                item.setLocalUri(uri);
                SurveillanceMng.getInstance().addBitmap(bitmapList, null, 0);
                setSurveillanceQueryItem_selectPhoto(item);
                bitmapList.add(item);
                bitmapList.add(item);
                bitmapList.add(item);
                SurveillanceMng.getInstance().addBitmap(bitmapList, null, 0, CommonVariables.Camera.IN);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (requestCode == fragment_register_id_card_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
            Uri uri = data.getData();
        if (requestCode == fragment_register_id_card_photo_ && resultCode == Activity.RESULT_OK) {
            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
                fragment_register_id_card_photo.setImageBitmap(bitmap);
                fragment_register_id_card_photo_img = bitmap;
                if (data != null && data.getData() != null) {
                    Uri uri = data.getData();
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
                    fragment_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
                            (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
                    fragment_register_id_card_photo_img = bitmap;
                    MainActivity.getInstance().getContentResolver().delete(uri, null, null);
                fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
                fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
                    fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
                    fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
                } else if (idCardImageCaptureFile != null){
                    if (idCardImageCaptureFile.exists()) {
                        BitmapFactory.Options options = new BitmapFactory.Options();
                        options.inJustDecodeBounds = true;
                        BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
                        int width = options.outWidth;
                        int height = options.outHeight;
                        WindowManager wm = (WindowManager) MainActivity.getInstance().getSystemService(Context.WINDOW_SERVICE);
                        int screenWidth = wm.getDefaultDisplay().getWidth();
                        int screenHeight = wm.getDefaultDisplay().getHeight();
                        int dx = width / screenWidth;
                        int dy = height / screenHeight;
                        int scale = 1;
                        if (dx > dy && dy >= 1) {
                            scale = dx;
                        }
                        if (dy > dx && dx >= 1) {
                            scale = dy;
                        }
                        options.inSampleSize = scale;
                        options.inJustDecodeBounds = false;
                        Bitmap bitmap = BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
                        fragment_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
                                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
                        fragment_register_id_card_photo_img = bitmap;
                        MainActivity.getInstance().getContentResolver().delete(Uri.fromFile(idCardImageCaptureFile), null, null);
                        fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
                        fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
                        idCardImageCaptureFile = null;
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -264,62 +360,97 @@
    }
    public void resetForm() {
        selectedCustomPhotoId = -1;
        selectedSurveillancePhotoId = -1;
        idCardHeadPath = "";
        fragment_register_name.setValue("徐修溪"+Math.random());
        fragment_register_phone.setValue("13691348767");
        fragment_register_id_num.setValue("36041419292222222");
        fragment_register_birthday.setValue("1985-08-12");
        fragment_register_company.setValue("贝思科");
        fragment_register_remark.setValue("备注");
        fragment_register_name.setValue("");
        fragment_register_phone.setValue("");
        fragment_register_gender.setValue("");
        fragment_register_id_class.setValue("");
        fragment_register_country.setValue("");
        fragment_register_id_num.setValue("");
        fragment_register_birthday.setValue("");
        fragment_register_company.setValue("");
        fragment_register_remark.setValue("");
        fragment_register_visitor_class.setValue("");
        fragment_register_gender.setValue("男");
        fragment_register_id_class.setValue("身份证");
        fragment_register_country.setValue("中国");
        fragment_register_visitor_class.setValue("普通访客");
        fragment_register_surveillance_photo_img = null;
        fragment_register_upload_custom_photo_img = null;
        fragment_register_id_card_photo_img = null;
        fragment_register_surveillance_photo.setImageBitmap(null);
        fragment_register_upload_custom_photo.setImageBitmap(null);
        fragment_register_id_card_photo.setImageBitmap(null);
        fragment_register_surveillance_photo_placeholder_image.setVisibility(View.VISIBLE);
        fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.VISIBLE);
        fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.VISIBLE);
        fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.VISIBLE);
        fragment_register_id_card_photo_placeholder_image.setVisibility(View.VISIBLE);
        fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.VISIBLE);
        this.surveillanceQueryItem_selectPhoto = null;
        this.surveillanceQueryItem_uploadPhoto = null;
    }
    @OnClick(R.id.fragment_register_country)
    //@OnClick(R.id.fragment_register_country)
    public void fragment_register_country_click(View view) {
        new CountryDialog(fragment_register_linear_layout, new OkClickedListener() {
            public void onSelected(String value) {
                fragment_register_country.setValue(value);
            }
        });
        },fragment_register_country.getValue());
    }
    @OnClick(R.id.fragment_register_gender)
    //@OnClick(R.id.fragment_register_gender)
    public void fragment_register_gender_click(View view) {
        new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.GENDER, new OkClickedListener() {
            public void onSelected(String value) {
                fragment_register_gender.setValue(value);
            }
        });
        }, fragment_register_gender.getValue());
    }
    @OnClick(R.id.fragment_register_birthday)
    //@OnClick(R.id.fragment_register_birthday)
    public void fragment_register_birthday_click(View view) {
        String birthdayStr = fragment_register_birthday.getValue();
        Date birthday = new Date();
        if (birthdayStr != null && !"".equals(birthdayStr)) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            try {
                birthday = sdf.parse(birthdayStr);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        new DateSelectDialog(
                new OkClickedListener(){
                    public void onSelected(String value) {
                        fragment_register_birthday.setValue(value);
                    }
                },new Date());
                }, birthday);
    }
    @OnClick(R.id.fragment_register_visitor_class)
    //@OnClick(R.id.fragment_register_visitor_class)
    public void fragment_register_visitor_class_click(View view) {
        new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.VISITOR_TYPE, new OkClickedListener() {
            public void onSelected(String value) {
                fragment_register_visitor_class.setValue(value);
            }
        });
        }, fragment_register_visitor_class.getValue());
    }
    @OnClick(R.id.fragment_register_id_class)
    //@OnClick(R.id.fragment_register_id_class)
    public void fragment_register_id_class_click(View view) {
        new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
            public void onSelected(String value) {
                fragment_register_id_class.setValue(value);
            }
        });
        }, fragment_register_id_class.getValue());
    }
    @OnClick(R.id.fragment_register_back)
@@ -327,45 +458,94 @@
        MainActivity.selectPage(0);
    }
    @OnClick(R.id.fragment_register_choose_photo)
    public void fragment_register_choose_photo_click(View view) {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "选择图片"), fragment_register_choose_photo_);
    @OnClick(R.id.fragment_register_surveillance_photo)
    public void fragment_register_surveillance_photo_click(View view) {
        SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.SELECT_PHOTO;
        new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
            public void onSelected(String value) {
            }
        }, selectedSurveillancePhotoId);
    }
    @OnClick(R.id.fragment_register_update_photo)
    public void fragment_register_update__photo_click(View view) {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "选择图片"), fragment_register_update_photo_);
    @OnClick(R.id.fragment_register_upload_custom_photo)
    public void fragment_register_upload_custom_photo_click(View view) {
        SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.UPLOAD_PHOTO;
        new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
            public void onSelected(String value) {
            }
        }, selectedCustomPhotoId);
    }
    @OnClick(R.id.fragment_register_id_card_photo)
    public void fragment_register_id_card_photo_click(View view) {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "选择图片"), fragment_register_id_card_photo_);
        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
        idCardImageCaptureFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(idCardImageCaptureFile));
        startActivityForResult(intent, fragment_register_id_card_photo_);
    }
    @Override
    public void onClick(View v) {}
    public void setRegisterInfo(CheckInQueryItem item) {
        fragment_register_choose_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE + item.getSurveillancePhoto()));
        fragment_register_surveillance_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE + item.getSurveillancePhoto()));
    }
    public ImageView get_fragment_register_choose_photo() {
        return fragment_register_choose_photo;
        return fragment_register_surveillance_photo;
    }
    public void setChoosePhoto(Bitmap bitmap) {
        fragment_register_choose_photo.setImageBitmap(bitmap);
        fragment_register_choose_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
        fragment_register_choose_photo_placeholder_image.setVisibility(View.INVISIBLE);
        fragment_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
        fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
        fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
    }
    public void setSurveillanceQueryItem_selectPhoto(SurveillanceQueryItem item) {
        this.surveillanceQueryItem_selectPhoto = item;
    }
    @Override
    protected void initData() {
        resetForm();
        idCardReaderThread = new IdCardReaderThread();
        idCardReaderThread.start();
    }
    public void fillFormWithIdCard(IdCard idCard) {
        try {
            fragment_register_name.setValue(idCard.getName());
            fragment_register_id_num.setValue(idCard.getCardNumber());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
            fragment_register_birthday.setValue(sdf1.format(sdf.parse(idCard.getBirthday())));
            fragment_register_gender.setValue(idCard.getGender());
            fragment_register_id_class.setValue("身份证");
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inPreferredConfig = Bitmap.Config.ARGB_8888;
            Bitmap bitmap = BitmapFactory.decodeFile(idCard.getHeadPath(), options);
            fragment_register_id_card_photo.setImageBitmap(bitmap);
            fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
            fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
            idCardHeadPath = idCard.getHeadPath();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private boolean registerFragmentVisible = false;
    @Override
    public void setMenuVisibility(boolean menuVisible) {
        super.setMenuVisibility(menuVisible);
        registerFragmentVisible = menuVisible;
    }
}