package com.sw.platecabinet.utils import androidx.fragment.app.FragmentActivity import com.sw.plate.utils.ToastUtils import com.sw.plate.utils.comn.SerialApi import com.sw.plate.utils.comn.SerialPortManager import com.sw.platecabinet.activity.BaseActivity import com.sw.platecabinet.activity.MainActivity import com.sw.platecabinet.activity.PageType import timber.log.Timber object PlateUtils { fun open( fragmentActivity: FragmentActivity, code: String?, isScanCode: Boolean, isSetting: Boolean = false, callback: () -> Unit = {} ) { val activity = fragmentActivity as BaseActivity<*> Timber.d("itemClick llOpen equipmentBoxCode = ${code}") val equipmentBoxCode: Int = code?.toInt() ?: -1 if (equipmentBoxCode < 0) { ToastUtils.showToast("餐盘柜编号错误") return } activity.showWaitingDialog("请稍等") SerialApi.openPlate(equipmentBoxCode, object : SerialPortManager.SendCallback { override fun onSuccess() { activity.hideWaitingDialog() if (isSetting.not()) { MainActivity.start( activity, pageType = PageType.PLATE_TIP, isScanCode = isScanCode ) } else { ToastUtils.showToast("柜门打开成功") callback() } } override fun onFail(e: Exception?) { activity.hideWaitingDialog() ToastUtils.showToast("柜门打开失败") callback() } }) } fun openDirect(boxCode: String?) { val boxNumber = boxCode?.toIntOrNull() ?: -1 if (boxNumber < 0) return SerialApi.openPlate(boxNumber, object : SerialPortManager.SendCallback { override fun onSuccess() { } override fun onFail(e: Exception?) { } }) } }