RefundActivity.kt 3.31 KB
Newer Older
jiangjiantao's avatar
jiangjiantao committed
1 2
package com.miya.fastcashier.ui

3
import android.content.Intent
jiangjiantao's avatar
jiangjiantao committed
4 5 6 7
import android.os.Bundle
import android.view.KeyEvent
import android.widget.Toast
import androidx.lifecycle.ViewModelProvider
赵鹏翔's avatar
赵鹏翔 committed
8
import com.fastcashier.lib_common.base.BaseActivity
9 10
import com.fastcashier.lib_common.ui.dialog.NumberManualDialog
import com.fastcashier.lib_common.util.clickWithTrigger
jiangjiantao's avatar
jiangjiantao committed
11
import com.miya.fastcashier.databinding.ActivityRefundBinding
赵鹏翔's avatar
赵鹏翔 committed
12 13
import com.miya.fastcashier.util.CenterToasty
import com.miya.fastcashier.util.ScanGunKeyEventHelper
jiangjiantao's avatar
jiangjiantao committed
14 15 16 17 18 19 20
import com.miya.fastcashier.viewmodel.PayViewModel


class RefundActivity : BaseActivity() {
    private lateinit var viewModel: PayViewModel
    private lateinit var binding: ActivityRefundBinding

21
    private var numberManualDialog: NumberManualDialog? = null
jiangjiantao's avatar
jiangjiantao committed
22 23 24

    private var scanGunKeyEventHelper: ScanGunKeyEventHelper = ScanGunKeyEventHelper()

25 26 27 28 29 30 31
    companion object {
        fun start(context: BaseActivity) {
            val intent = Intent(context, RefundActivity::class.java)
            context.startActivity(intent)
        }
    }

jiangjiantao's avatar
jiangjiantao committed
32 33 34 35 36 37
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding = ActivityRefundBinding.inflate(layoutInflater)
        setContentView(binding.root)
        viewModel = ViewModelProvider(this).get(PayViewModel::class.java)
38
        viewModel.payResultLiveData.observe(this, { payResult ->
jiangjiantao's avatar
jiangjiantao committed
39 40
            payResult.onFailure {
                dismissProgressDialog()
41
                it.message?.let { it1 -> CenterToasty.error(this, it1, Toast.LENGTH_LONG).show() }
jiangjiantao's avatar
jiangjiantao committed
42 43 44
            }
            payResult.onSuccess { payServiceResponse ->
                dismissProgressDialog()
45 46
                PriceInputActivity.start(
                    this@RefundActivity,
47
                    PriceInputActivity.PRICEINPUT_TYPE_CREFUND,
48 49
                    payServiceResponse
                )
jiangjiantao's avatar
jiangjiantao committed
50 51 52
            }
        })

53
        viewModel.refundLiveData.observe(this, { payResult ->
jiangjiantao's avatar
jiangjiantao committed
54 55
            payResult.onFailure {
                dismissProgressDialog()
56
                it.message?.let { it1 -> CenterToasty.error(this, it1, Toast.LENGTH_LONG).show() }
jiangjiantao's avatar
jiangjiantao committed
57 58 59
            }
            payResult.onSuccess {
                dismissProgressDialog()
60
                CenterToasty.success(this, "退款成功!!", Toast.LENGTH_LONG).show()
jiangjiantao's avatar
jiangjiantao committed
61 62 63
                finish()
            }
        })
jiangjiantao's avatar
jiangjiantao committed
64
        val llBack = binding.llBack
jiangjiantao's avatar
jiangjiantao committed
65

jiangjiantao's avatar
jiangjiantao committed
66
        llBack.clickWithTrigger { finish() }
jiangjiantao's avatar
jiangjiantao committed
67

赵鹏翔's avatar
赵鹏翔 committed
68
        binding.ivRefundManualInput.clickWithTrigger {
jiangjiantao's avatar
jiangjiantao committed
69 70 71
            if (numberManualDialog == null) {
                numberManualDialog = NumberManualDialog(this);
                numberManualDialog!!.setNumberInputListener(object :
72
                    NumberManualDialog.NumberInputListener {
jiangjiantao's avatar
jiangjiantao committed
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
                    override fun numberInput(number: String) {
                        showProgressDialog("正在为您退款..")
                        viewModel.payResultQuery(number)
                    }
                })
            }
            numberManualDialog!!.show()
        }

        scanGunKeyEventHelper.setOnBarCodeCatchListener {
            showProgressDialog("正在为您退款..")
            viewModel.payResultQuery(it)
        }
    }

    override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
        scanGunKeyEventHelper.analysisKeyEvent(event)
        return super.dispatchKeyEvent(event)
    }
}