package cn.com.basic.face.fragment; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.provider.MediaStore; import android.util.Base64; import android.util.DisplayMetrics; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; 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.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.Constant; 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.widget.register.RegisterRightFieldLabelView; import cn.com.basic.face.widget.register.RegisterRightFieldTextView; import cn.com.basic.face.dialog.SelectDialog; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import org.xutils.http.RequestParams; import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import cn.com.basic.face.base.MainActivity; public class RegisterFragment extends BaseFragment implements View.OnClickListener{ @ViewInject(R.id.fragment_register_name) private RegisterRightFieldTextView fragment_register_name; @ViewInject(R.id.fragment_register_gender) private RegisterRightFieldLabelView fragment_register_gender; @ViewInject(R.id.fragment_register_country) private RegisterRightFieldLabelView fragment_register_country; @ViewInject(R.id.fragment_register_birthday) private RegisterRightFieldLabelView fragment_register_birthday; @ViewInject(R.id.fragment_register_visitor_class) private RegisterRightFieldLabelView fragment_register_visitor_class; @ViewInject(R.id.fragment_register_phone) private RegisterRightFieldTextView fragment_register_phone; @ViewInject(R.id.fragment_register_id_class) private RegisterRightFieldLabelView fragment_register_id_class; @ViewInject(R.id.fragment_register_id_num) private RegisterRightFieldTextView fragment_register_id_num; @ViewInject(R.id.fragment_register_company) private RegisterRightFieldTextView fragment_register_company; @ViewInject(R.id.fragment_register_remark) private RegisterRightFieldTextView fragment_register_remark; @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_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_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_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_surveillance_photo_img; private Bitmap fragment_register_upload_custom_photo_img; private Bitmap fragment_register_id_card_photo_img; private SurveillanceQueryItem surveillanceQueryItem; private static RegisterFragment instance = new RegisterFragment(); public static RegisterFragment getInstance() { return instance; } @Override protected int getLayoutId() { return R.layout.fragment_register; } @OnClick(R.id.fragment_register_add) 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(); DisplayMetrics metrics = getActivity().getResources().getDisplayMetrics(); int h1 = fragment_register_surveillance_photo.getHeight(); int h2 = fragment_register_upload_custom_photo.getHeight(); int h3 = fragment_register_id_card_photo.getHeight(); DisplayMetrics displayMetrics = BaseApplication.getInstance().getResources().getDisplayMetrics(); float dpHeight = displayMetrics.heightPixels / displayMetrics.density; float dpWidth = displayMetrics.widthPixels / displayMetrics.density; if (1==1) { //return; } 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 (surveillanceQueryItem != null) { params.addBodyParameter("width", surveillanceQueryItem.getWidth()); params.addBodyParameter("height", surveillanceQueryItem.getHeight()); fragment_register_surveillance_photo_img = surveillanceQueryItem.getBitmap(); params.addBodyParameter("base64Image", surveillanceQueryItem.getBase64Image()); } if (fragment_register_surveillance_photo_img != null) { ByteArrayOutputStream byteArrayOutputStream = new 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(Register.FieldNames.surveillancePhoto, encodedImage); } 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(); String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); params.addBodyParameter(Register.FieldNames.uploadCustomPhoto, encodedImage); } 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(Register.FieldNames.idCardPhoto, encodedImage); } RegisterMng.getInstance().add(params); } public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) { fragment_register_surveillance_photo.setImageBitmap(item.getBitmap()); 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) { fragment_register_upload_custom_photo.setImageBitmap(item.getBitmap()); 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_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_surveillance_photo.setImageBitmap(bitmap); fragment_register_surveillance_photo_img = bitmap; 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_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_upload_custom_photo.setImageBitmap(bitmap); //fragment_register_upload_custom_photo_img = bitmap; fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE); fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE); List bitmapList = new ArrayList<>(); SurveillanceQueryItem item = new SurveillanceQueryItem(); // item.setBitmap(bitmap); item.setWidth(bitmap.getWidth()+""); item.setHeight(bitmap.getHeight()+""); item.setLocalUri(uri); // ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); // bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); // byte[] imageBytes = byteArrayOutputStream.toByteArray(); // String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); // item.setBase64Image(encodedImage); setSurveillanceQueryItem(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(); try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri); fragment_register_id_card_photo.setImageBitmap(bitmap); 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); } catch (Exception e) { e.printStackTrace(); } } } public void resetForm() { fragment_register_name.setValue("徐修溪"+Math.random()); fragment_register_phone.setValue("13691348767"); fragment_register_gender.setValue("男"); fragment_register_id_class.setValue("身份证"); fragment_register_country.setValue("中国"); fragment_register_id_num.setValue("36041419292222222"); fragment_register_birthday.setValue("1985-08-12"); fragment_register_company.setValue("贝思科"); fragment_register_remark.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 = null; } @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); } }); } @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); } }); } @OnClick(R.id.fragment_register_birthday) public void fragment_register_birthday_click(View view) { new DateSelectDialog( new OkClickedListener(){ public void onSelected(String value) { fragment_register_birthday.setValue(value); } },new Date()); } @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); } }); } @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); } }); } @OnClick(R.id.fragment_register_back) public void fragment_register_back_click(View view) { MainActivity.selectPage(0); } @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) { } }); } @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) { } }); } @OnClick(R.id.fragment_register_id_card_photo) public void fragment_register_id_card_photo_click(View view) { Intent takePicture = new Intent(MainActivity.getInstance(), PictureTaker.class); startActivityForResult(takePicture, fragment_register_id_card_photo_); // Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // startActivityForResult(takePicture, fragment_register_id_card_photo_); } @Override public void onClick(View v) {} public void setRegisterInfo(CheckInQueryItem item) { fragment_register_surveillance_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE + item.getSurveillancePhoto())); } public ImageView get_fragment_register_choose_photo() { return fragment_register_surveillance_photo; } public void setChoosePhoto(Bitmap bitmap) { fragment_register_surveillance_photo.setImageBitmap(bitmap); fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE); fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE); } public void setSurveillanceQueryItem(SurveillanceQueryItem item) { this.surveillanceQueryItem = item; } @Override protected void initData() { resetForm(); } }