From 218adceefdf203a7a25603364a3442957768d84c Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 23 六月 2017 13:39:14 +0800
Subject: [PATCH]
---
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java | 252 +++++++++++++++++++++++++++++++++++--------------
1 files changed, 179 insertions(+), 73 deletions(-)
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
index 3e27f9d..c11daf8 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
@@ -1,18 +1,26 @@
package cn.com.basic.face.fragment;
import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
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.bsk.zhangbo.demoforbsk.R;
import cn.com.basic.face.adapter.SurveillanceFragment;
@@ -21,18 +29,23 @@
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.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;
@@ -43,6 +56,8 @@
import org.xutils.http.RequestParams;
import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -100,7 +115,13 @@
private Bitmap fragment_register_upload_custom_photo_img;
private Bitmap fragment_register_id_card_photo_img;
- private SurveillanceQueryItem surveillanceQueryItem;
+ private SurveillanceQueryItem surveillanceQueryItem_selectPhoto;
+ private SurveillanceQueryItem surveillanceQueryItem_uploadPhoto;
+
+ public static long selectedSurveillancePhotoId = -1;
+ public static long selectedCustomPhotoId = -1;
+
+ private File idCardImageCaptureFile = null;
private static RegisterFragment instance = new RegisterFragment();
@@ -119,20 +140,12 @@
@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;
+ if (!BaseApplication.deviceAvailable) {
+ return;
}
+
+ RequestParams params = new RequestParams();
String name = fragment_register_name.getValue();
if (name.trim().length() <= 0) {
@@ -194,63 +207,101 @@
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);
+ final PostData pd = new PostData();
- 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());
+ pd.addValue(Register.FieldNames.username, name);
+ pd.addValue(Register.FieldNames.mobilePhone, phone);
+ pd.addValue(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender));
+ pd.addValue(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class));
+ pd.addValue(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country));
+ pd.addValue(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_class));
+ pd.addValue(Register.FieldNames.identifyNum, id_num);
+ pd.addValue(Register.FieldNames.companyId, company);
+ pd.addValue(Register.FieldNames.birthday, birthday);
+
+
+ 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];
+ }
+ pd.addData("rawSurveillancePhoto", "application/octet-stream", imageBytes);
}
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);
+ pd.addData(Register.FieldNames.surveillancePhoto, "application/octet-stream", imageBytes);
}
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);
+ pd.addData(Register.FieldNames.uploadCustomPhoto, "application/octet-stream", imageBytes);
}
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);
+ pd.addData(Register.FieldNames.idCardPhoto, "application/octet-stream", imageBytes);
}
- RegisterMng.getInstance().add(params);
+
+ class ConnectionTask extends AsyncTask<String, Void, String> {
+ private String json = "";
+ @Override
+ protected String doInBackground(String... urls) {
+ try {
+ Uploader uploader = new Uploader("", AppApi.BASE_URL + AppApi.REGISTER_ADD);
+ json = uploader.upload("", pd);
+ return json;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ protected void onPostExecute(String result) {
+ try {
+ Toast.makeText(BaseApplication.getInstance(),"娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show();
+ //RegisterFragment.getInstance().resetForm();
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+ ConnectionTask task = new ConnectionTask();
+ String[] params1 = new String[2];
+ task.execute(params1);
}
public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) {
- fragment_register_surveillance_photo.setImageBitmap(item.getBitmap());
+ 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) {
- fragment_register_upload_custom_photo.setImageBitmap(item.getBitmap());
+ 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
@@ -275,24 +326,17 @@
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<SurveillanceQueryItem> 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);
+ setSurveillanceQueryItem_selectPhoto(item);
bitmapList.add(item);
bitmapList.add(item);
bitmapList.add(item);
@@ -303,17 +347,52 @@
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;
- MainActivity.getInstance().getContentResolver().delete(uri, null, null);
+ 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();
}
@@ -321,15 +400,26 @@
}
public void resetForm() {
+ selectedCustomPhotoId = -1;
+ selectedSurveillancePhotoId = -1;
+
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_name.setValue("");
+ fragment_register_phone.setValue("");
+ fragment_register_id_num.setValue("");
+ fragment_register_birthday.setValue("");
+ fragment_register_company.setValue("");
+ fragment_register_remark.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;
@@ -343,53 +433,65 @@
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;
+ 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)
@@ -403,7 +505,7 @@
new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
public void onSelected(String value) {
}
- });
+ }, selectedSurveillancePhotoId);
}
@OnClick(R.id.fragment_register_upload_custom_photo)
@@ -412,13 +514,16 @@
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 takePicture = new Intent(MainActivity.getInstance(), PictureTaker.class);
- startActivityForResult(takePicture, fragment_register_id_card_photo_);
+ Intent intent = new Intent();
+ 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
@@ -433,13 +538,14 @@
}
public void setChoosePhoto(Bitmap bitmap) {
- fragment_register_surveillance_photo.setImageBitmap(bitmap);
+ 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(SurveillanceQueryItem item) {
- this.surveillanceQueryItem = item;
+ public void setSurveillanceQueryItem_selectPhoto(SurveillanceQueryItem item) {
+ this.surveillanceQueryItem_selectPhoto = item;
}
@Override
--
Gitblit v1.8.0