package com.xw.yunwei.ui.user.mine.upload
|
|
import android.annotation.SuppressLint
|
import android.net.Uri
|
import com.blankj.utilcode.util.UriUtils
|
import com.luck.picture.lib.basic.PictureSelector
|
import com.luck.picture.lib.config.PictureMimeType
|
import com.luck.picture.lib.config.SelectMimeType
|
import com.luck.picture.lib.entity.LocalMedia
|
import com.luck.picture.lib.interfaces.OnResultCallbackListener
|
import com.xw.common.CommonDialog
|
import com.xw.common.base.BaseActivity
|
import com.xw.common.base.ShowImgListDialog
|
import com.xw.common.utils.GlideEngine
|
import com.xw.common.utils.PictureCompressEngine
|
import com.xw.yunwei.BR
|
import com.xw.yunwei.databinding.ActivityCertUploadBinding
|
import java.util.ArrayList
|
|
/**
|
* 证件上传
|
*/
|
class CertUploadActivity : BaseActivity<ActivityCertUploadBinding, CertUploadVM>() {
|
override fun getBindingVariable() = BR.viewModel
|
|
override fun initData() {
|
super.initData()
|
viewModel.initData()
|
}
|
var operateIndex = -1
|
override fun setListener() {
|
super.setListener()
|
binding.idFront.setOnClickListener { showTypeDialog(0) }
|
binding.idBack.setOnClickListener { showTypeDialog(1) }
|
binding.driveCard.setOnClickListener { showTypeDialog(2) }
|
binding.prove.setOnClickListener { showTypeDialog(3) }
|
binding.cert.setOnClickListener { showTypeDialog(4) }
|
|
binding.idFrontPic.setOnClickListener { showImageDialog(0) }
|
binding.idBackPic.setOnClickListener { showImageDialog(1) }
|
binding.driveCardPic.setOnClickListener { showImageDialog(2) }
|
binding.provePic.setOnClickListener { showImageDialog(3) }
|
binding.certPic.setOnClickListener { showImageDialog(4) }
|
|
|
binding.idFrontRefresh.setOnClickListener { showTypeDialog(0) }
|
binding.idBackRefresh.setOnClickListener { showTypeDialog(1) }
|
binding.driveCardRefresh.setOnClickListener { showTypeDialog(2) }
|
binding.proveRefresh.setOnClickListener { showTypeDialog(3) }
|
binding.certRefresh.setOnClickListener { showTypeDialog(4) }
|
}
|
|
fun showImageDialog(index: Int) {
|
ShowImgListDialog(
|
this@CertUploadActivity,
|
listOf(viewModel.urls[index].value),
|
0
|
).show()
|
}
|
|
fun showTypeDialog(index: Int) {
|
this.operateIndex = index
|
CommonDialog.showTypeDialog(this) {
|
if (it == 0) takeAPhotograph() else if (it == 1) enterGallery()
|
}
|
}
|
|
// 进入图库
|
@SuppressLint("SourceLockedOrientationActivity")
|
private fun enterGallery() {
|
PictureSelector.create(this)
|
.openGallery(SelectMimeType.ofImage())
|
.setImageEngine(GlideEngine.createGlideEngine())
|
.setMaxSelectNum(1)
|
.setImageSpanCount(4)
|
.isPreviewImage(true)
|
.isDisplayCamera(false)
|
.setCompressEngine(PictureCompressEngine())
|
.forResult(resultCallbackListener)
|
}
|
|
// 拍照
|
private fun takeAPhotograph() {
|
PictureSelector.create(this)
|
.openCamera(SelectMimeType.ofImage())
|
.setCompressEngine(PictureCompressEngine())
|
.forResultActivity(resultCallbackListener)
|
}
|
|
private var resultCallbackListener = object : OnResultCallbackListener<LocalMedia> {
|
override fun onResult(result: ArrayList<LocalMedia>?) {
|
result?.let { selectList ->
|
for (item in selectList) {
|
val path: String = item.availablePath
|
var imgPath =
|
if (PictureMimeType.isContent(path) && !item.isCut && !item.isCompressed) {
|
UriUtils.uri2File(Uri.parse(path)).absolutePath
|
} else {
|
path
|
}
|
viewModel.urls[operateIndex].postValue(imgPath)
|
}
|
}
|
}
|
|
override fun onCancel() {}
|
}
|
|
}
|