package com.example.smart.ui.project.check
|
|
import android.app.Dialog
|
import android.graphics.drawable.ColorDrawable
|
import android.view.Gravity
|
import android.view.LayoutInflater
|
import android.view.ViewGroup
|
import androidx.core.view.isVisible
|
import androidx.core.widget.addTextChangedListener
|
import androidx.databinding.DataBindingUtil
|
import androidx.fragment.app.FragmentActivity
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import com.blankj.utilcode.util.ToastUtils
|
import com.example.smart.R
|
import com.example.smart.bean.ImageRef
|
import com.example.smart.databinding.DialogCheckEditBinding
|
import com.example.smart.image.ImageProvider
|
import com.example.smart.ui.icondraw.DrawLiveData
|
import com.example.smart.ui.item.adapter.ImageShowAdapter
|
import com.example.smart.ui.item.bean.ImageBean
|
import com.example.smart.ui.project.check.bean.CheckBean
|
|
class EditDialog(
|
var activity: FragmentActivity, var vm: CheckViewModel, var dismiss: (() -> Unit)? = null
|
) : Dialog(activity) {
|
|
var bind: DialogCheckEditBinding = DataBindingUtil.inflate(
|
LayoutInflater.from(activity), R.layout.dialog_check_edit, null, false
|
)
|
|
lateinit var data: CheckBean
|
private lateinit var adapter1: ImageShowAdapter
|
private lateinit var adapter2: ImageShowAdapter
|
private lateinit var adapter3: ImageShowAdapter
|
private val mImageList1 = ArrayList<ImageBean>()
|
private val mImageList2 = ArrayList<ImageBean>()
|
private val mImageList3 = ArrayList<ImageBean>()
|
|
private var operateIndex = -1
|
private val mImageProvider by lazy {
|
ImageProvider(activity, ImageCallBack())
|
}
|
|
private inner class ImageCallBack : ImageProvider.IImageCallback {
|
|
override fun onUploadSuccess(entityRef: List<ImageRef>) {
|
when (operateIndex) {
|
1 -> adapter1.notifyData(entityRef)
|
2 -> adapter2.notifyData(entityRef)
|
3 -> adapter3.notifyData(entityRef)
|
}
|
|
}
|
|
override fun onUploadFailed() {
|
ToastUtils.showLong("图片上传失败,请稍后再试...")
|
}
|
}
|
|
init {
|
setContentView(bind.root)
|
bind.lifecycleOwner = activity
|
|
window!!.attributes.gravity = Gravity.BOTTOM
|
|
//设置dialog的 进出 动画
|
window!!.setWindowAnimations(com.example.basecore.R.style.AnimUp)
|
// 实例化一个ColorDrawable颜色为半透明
|
// 设置SelectPicPopupWindow弹出窗体的背景
|
window!!.setBackgroundDrawable(ColorDrawable(0x00000000))
|
window!!.attributes.width = ViewGroup.LayoutParams.MATCH_PARENT
|
window!!.attributes.height = ViewGroup.LayoutParams.WRAP_CONTENT
|
|
setListener()
|
initAdapter()
|
|
DrawLiveData.observeForever { drawData ->
|
adapter1.updateDrawData(drawData)
|
adapter2.updateDrawData(drawData)
|
adapter3.updateDrawData(drawData)
|
}
|
|
setOnDismissListener { dismiss?.invoke() }
|
}
|
|
fun show(item: CheckBean, isAdd: Boolean = true) {
|
super.show()
|
data = item
|
bind.btnSubmit.isVisible = isAdd
|
bind.btnDelete.isVisible = !isAdd
|
bind.btnEdit.isVisible = !isAdd
|
|
bind.etTitle.setText(item.title)
|
|
mImageList1.clear()
|
item.safetySlip?.split(",")?.run {
|
this.forEach {
|
mImageList1.add(ImageBean("", it.trim()))
|
}
|
}
|
adapter1.notifyData()
|
|
mImageList2.clear()
|
item.checkUserImg?.split(",")?.run {
|
this.forEach {
|
mImageList2.add(ImageBean("", it.trim()))
|
}
|
}
|
adapter2.notifyData()
|
|
mImageList3.clear()
|
item.integrityNotification?.split(",")?.run {
|
this.forEach {
|
mImageList3.add(ImageBean("", it.trim()))
|
}
|
}
|
adapter3.notifyData()
|
}
|
|
private fun initAdapter() {
|
adapter1 = ImageShowAdapter(activity, mImageList1)
|
adapter2 = ImageShowAdapter(activity, mImageList2)
|
adapter3 = ImageShowAdapter(activity, mImageList3)
|
bind.rv1.layoutManager =
|
LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
bind.rv2.layoutManager =
|
LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
bind.rv3.layoutManager =
|
LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
bind.rv1.adapter = adapter1
|
bind.rv2.adapter = adapter2
|
bind.rv3.adapter = adapter3
|
bind.rv1.isNestedScrollingEnabled = false
|
bind.rv1.setHasFixedSize(false)
|
bind.rv2.isNestedScrollingEnabled = false
|
bind.rv2.setHasFixedSize(false)
|
bind.rv3.isNestedScrollingEnabled = false
|
bind.rv3.setHasFixedSize(false)
|
}
|
|
private fun setListener() {
|
bind.etTitle.addTextChangedListener{
|
data.title = it.toString()
|
}
|
bind.takePhoto1.setOnClickListener {
|
operateIndex = 1
|
mImageProvider.showImageSelect()
|
}
|
bind.takePhoto2.setOnClickListener {
|
operateIndex = 2
|
mImageProvider.showImageSelect()
|
}
|
bind.takePhoto3.setOnClickListener {
|
operateIndex = 3
|
mImageProvider.showImageSelect()
|
}
|
bind.closeImg.setOnClickListener { dismiss() }
|
bind.btnSubmit.setOnClickListener {
|
checkParams {
|
vm.addCheckInfo(data) {
|
ToastUtils.showLong("操作成功")
|
dismiss()
|
}
|
}
|
}
|
bind.btnEdit.setOnClickListener {
|
checkParams {
|
vm.editCheckInfo(data) {
|
ToastUtils.showLong("操作成功")
|
dismiss()
|
}
|
}
|
}
|
bind.btnDelete.setOnClickListener {
|
vm.deleteCheckInfo(data) {
|
ToastUtils.showLong("操作成功")
|
dismiss()
|
}
|
}
|
}
|
|
private fun checkParams(block: () -> Unit) {
|
// if (data.title.isNullOrEmpty()) {
|
// ToastUtils.showLong("请输入标题")
|
// return
|
// }
|
data.safetySlip = ""
|
with(adapter1.data.map { it.accessPath }) {
|
if (this.isNotEmpty()) {
|
data.safetySlip = this.joinToString()
|
}
|
}
|
if (data.safetySlip.isNullOrEmpty()) {
|
ToastUtils.showLong("请选择安全告知单图片")
|
return
|
}
|
|
data.checkUserImg = ""
|
with(adapter2.data.map { it.accessPath }) {
|
if (this.isNotEmpty()) {
|
data.checkUserImg = this.joinToString()
|
}
|
}
|
if (data.checkUserImg.isNullOrEmpty()) {
|
ToastUtils.showLong("请选择检查人员图片")
|
return
|
}
|
|
data.integrityNotification = ""
|
with(adapter3.data.map { it.accessPath }) {
|
if (this.isNotEmpty()) {
|
data.integrityNotification = this.joinToString()
|
}
|
}
|
if (data.integrityNotification.isNullOrEmpty()) {
|
ToastUtils.showLong("请选择廉政告知单图片")
|
return
|
}
|
|
block.invoke()
|
}
|
}
|