diff --git a/iFish7/src/main/AndroidManifest.xml b/iFish7/src/main/AndroidManifest.xml
index 45a8232d7..79567244f 100644
--- a/iFish7/src/main/AndroidManifest.xml
+++ b/iFish7/src/main/AndroidManifest.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/iFish7/src/main/java/com/ifish/activity/ShopsCheckActivity.java b/iFish7/src/main/java/com/ifish/activity/ShopsCheckActivity.java
index 7e157b5ec..00cbc2211 100644
--- a/iFish7/src/main/java/com/ifish/activity/ShopsCheckActivity.java
+++ b/iFish7/src/main/java/com/ifish/activity/ShopsCheckActivity.java
@@ -2,20 +2,36 @@ package com.ifish.activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Build;
import android.os.Bundle;
+import android.os.Environment;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
+import com.bumptech.glide.Glide;
+import com.ifish.basebean.EventBean;
import com.ifish.basebean.ShopsCheckSwitchFragment;
import com.ifish.baseclass.BaseActivity;
import com.ifish.fragment.ShopsCheckResultFragment;
import com.ifish.fragment.ShopsCheckUserInfoFragment;
import com.ifish.fragment.ShopsCheckUserPhotoFragment;
import com.ifish.utils.Commons;
+import com.ifish.utils.L;
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 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 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);
+ }
+ }
+ }
+ }
+ }
}
diff --git a/iFish7/src/main/java/com/ifish/basebean/EventBean.java b/iFish7/src/main/java/com/ifish/basebean/EventBean.java
index 716641660..d31933755 100644
--- a/iFish7/src/main/java/com/ifish/basebean/EventBean.java
+++ b/iFish7/src/main/java/com/ifish/basebean/EventBean.java
@@ -17,6 +17,8 @@ public class EventBean {
public static String LINK_FINISH = "link_finish";
public static String CHANGE_DEVICE_NAME = "change_device_name";
public static String HEADER = "header";
+ public static String SELECT = "select";
+ public static String CARD = "card";
public EventBean(String name){
this.name = name;
diff --git a/iFish7/src/main/java/com/ifish/fragment/ShopsCheckUserPhotoFragment.java b/iFish7/src/main/java/com/ifish/fragment/ShopsCheckUserPhotoFragment.java
index fa34a8eb4..39e2f1b98 100644
--- a/iFish7/src/main/java/com/ifish/fragment/ShopsCheckUserPhotoFragment.java
+++ b/iFish7/src/main/java/com/ifish/fragment/ShopsCheckUserPhotoFragment.java
@@ -1,13 +1,19 @@
package com.ifish.fragment;
+import static android.app.Activity.RESULT_OK;
+
+import android.app.AlertDialog;
import android.app.Dialog;
+import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.provider.MediaStore;
+import android.provider.Settings;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
@@ -16,24 +22,36 @@ import android.view.Window;
import android.widget.ImageView;
import android.widget.RelativeLayout;
+import com.bumptech.glide.Glide;
+import com.ifish.activity.MineActivity;
import com.ifish.activity.R;
import com.ifish.basebean.BaseBean;
import com.ifish.basebean.ChangeWater;
+import com.ifish.basebean.EventBean;
import com.ifish.basebean.ShopsCheckSwitchFragment;
import com.ifish.basebean.ShopsInfo;
import com.ifish.baseclass.BaseFragment;
import com.ifish.baseclass.UriForFile;
+import com.ifish.permission.PermissionHelper;
+import com.ifish.utils.AppUtil;
import com.ifish.utils.Commons;
import com.ifish.utils.HttpListener;
import com.ifish.utils.HttpManager;
import com.ifish.utils.L;
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 java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.concurrent.ExecutionException;
import de.greenrobot.event.EventBus;
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation;
@@ -81,10 +99,14 @@ public class ShopsCheckUserPhotoFragment extends BaseFragment {
initListener();
init();
initData();
+
return v;
}
-
+ private PermissionHelper permissionHelper;
private void initData() {
+ permission = AppUtil.getImagePermissionList();
+ permissionHelper = new PermissionHelper(getActivity(), permission, 250);
+
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.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,29 +273,118 @@ public class ShopsCheckUserPhotoFragment extends BaseFragment {
}
}
};
+ String[] permission;
- private void pickImage() {
- 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() {
+ private void showPermissionHint(){
+ AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity(), AlertDialog.THEME_HOLO_LIGHT);
+ dialog.setCancelable(false);
+ dialog.setTitle("提示");
+ dialog.setMessage("设置头像,需要申请相机和相册权限,是否允许申请?");
+ dialog.setNegativeButton("拒绝", (arg0, arg1) -> {
+ arg0.dismiss();
+
+ });
+ dialog.setPositiveButton("申请", (dialog1, which) -> {
+ getPermission();
+ });
+ dialog.show();
+ }
+
+ private void getPermission() {
+ permissionHelper.request(new PermissionHelper.PermissionCallback() {
@Override
- public void onClick(View v) {
+ public void onPermissionGranted() {
gallery();
- dialogHead.dismiss();
}
- });
- rl_cramera.setOnClickListener(new View.OnClickListener() {
+
@Override
- public void onClick(View v) {
- camera();
- dialogHead.dismiss();
+ public void onIndividualPermissionGranted(String[] grantedPermission) {
+ 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) {
+
+ }
+ });
+ 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卡
if (Environment.getExternalStorageState().equals(
@@ -283,15 +394,32 @@ public class ShopsCheckUserPhotoFragment extends BaseFragment {
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() {
- // 激活系统图库,选择一张图片
- Intent intent = new Intent(Intent.ACTION_PICK);
- intent.setType("image/*");
- startActivityForResult(intent, PHOTO_REQUEST_GALLERY);
+ if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.R){
+ if (!Environment.isExternalStorageManager()){
+ Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
+ 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);
}
+ 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
+ public void run() {
+ try {
+ bitmap = Glide.with(getActivity()).asBitmap().load(mCompressPath).submit().get();
+ if (PHOTO_FILE_NAME.equals(ID_CARD)) {//身份证正面
+ idCardFile = saveFile(bitmap, PHOTO_FILE_NAME);
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ 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);
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ 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);
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ 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 (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 = null;
+ }
+ }
+
+ private String mCompressPath = null;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == PHOTO_REQUEST_GALLERY) {
- if (data != null) {
- // 得到图片的全路径
- Uri uri = data.getData();
- crop(uri);
+
+
+ if (requestCode == 1024 && Build.VERSION.SDK_INT >=Build.VERSION_CODES.R){
+ if (Environment.isExternalStorageManager()){
+ selectPic();
}
- } 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 (resultCode == RESULT_OK){
+ if (requestCode== PictureConfig.CHOOSE_REQUEST){
+ ArrayList 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();
+ }
- } 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 (TextUtils.isEmpty(mCompressPath)){
+ mCompressPath = localMedia.getRealPath();
+ }
+ L.i("jjia------------1---"+mCompressPath);
+
+ image();
}
- if (tempFile != null) {
- tempFile.delete();
- }
- bitmap.recycle();
- bitmap = null;
- } catch (Exception e) {
- e.printStackTrace();
- ToastUtil.show(getActivity(), "未找到图片 请重试");
}
}
+
+
+
+ /// //////////////
+
+
+
+// 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(), "未找到图片 请重试");
+// }
+// }
+
}
/**