Selaa lähdekoodia

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

王鹏鹏 2 vuotta sitten
vanhempi
commit
83d126e7ac

+ 71 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/paid/PaidActivity.kt

@@ -1,6 +1,8 @@
 package com.yingyang.healthconsultation.paid
 
+import android.Manifest
 import android.annotation.SuppressLint
+import android.content.Context
 import android.content.Intent
 import android.os.Bundle
 import android.text.TextUtils
@@ -9,6 +11,8 @@ import android.view.View
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
+import com.hjq.permissions.OnPermissionCallback
+import com.hjq.permissions.XXPermissions
 import com.tencent.imsdk.v2.V2TIMConversation
 import com.tencent.qcloud.tuicore.TUIConstants
 import com.tencent.qcloud.tuicore.TUICore
@@ -21,6 +25,7 @@ import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
 import com.yingyangfly.baselib.config.AccountConfig
 import com.yingyangfly.baselib.db.DoctorBean
 import com.yingyangfly.baselib.dialog.EvaluateDialog
+import com.yingyangfly.baselib.dialog.TipDialogFragment
 import com.yingyangfly.baselib.dialog.TipsDialog
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
@@ -31,6 +36,8 @@ import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.User
+import java.util.*
+import kotlin.collections.ArrayList
 
 /**
  * 已支付
@@ -51,6 +58,14 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
     private var isConsultation: String = ""
     private var doctor: DoctorBean? = null
 
+    // 添加存储权限的原因是 以防启动页面没有授权存储权限 相机权限,摄像头权限
+    private val cameraPermission = Arrays.asList(
+        Manifest.permission.WRITE_EXTERNAL_STORAGE,
+        Manifest.permission.READ_EXTERNAL_STORAGE,
+        Manifest.permission.CAMERA,
+        Manifest.permission.RECORD_AUDIO
+    ).toTypedArray()
+
     override fun onCreate(savedInstanceState: Bundle?) {
         id = intent.getStringExtra("id") ?: ""
         doctorId = intent.getStringExtra("doctorId") ?: ""
@@ -255,7 +270,7 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
                 showTipsDialog(id)
             }
             "2" -> {
-                getUserSign()
+                applyCameraPermission()
             }
             "4" -> {
                 evaluationOrder()
@@ -388,4 +403,59 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
             })
         }
     }
+
+    /**
+     * 申请录音权限
+     */
+    private fun applyCameraPermission() {
+        if (cameraPermissionBool(mContext)) {
+            getUserSign()
+        } else {
+            // 没有权限申请权限
+            XXPermissions.with(mContext)
+                .permission(cameraPermission)
+                .request(object : OnPermissionCallback {
+                    override fun onGranted(permissions: List<String>, all: Boolean) {
+                        if (all) { // 全部获取权限成功
+                            getUserSign()
+                        } else { // 部分获取权限成功
+                            showTipDialog(permissions)
+                        }
+                    }
+
+                    override fun onDenied(permissions: List<String>, never: Boolean) {
+                        if (never) { // 被永久拒绝
+                            // 如果是被永久拒绝就跳转到应用权限系统设置页面
+                            XXPermissions.startPermissionActivity(mContext, permissions)
+                        } else {
+                            showTipDialog(permissions)
+                        }
+                    }
+                })
+        }
+    }
+
+    /**
+     * 是否有相机权限
+     * @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)
+    }
 }

+ 69 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/record/ConsultationRecordActivity.kt

@@ -1,11 +1,15 @@
 package com.yingyang.healthconsultation.record
 
+import android.Manifest
 import android.annotation.SuppressLint
+import android.content.Context
 import android.os.Bundle
 import android.view.MotionEvent
 import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
+import com.hjq.permissions.OnPermissionCallback
+import com.hjq.permissions.XXPermissions
 import com.tencent.imsdk.v2.V2TIMConversation
 import com.tencent.qcloud.tuicore.TUIConstants
 import com.tencent.qcloud.tuicore.TUICore
@@ -19,6 +23,7 @@ import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
 import com.yingyangfly.baselib.config.AccountConfig
 import com.yingyangfly.baselib.db.DoctorBean
 import com.yingyangfly.baselib.dialog.EvaluateDialog
+import com.yingyangfly.baselib.dialog.TipDialogFragment
 import com.yingyangfly.baselib.dialog.TipsDialog
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
@@ -31,6 +36,7 @@ import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.baselib.utils.User
 import gorden.rxbus2.Subscribe
 import gorden.rxbus2.ThreadMode
+import java.util.*
 
 /**
  * 问诊记录
@@ -43,6 +49,14 @@ class ConsultationRecordActivity :
     private var records = mutableListOf<ConsultationRecordsBean>()
     private val adapter by lazy { ConsultationRecordAdapter() }
 
+    // 添加存储权限的原因是 以防启动页面没有授权存储权限 相机权限,摄像头权限
+    private val cameraPermission = Arrays.asList(
+        Manifest.permission.WRITE_EXTERNAL_STORAGE,
+        Manifest.permission.READ_EXTERNAL_STORAGE,
+        Manifest.permission.CAMERA,
+        Manifest.permission.RECORD_AUDIO
+    ).toTypedArray()
+
     override fun initViews() {
         binding {
             rvRecord.adapter = adapter
@@ -64,7 +78,7 @@ class ConsultationRecordActivity :
                     "2" -> {
                         //2接诊中
                         if (bean.doctor != null) {
-                            getUserSign(bean.doctor)
+                            applyCameraPermission(bean.doctor)
                         }
                     }
                     "3" -> {
@@ -271,4 +285,58 @@ class ConsultationRecordActivity :
         })
     }
 
+    /**
+     * 申请录音权限
+     */
+    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)
+    }
+
+    /**
+     * 是否有相机权限
+     * @return
+     */
+    private fun cameraPermissionBool(context: Context): Boolean {
+        return XXPermissions.isGranted(context, cameraPermission)
+    }
 }