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