ソースを参照

1.添加医生打分功能

王鹏鹏 2 年 前
コミット
fba8cc24db

+ 0 - 1
.idea/gradle.xml

@@ -16,7 +16,6 @@
             <option value="$PROJECT_DIR$/common" />
             <option value="$PROJECT_DIR$/healthconsultation" />
             <option value="$PROJECT_DIR$/home" />
-            <option value="$PROJECT_DIR$/imageselector" />
             <option value="$PROJECT_DIR$/livebroadcast" />
             <option value="$PROJECT_DIR$/login" />
             <option value="$PROJECT_DIR$/mmse" />

+ 1 - 1
baselib/build.gradle

@@ -140,6 +140,6 @@ dependencies {
     api(rootProject.ext.dependencies.fastjson)
     api(rootProject.ext.dependencies.Luban)
     api(rootProject.ext.dependencies.xxPermission)
-//    api(rootProject.ext.dependencies.imageSelector)
+    api(rootProject.ext.dependencies.imageSelector)
 
 }

+ 55 - 0
baselib/src/main/java/com/yingyangfly/baselib/image/XImageSelector.kt

@@ -0,0 +1,55 @@
+package com.yingyangfly.baselib.image
+
+import android.app.Activity
+import android.content.Intent
+import androidx.fragment.app.Fragment
+import com.donkingliang.imageselector.utils.ImageSelector
+
+/**
+ *     author : lilking
+ *     time   : 2022/11/10
+ *     desc   : 简单封装了 ImageSelector,方便日后替换
+ */
+object XImageSelector {
+
+    private val builder by lazy { ImageSelector.builder() }
+    private const val REQUEST_CODE_LOCAL = 1001
+    private const val REQUEST_CODE_CAMERA = 1002
+
+    fun selectLocal(activity: Activity) {
+        builder.start(activity, REQUEST_CODE_LOCAL)
+    }
+
+    fun selectLocal(fragment: Fragment) {
+        builder.start(fragment, REQUEST_CODE_LOCAL)
+    }
+
+    /**
+     * 最大
+     */
+    fun config(maxCount: Int, useCamera: Boolean,onlyTakePhoto:Boolean=false): XImageSelector {
+        //限数量的多选(比如最多9张)
+        builder
+            .useCamera(useCamera) // 设置是否使用拍照
+            .setSingle(false)  //设置是否单选
+            .setMaxSelectCount(maxCount) // 图片的最大选择数量,小于等于0时,不限数量。
+            .onlyTakePhoto(onlyTakePhoto) //是否只启动拍照
+            .setMaxSelectCount(maxCount)
+        return this
+    }
+
+    /**
+     * 获取图片
+     */
+    fun parseResult(code: Int, data: Intent?): ArrayList<String>? {
+        return when (code) {
+            REQUEST_CODE_LOCAL -> {
+                data?.getStringArrayListExtra(ImageSelector.SELECT_RESULT)
+            }
+            REQUEST_CODE_CAMERA -> {
+                data?.getStringArrayListExtra(ImageSelector.IS_CAMERA_IMAGE)
+            }
+            else -> arrayListOf()
+        }
+    }
+}

+ 1 - 3
healthconsultation/build.gradle

@@ -23,11 +23,9 @@ dependencies {
     implementation(rootProject.ext.androidx.appcompat)
     implementation(rootProject.ext.androidx.material)
     implementation(rootProject.ext.androidx.constraintlayout)
-
-    //RxJava2.0
     implementation(rootProject.ext.dependencies.rxjava)
     implementation(rootProject.ext.dependencies.rxandroid)
     implementation(rootProject.ext.dependencies.rxkotlin)
     implementation(rootProject.ext.dependencies.Zxing)
-    api project(path: ':imageselector')
+    api(rootProject.ext.dependencies.imageSelector)
 }

+ 10 - 36
healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationSheetActivity.kt

@@ -2,7 +2,6 @@ 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
@@ -16,13 +15,11 @@ import androidx.recyclerview.widget.LinearLayoutManager
 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
-import com.yingyang.healthconsultation.dialog.SelectPicDialog
 import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
 import com.yingyang.healthconsultation.entity.UploadImgBean
 import com.yingyang.healthconsultation.utils.CommonUtils
@@ -33,6 +30,7 @@ import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
 import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.image.XImageSelector
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.LogUtil
@@ -177,25 +175,11 @@ class ConsultationSheetActivity :
      * 图片选择弹框
      */
     private fun selectPic() {
-        val dialog = SelectPicDialog()
-        dialog.onDialogClickListener = {
-            if (TextUtils.equals("album", it)) {
-                ImageSelector.builder()
-                    .useCamera(false) // 设置是否使用拍照
-                    .setSingle(false) //设置是否单选
-                    .canPreview(true) //是否点击放大图片查看,,默认为true
-                    .setMaxSelectCount(if (getImgLocalPaths().size > 0) 9 - getImgLocalPaths().size else 9) // 图片的最大选择数量,小于等于0时,不限数量
-                    .start(this, requestMedicalRecordsImg) // 打开相册
-            } else {
-                ImageSelector.builder()
-                    .useCamera(true)
-                    .onlyTakePhoto(true)
-                    .setCrop(false)
-                    .setSelected(getImgLocalPaths())
-                    .start(this, requestMedicalRecordsCamera)
-            }
-        }
-        dialog.show(supportFragmentManager, "SelectPicDialog")
+        XImageSelector.config(
+            if (getImgLocalPaths().size > 0) 9 - getImgLocalPaths().size else 9,
+            true,
+            onlyTakePhoto = true
+        ).selectLocal(this@ConsultationSheetActivity)
     }
 
     private fun getImgLocalPaths(): ArrayList<String> {
@@ -259,18 +243,9 @@ class ConsultationSheetActivity :
 
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
-        if (resultCode == Activity.RESULT_OK) {
-            if (requestCode == requestMedicalRecordsCamera) {//拍照
-                val images = data?.getStringArrayListExtra(ImageSelector.SELECT_RESULT)
-                images?.let {
-                    withLs(it)
-                }
-            } else if (requestCode == requestMedicalRecordsImg) {//选择图片
-                val images = data?.getStringArrayListExtra(ImageSelector.SELECT_RESULT)
-                images?.let {
-                    withLs(it)
-                }
-            }
+        val images = XImageSelector.parseResult(requestCode, data)
+        images?.let {
+            withLs(it)
         }
     }
 
@@ -281,13 +256,11 @@ class ConsultationSheetActivity :
         Luban.with(this)
             .load(photos)
             .ignoreBy(100)
-            .setTargetDir(getPath())
             .setFocusAlpha(false)
             .filter { path -> !(TextUtils.isEmpty(path) || path.lowercase().endsWith(".gif")) }
             .setCompressListener(
                 object : OnCompressListener {
                     override fun onStart() {
-
                     }
 
                     override fun onSuccess(file: File) {
@@ -298,6 +271,7 @@ class ConsultationSheetActivity :
 
                     override fun onError(e: Throwable) {
                         LogUtil.e("图片压缩失败:$e")
+                        addImages(photos)
                     }
                 }).launch()
     }

+ 0 - 1
settings.gradle

@@ -13,7 +13,6 @@ include ':common'
 include ':mmse'
 include ':moca'
 include ':healthconsultation'
-include ':imageselector'
 include ':tuichat'
 include ':timcommon'
 include ':tuicore'