Browse Source

1.添加语音合成表

王鹏鹏 2 years ago
parent
commit
e7733e3bdb

+ 70 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationSheetActivity.kt

@@ -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)
+    }
 }