|
@@ -1,7 +1,9 @@
|
|
|
package com.yingyang.healthconsultation.consultationsheet
|
|
|
|
|
|
+import android.Manifest
|
|
|
import android.annotation.SuppressLint
|
|
|
import android.app.Activity
|
|
|
+import android.content.Context
|
|
|
import android.content.Intent
|
|
|
import android.os.Bundle
|
|
|
import android.os.Environment
|
|
@@ -15,6 +17,8 @@ import androidx.recyclerview.widget.RecyclerView
|
|
|
import com.alibaba.android.arouter.facade.annotation.Route
|
|
|
import com.alibaba.android.arouter.launcher.ARouter
|
|
|
import com.donkingliang.imageselector.utils.ImageSelector
|
|
|
+import com.hjq.permissions.OnPermissionCallback
|
|
|
+import com.hjq.permissions.XXPermissions
|
|
|
import com.yingyang.healthconsultation.R
|
|
|
import com.yingyang.healthconsultation.adapter.SickTimeAdapter
|
|
|
import com.yingyang.healthconsultation.databinding.ActivityConsultationSheetBinding
|
|
@@ -23,6 +27,7 @@ import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
|
|
|
import com.yingyang.healthconsultation.entity.UploadImgBean
|
|
|
import com.yingyang.healthconsultation.utils.CommonUtils
|
|
|
import com.yingyangfly.baselib.adapter.XBaseAdapter
|
|
|
+import com.yingyangfly.baselib.dialog.TipDialogFragment
|
|
|
import com.yingyangfly.baselib.dialog.TipsDialog
|
|
|
import com.yingyangfly.baselib.ext.getEndAnimation
|
|
|
import com.yingyangfly.baselib.ext.getScaleAnimation
|
|
@@ -35,6 +40,8 @@ import com.yingyangfly.baselib.utils.img.ImgUtil
|
|
|
import top.zibin.luban.Luban
|
|
|
import top.zibin.luban.OnCompressListener
|
|
|
import java.io.File
|
|
|
+import java.util.*
|
|
|
+import kotlin.collections.ArrayList
|
|
|
|
|
|
/**
|
|
|
* 问诊单
|
|
@@ -44,6 +51,13 @@ class ConsultationSheetActivity :
|
|
|
BaseMVVMActivity<ActivityConsultationSheetBinding, ConsultationSheetViewModel>(),
|
|
|
View.OnTouchListener {
|
|
|
|
|
|
+ // 添加存储权限的原因是 以防启动页面没有授权存储权限 相机权限,摄像头权限
|
|
|
+ private val cameraPermission = Arrays.asList(
|
|
|
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.CAMERA
|
|
|
+ ).toTypedArray()
|
|
|
+
|
|
|
private var id: String = ""
|
|
|
private val requestMedicalRecordsCamera = 1
|
|
|
private val requestMedicalRecordsImg = 2
|
|
@@ -121,7 +135,7 @@ class ConsultationSheetActivity :
|
|
|
}
|
|
|
ivAdd.setOnSingleClickListener {
|
|
|
if (bean.isEmpty()) {
|
|
|
- selectPic()
|
|
|
+ applyCameraPermission()
|
|
|
} else if (!bean.uploadFlag) {
|
|
|
ImgUtil.loadImage(mContext, R.mipmap.icon_add_pic, img)
|
|
|
upLoadImg(i, img)
|
|
@@ -415,4 +429,59 @@ class ConsultationSheetActivity :
|
|
|
}
|
|
|
return localList
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 申请录音权限
|
|
|
+ */
|
|
|
+ private fun applyCameraPermission() {
|
|
|
+ if (!cameraPermissionBool(mContext)) {
|
|
|
+ // 没有权限申请权限
|
|
|
+ XXPermissions.with(mContext)
|
|
|
+ .permission(cameraPermission)
|
|
|
+ .request(object : OnPermissionCallback {
|
|
|
+ override fun onGranted(permissions: List<String>, all: Boolean) {
|
|
|
+ if (all) { // 全部获取权限成功
|
|
|
+ selectPic()
|
|
|
+ } else { // 部分获取权限成功
|
|
|
+ showTipDialog(permissions)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onDenied(permissions: List<String>, never: Boolean) {
|
|
|
+ if (never) { // 被永久拒绝
|
|
|
+ // 如果是被永久拒绝就跳转到应用权限系统设置页面
|
|
|
+ XXPermissions.startPermissionActivity(mContext, permissions)
|
|
|
+ } else {
|
|
|
+ showTipDialog(permissions)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ selectPic()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否有相机权限
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private fun cameraPermissionBool(context: Context): Boolean {
|
|
|
+ return XXPermissions.isGranted(context, cameraPermission)
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 跳转设置页面
|
|
|
+ */
|
|
|
+ private fun showTipDialog(permissions: List<String>) {
|
|
|
+ TipDialogFragment.TipDialogBuilder()
|
|
|
+ .content("当前应用缺少必要权限,请点击“设置”-“权限”-“权限管理”打开所需权限")
|
|
|
+ .leftBtnText("退出")
|
|
|
+ .rightBtnText("设置")
|
|
|
+ .leftClick({
|
|
|
+ }, dimiss = true)
|
|
|
+ .rightClick({
|
|
|
+ XXPermissions.startPermissionActivity(mContext, permissions)
|
|
|
+ }, dimiss = true)
|
|
|
+ .show(supportFragmentManager)
|
|
|
+ }
|
|
|
}
|