PayActivity.kt 2.36 KB
Newer Older
jiangjiantao's avatar
jiangjiantao committed
1 2 3 4 5 6 7
package com.miya.fastcashier.ui

import android.content.Intent
import android.os.Bundle
import android.view.KeyEvent
import android.widget.Toast
import androidx.lifecycle.ViewModelProvider
8
import com.miya.fastcashier.config.IntentExtra
jiangjiantao's avatar
jiangjiantao committed
9 10 11 12
import com.miya.fastcashier.databinding.ActivityPayBinding
import com.miya.fastcashier.utils.CenterToasty
import com.miya.fastcashier.utils.ScanGunKeyEventHelper
import com.miya.fastcashier.utils.clickWithTrigger
13
import com.miya.fastcashier.utils.manage.OrderRecordManageKit
jiangjiantao's avatar
jiangjiantao committed
14 15 16 17 18 19 20 21
import com.miya.fastcashier.viewmodel.PayViewModel
import java.util.*

class PayActivity : BaseActivity() {
    private lateinit var viewModel: PayViewModel
    private lateinit var binding: ActivityPayBinding
    private var scanGunKeyEventHelper: ScanGunKeyEventHelper = ScanGunKeyEventHelper()

22
    private lateinit var price: String
jiangjiantao's avatar
jiangjiantao committed
23

24 25 26 27 28 29 30 31 32
    companion object {
        fun start(context: BaseActivity, price: String) {
            val intent = Intent()
            intent.setClass(context, PayActivity::class.java)
            intent.putExtra(IntentExtra.KEY_EXTRA_PRICE, price)
            context.startActivity(intent)
        }
    }

jiangjiantao's avatar
jiangjiantao committed
33 34 35 36 37 38
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityPayBinding.inflate(layoutInflater)
        setContentView(binding.root)
        viewModel = ViewModelProvider(this).get(PayViewModel::class.java)

39
        price = intent.getStringExtra(IntentExtra.KEY_EXTRA_PRICE).toString()
jiangjiantao's avatar
jiangjiantao committed
40 41 42
        val tvPayPrice = binding.tvPayPrice
        tvPayPrice.text = "¥${price.toDouble()}"

43
        viewModel.payResultLiveData.observe(this, { payResult ->
jiangjiantao's avatar
jiangjiantao committed
44 45
            dismissProgressDialog()
            payResult.onFailure {
46
                it.message?.let { it1 -> CenterToasty.error(this, it1, Toast.LENGTH_LONG).show() }
jiangjiantao's avatar
jiangjiantao committed
47
            }
48
            payResult.onSuccess {
49
                OrderRecordManageKit.setSerialNumber()
50
                PayResultActivity.start(this@PayActivity, it)
jiangjiantao's avatar
jiangjiantao committed
51 52
            }
        })
gaodapeng's avatar
gaodapeng committed
53
        binding.clTitle.llBack.clickWithTrigger { finish() }
jiangjiantao's avatar
jiangjiantao committed
54 55 56

        scanGunKeyEventHelper.setOnBarCodeCatchListener {
            showProgressDialog("正在支付..")
57
            viewModel.pay(price, it)
jiangjiantao's avatar
jiangjiantao committed
58 59 60 61 62 63 64 65 66
        }
    }

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

}