商家身份证

This commit is contained in:
jia 2024-12-25 00:08:22 +08:00
parent 262e864625
commit 715842ad19
4 changed files with 354 additions and 62 deletions

View File

@ -18,7 +18,7 @@
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- <uses-permission android:name="android.permission.WAKE_LOCK" />-->
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.FLASHLIGHT" />

View File

@ -2,20 +2,36 @@ package com.ifish.activity;
import android.app.FragmentManager; import android.app.FragmentManager;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.ifish.basebean.EventBean;
import com.ifish.basebean.ShopsCheckSwitchFragment; import com.ifish.basebean.ShopsCheckSwitchFragment;
import com.ifish.baseclass.BaseActivity; import com.ifish.baseclass.BaseActivity;
import com.ifish.fragment.ShopsCheckResultFragment; import com.ifish.fragment.ShopsCheckResultFragment;
import com.ifish.fragment.ShopsCheckUserInfoFragment; import com.ifish.fragment.ShopsCheckUserInfoFragment;
import com.ifish.fragment.ShopsCheckUserPhotoFragment; import com.ifish.fragment.ShopsCheckUserPhotoFragment;
import com.ifish.utils.Commons; import com.ifish.utils.Commons;
import com.ifish.utils.L;
import com.ifish.view.SelectorImageView; import com.ifish.view.SelectorImageView;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.squareup.picasso.Picasso;
import java.io.IOException;
import java.util.ArrayList;
import java.util.concurrent.ExecutionException;
import de.greenrobot.event.EventBus; import de.greenrobot.event.EventBus;
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation;
/** /**
* --------------------------- * ---------------------------
@ -186,4 +202,39 @@ public class ShopsCheckActivity extends BaseActivity {
} }
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1024 && Build.VERSION.SDK_INT >=Build.VERSION_CODES.R){
if (Environment.isExternalStorageManager()){
EventBean eventBean = new EventBean(EventBean.CARD,"");
EventBus.getDefault().post(eventBean);
}
}else if (resultCode == RESULT_OK){
if (requestCode== PictureConfig.CHOOSE_REQUEST){
ArrayList<LocalMedia> selectList = PictureSelector.obtainSelectorList(data);
String mCompressPath;
if (selectList!=null && selectList.size()>0){
LocalMedia localMedia = selectList.get(0);
if (localMedia.isCut()){
mCompressPath = localMedia.getCutPath();
}else
{
mCompressPath = localMedia.getCompressPath();
}
if (TextUtils.isEmpty(mCompressPath)){
mCompressPath = localMedia.getRealPath();
}
L.i("jjia------------1---"+mCompressPath);
if (!TextUtils.isEmpty(mCompressPath)){
EventBean eventBean = new EventBean(EventBean.CARD,mCompressPath);
EventBus.getDefault().post(eventBean);
}
}
}
}
}
} }

View File

@ -17,6 +17,8 @@ public class EventBean {
public static String LINK_FINISH = "link_finish"; public static String LINK_FINISH = "link_finish";
public static String CHANGE_DEVICE_NAME = "change_device_name"; public static String CHANGE_DEVICE_NAME = "change_device_name";
public static String HEADER = "header"; public static String HEADER = "header";
public static String SELECT = "select";
public static String CARD = "card";
public EventBean(String name){ public EventBean(String name){
this.name = name; this.name = name;

View File

@ -1,13 +1,19 @@
package com.ifish.fragment; package com.ifish.fragment;
import static android.app.Activity.RESULT_OK;
import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.os.Handler; import android.os.Handler;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -16,24 +22,36 @@ import android.view.Window;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import com.bumptech.glide.Glide;
import com.ifish.activity.MineActivity;
import com.ifish.activity.R; import com.ifish.activity.R;
import com.ifish.basebean.BaseBean; import com.ifish.basebean.BaseBean;
import com.ifish.basebean.ChangeWater; import com.ifish.basebean.ChangeWater;
import com.ifish.basebean.EventBean;
import com.ifish.basebean.ShopsCheckSwitchFragment; import com.ifish.basebean.ShopsCheckSwitchFragment;
import com.ifish.basebean.ShopsInfo; import com.ifish.basebean.ShopsInfo;
import com.ifish.baseclass.BaseFragment; import com.ifish.baseclass.BaseFragment;
import com.ifish.baseclass.UriForFile; import com.ifish.baseclass.UriForFile;
import com.ifish.permission.PermissionHelper;
import com.ifish.utils.AppUtil;
import com.ifish.utils.Commons; import com.ifish.utils.Commons;
import com.ifish.utils.HttpListener; import com.ifish.utils.HttpListener;
import com.ifish.utils.HttpManager; import com.ifish.utils.HttpManager;
import com.ifish.utils.L; import com.ifish.utils.L;
import com.ifish.utils.ToastUtil; import com.ifish.utils.ToastUtil;
import com.ifish.view.picture.PictureSelectBean;
import com.ifish.view.picture.PictureSelectorUtil;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.concurrent.ExecutionException;
import de.greenrobot.event.EventBus; import de.greenrobot.event.EventBus;
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation; import jp.wasabeef.picasso.transformations.RoundedCornersTransformation;
@ -81,10 +99,14 @@ public class ShopsCheckUserPhotoFragment extends BaseFragment {
initListener(); initListener();
init(); init();
initData(); initData();
return v; return v;
} }
private PermissionHelper permissionHelper;
private void initData() { private void initData() {
permission = AppUtil.getImagePermissionList();
permissionHelper = new PermissionHelper(getActivity(), permission, 250);
if (isResult) { if (isResult) {
Picasso.with(getActivity()).load(HttpManager.SHOP_URL + Commons.USER.getUserId() + "/" + Commons.SHOP.picture1 + "?time=" + Commons.Date.getTime()).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).error(R.drawable.shopscheck_idcard).into(iv_idCard); Picasso.with(getActivity()).load(HttpManager.SHOP_URL + Commons.USER.getUserId() + "/" + Commons.SHOP.picture1 + "?time=" + Commons.Date.getTime()).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).error(R.drawable.shopscheck_idcard).into(iv_idCard);
Picasso.with(getActivity()).load(HttpManager.SHOP_URL + Commons.USER.getUserId() + "/" + Commons.SHOP.picture2 + "?time=" + Commons.Date.getTime()).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).error(R.drawable.shopscheck_idcard_back).into(iv_idCardBack); Picasso.with(getActivity()).load(HttpManager.SHOP_URL + Commons.USER.getUserId() + "/" + Commons.SHOP.picture2 + "?time=" + Commons.Date.getTime()).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).error(R.drawable.shopscheck_idcard_back).into(iv_idCardBack);
@ -251,28 +273,117 @@ public class ShopsCheckUserPhotoFragment extends BaseFragment {
} }
} }
}; };
String[] permission;
private void pickImage() { private void showPermissionHint(){
final Dialog dialogHead = new Dialog(getActivity(), R.style.HOLOMyDialogs); AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity(), AlertDialog.THEME_HOLO_LIGHT);
dialogHead.show(); dialog.setCancelable(false);
Window window = dialogHead.getWindow(); dialog.setTitle("提示");
window.setContentView(R.layout.dialog_cramer); dialog.setMessage("设置头像,需要申请相机和相册权限,是否允许申请?");
RelativeLayout rl_png = (RelativeLayout) window.findViewById(R.id.rl_man); dialog.setNegativeButton("拒绝", (arg0, arg1) -> {
RelativeLayout rl_cramera = (RelativeLayout) window.findViewById(R.id.rl_woman); arg0.dismiss();
rl_png.setOnClickListener(new View.OnClickListener() {
});
dialog.setPositiveButton("申请", (dialog1, which) -> {
getPermission();
});
dialog.show();
}
private void getPermission() {
permissionHelper.request(new PermissionHelper.PermissionCallback() {
@Override @Override
public void onClick(View v) { public void onPermissionGranted() {
gallery(); gallery();
dialogHead.dismiss();
} }
});
rl_cramera.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onIndividualPermissionGranted(String[] grantedPermission) {
camera(); AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
dialogHead.dismiss(); dialog.setCancelable(false);
dialog.setMessage("请先同意app获取权限");
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
} }
}); });
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
@Override
public void onPermissionDenied() {
AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
dialog.setCancelable(false);
dialog.setMessage("请先同意app获取权限");
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
getPermission();
}
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
@Override
public void onPermissionDeniedBySystem() {
AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
dialog.setCancelable(false);
dialog.setTitle("温馨提示");
// dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app");
dialog.setMessage("请到应用信息页面-权限管理-打开图片和相机权限");
dialog.setPositiveButton("去开启", (dialog1, which) -> {
AppUtil.toAuthority(getActivity());
});
dialog.setNegativeButton("取消", (dialog12, which) -> {
});
dialog.show();
}
});
}
private void pickImage() {
if (!permissionHelper.checkSelfPermission(permission)) {
showPermissionHint();
} else {
gallery();
}
// final Dialog dialogHead = new Dialog(getActivity(), R.style.HOLOMyDialogs);
// dialogHead.show();
// Window window = dialogHead.getWindow();
// window.setContentView(R.layout.dialog_cramer);
// RelativeLayout rl_png = (RelativeLayout) window.findViewById(R.id.rl_man);
// RelativeLayout rl_cramera = (RelativeLayout) window.findViewById(R.id.rl_woman);
// rl_png.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// gallery();
// dialogHead.dismiss();
// }
// });
// rl_cramera.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// camera();
// dialogHead.dismiss();
// }
// });
} }
private boolean hasSdcard() {//判断有无SD卡 private boolean hasSdcard() {//判断有无SD卡
@ -283,15 +394,32 @@ public class ShopsCheckUserPhotoFragment extends BaseFragment {
return false; return false;
} }
} }
private void selectPic(){
PictureSelectBean bean = new PictureSelectBean();
bean.setCircle(false);
if ( PHOTO_FILE_NAME != BUSINESS){
bean.setWidth(8);
bean.setHeigh(5);
}else {
bean.setCrop(false);
}
PictureSelectorUtil.selectPic(getContext(),bean);
}
/* /*
* 从相册获取 * 从相册获取
*/ */
public void gallery() { public void gallery() {
// 激活系统图库选择一张图片 if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.R){
Intent intent = new Intent(Intent.ACTION_PICK); if (!Environment.isExternalStorageManager()){
intent.setType("image/*"); Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
startActivityForResult(intent, PHOTO_REQUEST_GALLERY); intent.setData(Uri.parse("package:"+getActivity().getPackageName()));
startActivityForResult(intent,1024);
}else {
selectPic();
}
}else {
selectPic();
}
} }
/* /*
@ -306,58 +434,169 @@ public class ShopsCheckUserPhotoFragment extends BaseFragment {
startActivityForResult(intent, PHOTO_REQUEST_CAMERA); startActivityForResult(intent, PHOTO_REQUEST_CAMERA);
} }
public void onEventMainThread(EventBean eventBean){
if (eventBean!=null && EventBean.CARD.equals(eventBean.name)){
if (!TextUtils.isEmpty(eventBean.value)){
mCompressPath = eventBean.value;
image();
}else {
gallery();
}
}
}
private void image(){
new Thread(new Runnable() {
@Override @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { public void run() {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PHOTO_REQUEST_GALLERY) {
if (data != null) {
// 得到图片的全路径
Uri uri = data.getData();
crop(uri);
}
} else if (requestCode == PHOTO_REQUEST_CAMERA) {
if (hasSdcard()) {
tempFile = new File(Environment.getExternalStorageDirectory(),
PHOTO_FILE_NAME);
crop(UriForFile.getUriForFile(getContext(), tempFile));
} else {
ToastUtil.show(getActivity(), "未找到存储卡 无法存储照片");
}
} else if (requestCode == PHOTO_REQUEST_CUT) {
try { try {
bitmap = data.getParcelableExtra("data"); bitmap = Glide.with(getActivity()).asBitmap().load(mCompressPath).submit().get();
if (!hasSdcard()) {//未找到SD卡
ToastUtil.show(getActivity(), "未找到存储卡 无法存储照片");
return;
}
if (PHOTO_FILE_NAME.equals(ID_CARD)) {//身份证正面 if (PHOTO_FILE_NAME.equals(ID_CARD)) {//身份证正面
idCardFile = saveFile(bitmap, PHOTO_FILE_NAME); idCardFile = saveFile(bitmap, PHOTO_FILE_NAME);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Picasso.with(getActivity()).invalidate(idCardFile); Picasso.with(getActivity()).invalidate(idCardFile);
Picasso.with(getActivity()).load(idCardFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_idCard); Picasso.with(getActivity()).load(idCardFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_idCard);
}
});
} else if (PHOTO_FILE_NAME.equals(ID_CARD_BACK)) {//身份证背面 } else if (PHOTO_FILE_NAME.equals(ID_CARD_BACK)) {//身份证背面
idCardBackFile = saveFile(bitmap, PHOTO_FILE_NAME); idCardBackFile = saveFile(bitmap, PHOTO_FILE_NAME);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Picasso.with(getActivity()).invalidate(idCardBackFile); Picasso.with(getActivity()).invalidate(idCardBackFile);
Picasso.with(getActivity()).load(idCardBackFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_idCardBack); Picasso.with(getActivity()).load(idCardBackFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_idCardBack);
}
});
} else if (PHOTO_FILE_NAME.equals(BUSINESS)) {//营业执照 } else if (PHOTO_FILE_NAME.equals(BUSINESS)) {//营业执照
businessFile = saveFile(bitmap, PHOTO_FILE_NAME); businessFile = saveFile(bitmap, PHOTO_FILE_NAME);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Picasso.with(getActivity()).invalidate(businessFile); Picasso.with(getActivity()).invalidate(businessFile);
Picasso.with(getActivity()).load(businessFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_businessLicense); Picasso.with(getActivity()).load(businessFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_businessLicense);
}
});
} }
if (tempFile != null) { if (tempFile != null) {
tempFile.delete(); tempFile.delete();
} }
// bitmap.recycle();
// bitmap = null;
} catch (ExecutionException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}).start();
}
@Override
public void onDestroy() {
super.onDestroy();
if (bitmap!=null){
bitmap.recycle(); bitmap.recycle();
bitmap = null; bitmap = null;
} catch (Exception e) {
e.printStackTrace();
ToastUtil.show(getActivity(), "未找到图片 请重试");
} }
} }
private String mCompressPath = null;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1024 && Build.VERSION.SDK_INT >=Build.VERSION_CODES.R){
if (Environment.isExternalStorageManager()){
selectPic();
}
}else if (resultCode == RESULT_OK){
if (requestCode== PictureConfig.CHOOSE_REQUEST){
ArrayList<LocalMedia> selectList = PictureSelector.obtainSelectorList(data);
if (selectList!=null && selectList.size()>0){
LocalMedia localMedia = selectList.get(0);
if (localMedia.isCut()){
mCompressPath = localMedia.getCutPath();
}else
{
mCompressPath = localMedia.getCompressPath();
}
if (TextUtils.isEmpty(mCompressPath)){
mCompressPath = localMedia.getRealPath();
}
L.i("jjia------------1---"+mCompressPath);
image();
}
}
}
/// //////////////
// if (requestCode == PHOTO_REQUEST_GALLERY) {
// if (data != null) {
// // 得到图片的全路径
// Uri uri = data.getData();
// crop(uri);
// }
//
// } else if (requestCode == PHOTO_REQUEST_CAMERA) {
// if (hasSdcard()) {
// tempFile = new File(Environment.getExternalStorageDirectory(),
// PHOTO_FILE_NAME);
// crop(UriForFile.getUriForFile(getContext(), tempFile));
// } else {
// ToastUtil.show(getActivity(), "未找到存储卡 无法存储照片");
// }
//
// } else if (requestCode == PHOTO_REQUEST_CUT) {
// try {
// bitmap = data.getParcelableExtra("data");
// if (!hasSdcard()) {//未找到SD卡
// ToastUtil.show(getActivity(), "未找到存储卡 无法存储照片");
// return;
// }
// if (PHOTO_FILE_NAME.equals(ID_CARD)) {//身份证正面
// idCardFile = saveFile(bitmap, PHOTO_FILE_NAME);
// Picasso.with(getActivity()).invalidate(idCardFile);
// Picasso.with(getActivity()).load(idCardFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_idCard);
// } else if (PHOTO_FILE_NAME.equals(ID_CARD_BACK)) {//身份证背面
// idCardBackFile = saveFile(bitmap, PHOTO_FILE_NAME);
// Picasso.with(getActivity()).invalidate(idCardBackFile);
// Picasso.with(getActivity()).load(idCardBackFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_idCardBack);
// } else if (PHOTO_FILE_NAME.equals(BUSINESS)) {//营业执照
// businessFile = saveFile(bitmap, PHOTO_FILE_NAME);
// Picasso.with(getActivity()).invalidate(businessFile);
// Picasso.with(getActivity()).load(businessFile).config(Bitmap.Config.RGB_565).transform(new RoundedCornersTransformation(rounded, 0, RoundedCornersTransformation.CornerType.ALL)).into(iv_businessLicense);
//
// }
// if (tempFile != null) {
// tempFile.delete();
// }
// bitmap.recycle();
// bitmap = null;
// } catch (Exception e) {
// e.printStackTrace();
// ToastUtil.show(getActivity(), "未找到图片 请重试");
// }
// }
} }
/** /**