|
|
@@ -0,0 +1,106 @@
|
|
|
+package com.grkj.iscs.view.fragment
|
|
|
+
|
|
|
+import com.grkj.iscs.R
|
|
|
+import com.grkj.iscs.databinding.FragmentFingerprintConfigBinding
|
|
|
+import com.grkj.iscs.model.vo.characteristic.CharacteristicPageRespVO
|
|
|
+import com.grkj.iscs.util.ToastUtils
|
|
|
+import com.grkj.iscs.view.base.BaseMvpFragment
|
|
|
+import com.grkj.iscs.view.dialog.FingerScanDialog
|
|
|
+import com.grkj.iscs.view.dialog.TipDialog
|
|
|
+import com.grkj.iscs.view.iview.IFingerprintConfigView
|
|
|
+import com.grkj.iscs.view.presenter.FingerprintConfigPresenter
|
|
|
+import com.zhy.adapter.recyclerview.CommonAdapter
|
|
|
+import com.zhy.adapter.recyclerview.base.ViewHolder
|
|
|
+
|
|
|
+/**
|
|
|
+ * 指纹设置页
|
|
|
+ */
|
|
|
+class FingerprintConfigFragment :
|
|
|
+ BaseMvpFragment<IFingerprintConfigView, FingerprintConfigPresenter, FragmentFingerprintConfigBinding>() {
|
|
|
+
|
|
|
+ private val mFingerList = mutableListOf<CharacteristicPageRespVO.Record>()
|
|
|
+ private var mTipDialog: TipDialog? = null
|
|
|
+ private var mFingerDialog: FingerScanDialog? = null
|
|
|
+
|
|
|
+ override val viewBinding: FragmentFingerprintConfigBinding
|
|
|
+ get() = FragmentFingerprintConfigBinding.inflate(layoutInflater)
|
|
|
+
|
|
|
+ override fun initView() {
|
|
|
+ mBinding?.cbAddFinger?.setOnClickListener {
|
|
|
+ if (mFingerList.size >= 3) {
|
|
|
+ ToastUtils.tip(R.string.fingerprint_config_tip)
|
|
|
+ return@setOnClickListener
|
|
|
+ }
|
|
|
+ showFingerScanDialog()
|
|
|
+ }
|
|
|
+
|
|
|
+ mBinding?.rvFinger?.adapter = object : CommonAdapter<CharacteristicPageRespVO.Record>(
|
|
|
+ requireContext(),
|
|
|
+ R.layout.item_rv_finger,
|
|
|
+ mFingerList
|
|
|
+ ) {
|
|
|
+ override fun convert(holder: ViewHolder, record: CharacteristicPageRespVO.Record, position: Int) {
|
|
|
+ holder.setText(R.id.tv_name, "${getString(R.string.fingerprint)}${position + 1}")
|
|
|
+ holder.setOnClickListener(R.id.root) {
|
|
|
+ showTipDialog(
|
|
|
+ getString(
|
|
|
+ R.string.fingerprint_delete_confirm_tip,
|
|
|
+ "${getString(R.string.fingerprint)}${position + 1}"
|
|
|
+ ), record.recordId
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ refreshFingerList()
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun refreshFingerList() {
|
|
|
+ presenter?.getFingerPage {
|
|
|
+ mFingerList.clear()
|
|
|
+ it?.records?.let {
|
|
|
+ mFingerList.addAll(it)
|
|
|
+ }
|
|
|
+ mBinding?.rvFinger?.adapter?.notifyDataSetChanged()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun showTipDialog(tip: String, recordId: Long? = null, isAdd: Boolean = false) {
|
|
|
+ mTipDialog ?: let {
|
|
|
+ mTipDialog = TipDialog(requireContext())
|
|
|
+ }
|
|
|
+ mTipDialog?.setTip(tip)
|
|
|
+ mTipDialog?.setType(if (isAdd) TipDialog.TYPE_CONFIRM else TipDialog.TYPE_ALL)
|
|
|
+ mTipDialog?.setConfirmListener {
|
|
|
+ if (!isAdd) {
|
|
|
+ recordId?.let {
|
|
|
+ presenter?.deleteFinger(it) {
|
|
|
+ refreshFingerList()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mTipDialog?.show()
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun showFingerScanDialog() {
|
|
|
+ mFingerDialog ?: let {
|
|
|
+ mFingerDialog = FingerScanDialog(requireContext()) {
|
|
|
+ if (it != null) {
|
|
|
+ presenter?.insertFinger(it) {
|
|
|
+ mFingerDialog?.dismiss()
|
|
|
+ if (it) {
|
|
|
+ showTipDialog(getString(R.string.fingerprint_add_success_tip), isAdd = true)
|
|
|
+ refreshFingerList()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mFingerDialog?.show()
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun initPresenter(): FingerprintConfigPresenter {
|
|
|
+ return FingerprintConfigPresenter()
|
|
|
+ }
|
|
|
+}
|