浏览代码

1.添加直播统计是和否接口

王鹏鹏 2 年之前
父节点
当前提交
ef91a8d103

+ 70 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/activity/HealthConsultationActivity.kt

@@ -1,12 +1,16 @@
 package com.yingyang.healthconsultation.activity
 
+import android.Manifest
 import android.annotation.SuppressLint
+import android.content.Context
 import android.os.Bundle
 import android.text.TextUtils
 import android.util.Log
 import android.view.MotionEvent
 import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.hjq.permissions.OnPermissionCallback
+import com.hjq.permissions.XXPermissions
 import com.tencent.bugly.crashreport.CrashReport
 import com.tencent.imsdk.v2.*
 import com.tencent.qcloud.tuicore.TUIConstants
@@ -20,6 +24,7 @@ import com.yingyang.healthconsultation.databinding.ActivityHealthConsultationBin
 import com.yingyangfly.baselib.bean.MessageBean
 import com.yingyangfly.baselib.config.AccountConfig
 import com.yingyangfly.baselib.db.DoctorBean
+import com.yingyangfly.baselib.dialog.TipDialogFragment
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.show
@@ -29,6 +34,7 @@ import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.GsonUtil
 import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.User
+import java.util.*
 
 /**
  * 健康咨询
@@ -38,6 +44,14 @@ class HealthConsultationActivity :
     BaseMVVMActivity<ActivityHealthConsultationBinding, HealthConsultationViewModel>(),
     View.OnTouchListener {
 
+    // 添加存储权限的原因是 以防启动页面没有授权存储权限 相机权限,摄像头权限
+    private val cameraPermission = Arrays.asList(
+        Manifest.permission.WRITE_EXTERNAL_STORAGE,
+        Manifest.permission.READ_EXTERNAL_STORAGE,
+        Manifest.permission.CAMERA,
+        Manifest.permission.RECORD_AUDIO
+    ).toTypedArray()
+
     /**
      * 推荐医生列表
      */
@@ -55,7 +69,7 @@ class HealthConsultationActivity :
             rvProgress.adapter = consultationAdapter
             consultationAdapter.setData(consultationBeans)
             consultationAdapter.onClickListener = {
-                getUserSign(it)
+                applyCameraPermission(it)
             }
             rvRecommended.adapter = recommendDoctorAdapter
             recommendDoctorAdapter.setData(doctorBeans)
@@ -272,4 +286,59 @@ class HealthConsultationActivity :
         }
         super.onDestroy()
     }
+
+    /**
+     * 是否有相机权限
+     * @return
+     */
+    private fun cameraPermissionBool(context: Context): Boolean {
+        return XXPermissions.isGranted(context, cameraPermission)
+    }
+
+    /**
+     * 申请录音权限
+     */
+    private fun applyCameraPermission(bean: DoctorBean) {
+        if (cameraPermissionBool(mContext)) {
+            getUserSign(bean)
+        } else {
+            // 没有权限申请权限
+            XXPermissions.with(mContext)
+                .permission(cameraPermission)
+                .request(object : OnPermissionCallback {
+                    override fun onGranted(permissions: List<String>, all: Boolean) {
+                        if (all) { // 全部获取权限成功
+                            getUserSign(bean)
+                        } else { // 部分获取权限成功
+                            showTipDialog(permissions)
+                        }
+                    }
+
+                    override fun onDenied(permissions: List<String>, never: Boolean) {
+                        if (never) { // 被永久拒绝
+                            // 如果是被永久拒绝就跳转到应用权限系统设置页面
+                            XXPermissions.startPermissionActivity(mContext, permissions)
+                        } else {
+                            showTipDialog(permissions)
+                        }
+                    }
+                })
+        }
+    }
+
+    /**
+     * 跳转设置页面
+     */
+    private fun showTipDialog(permissions: List<String>) {
+        TipDialogFragment.TipDialogBuilder()
+            .content("当前应用缺少必要权限,请点击“设置”-“权限”-“权限管理”打开所需权限")
+            .leftBtnText("退出")
+            .rightBtnText("设置")
+            .leftClick({
+            }, dimiss = true)
+            .rightClick({
+                XXPermissions.startPermissionActivity(mContext, permissions)
+            }, dimiss = true)
+            .show(supportFragmentManager)
+    }
 }