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