|
@@ -18,10 +18,15 @@ import com.zhy.adapter.recyclerview.base.ViewHolder
|
|
|
class FingerprintConfigFragment :
|
|
class FingerprintConfigFragment :
|
|
|
BaseMvpFragment<IFingerprintConfigView, FingerprintConfigPresenter, FragmentFingerprintConfigBinding>() {
|
|
BaseMvpFragment<IFingerprintConfigView, FingerprintConfigPresenter, FragmentFingerprintConfigBinding>() {
|
|
|
|
|
|
|
|
- private val mFingerList = mutableListOf<CharacteristicPageRespVO.Record>()
|
|
|
|
|
|
|
+ private val mFingerList = mutableListOf<Pair<String?, List<CharacteristicPageRespVO.Record>>>()
|
|
|
private var mTipDialog: TipDialog? = null
|
|
private var mTipDialog: TipDialog? = null
|
|
|
private var mFingerDialog: FingerScanDialog? = null
|
|
private var mFingerDialog: FingerScanDialog? = null
|
|
|
private var mFingerprintLimit: Int = 5
|
|
private var mFingerprintLimit: Int = 5
|
|
|
|
|
+ private var mFingerprintPressTimes: Int = 0
|
|
|
|
|
+ private var mFingerprintInputErrorTimes: Int = 0
|
|
|
|
|
+ private var mFingerprintGroupName: Long = 0L
|
|
|
|
|
+ private val maxPressTimes = 3
|
|
|
|
|
+ private val inputFingerprintIds: MutableList<Long> = mutableListOf()
|
|
|
|
|
|
|
|
override val viewBinding: FragmentFingerprintConfigBinding
|
|
override val viewBinding: FragmentFingerprintConfigBinding
|
|
|
get() = FragmentFingerprintConfigBinding.inflate(layoutInflater)
|
|
get() = FragmentFingerprintConfigBinding.inflate(layoutInflater)
|
|
@@ -32,30 +37,36 @@ class FingerprintConfigFragment :
|
|
|
ToastUtils.tip(getString(R.string.fingerprint_config_tip, mFingerprintLimit))
|
|
ToastUtils.tip(getString(R.string.fingerprint_config_tip, mFingerprintLimit))
|
|
|
return@setOnClickListener
|
|
return@setOnClickListener
|
|
|
}
|
|
}
|
|
|
|
|
+ mFingerprintPressTimes = 0
|
|
|
|
|
+ mFingerprintInputErrorTimes = 0
|
|
|
showFingerScanDialog()
|
|
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
|
|
|
|
|
|
|
+ mBinding?.rvFinger?.adapter =
|
|
|
|
|
+ object : CommonAdapter<Pair<String?, List<CharacteristicPageRespVO.Record>>>(
|
|
|
|
|
+ requireContext(),
|
|
|
|
|
+ R.layout.item_rv_finger,
|
|
|
|
|
+ mFingerList
|
|
|
) {
|
|
) {
|
|
|
- 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
|
|
|
|
|
|
|
+ override fun convert(
|
|
|
|
|
+ holder: ViewHolder,
|
|
|
|
|
+ record: Pair<String?, List<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.second.mapNotNull { it.recordId?.toString() }
|
|
|
|
|
+ )
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
refreshFingerList()
|
|
refreshFingerList()
|
|
|
presenter?.getFingerprintLimit {
|
|
presenter?.getFingerprintLimit {
|
|
@@ -68,14 +79,15 @@ class FingerprintConfigFragment :
|
|
|
private fun refreshFingerList() {
|
|
private fun refreshFingerList() {
|
|
|
presenter?.getFingerPage {
|
|
presenter?.getFingerPage {
|
|
|
mFingerList.clear()
|
|
mFingerList.clear()
|
|
|
- it?.records?.let {
|
|
|
|
|
- mFingerList.addAll(it)
|
|
|
|
|
|
|
+ it?.records?.groupBy { it.group }?.let {
|
|
|
|
|
+ val fingerList = it.mapNotNull { it.key to it.value }.toMutableList()
|
|
|
|
|
+ mFingerList.addAll(fingerList)
|
|
|
}
|
|
}
|
|
|
mBinding?.rvFinger?.adapter?.notifyDataSetChanged()
|
|
mBinding?.rvFinger?.adapter?.notifyDataSetChanged()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private fun showTipDialog(tip: String, recordId: Long? = null, isAdd: Boolean = false) {
|
|
|
|
|
|
|
+ private fun showTipDialog(tip: String, recordId: List<String>? = null, isAdd: Boolean = false) {
|
|
|
mTipDialog ?: let {
|
|
mTipDialog ?: let {
|
|
|
mTipDialog = TipDialog(requireContext())
|
|
mTipDialog = TipDialog(requireContext())
|
|
|
}
|
|
}
|
|
@@ -84,7 +96,7 @@ class FingerprintConfigFragment :
|
|
|
mTipDialog?.setConfirmListener {
|
|
mTipDialog?.setConfirmListener {
|
|
|
if (!isAdd) {
|
|
if (!isAdd) {
|
|
|
recordId?.let {
|
|
recordId?.let {
|
|
|
- presenter?.deleteFinger(it) {
|
|
|
|
|
|
|
+ presenter?.deleteFinger(it.joinToString(",")) {
|
|
|
refreshFingerList()
|
|
refreshFingerList()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -95,16 +107,28 @@ class FingerprintConfigFragment :
|
|
|
|
|
|
|
|
private fun showFingerScanDialog() {
|
|
private fun showFingerScanDialog() {
|
|
|
mFingerDialog ?: let {
|
|
mFingerDialog ?: let {
|
|
|
|
|
+ mFingerprintGroupName = System.currentTimeMillis()
|
|
|
mFingerDialog = FingerScanDialog(requireContext()) {
|
|
mFingerDialog = FingerScanDialog(requireContext()) {
|
|
|
if (it != null) {
|
|
if (it != null) {
|
|
|
- presenter?.insertFinger(it) {
|
|
|
|
|
- mFingerDialog?.dismiss()
|
|
|
|
|
- if (it) {
|
|
|
|
|
- showTipDialog(
|
|
|
|
|
- getString(R.string.fingerprint_add_success_tip),
|
|
|
|
|
- isAdd = true
|
|
|
|
|
- )
|
|
|
|
|
- refreshFingerList()
|
|
|
|
|
|
|
+ presenter?.insertFinger(it, "$mFingerprintGroupName") {
|
|
|
|
|
+ if (it!=null) {
|
|
|
|
|
+ mFingerprintPressTimes++
|
|
|
|
|
+ if (mFingerprintPressTimes == 3) {
|
|
|
|
|
+ mFingerDialog?.dismiss()
|
|
|
|
|
+ showTipDialog(
|
|
|
|
|
+ getString(R.string.fingerprint_add_success_tip),
|
|
|
|
|
+ isAdd = true
|
|
|
|
|
+ )
|
|
|
|
|
+ refreshFingerList()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ToastUtils.tip(R.string.please_press_fingerprint_again)
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ mFingerprintInputErrorTimes++
|
|
|
|
|
+ if (mFingerprintInputErrorTimes+mFingerprintPressTimes>maxPressTimes){
|
|
|
|
|
+ mFingerprintGroupName = System.currentTimeMillis()
|
|
|
|
|
+ ToastUtils.tip(R.string.please_re_press_fingerprint_again)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|