package com.sw.platecabinet.fragment import android.content.Intent import android.os.Bundle import android.os.CountDownTimer import com.sw.platecabinet.Constants import com.sw.platecabinet.R import com.sw.platecabinet.activity.InitActivity import com.sw.platecabinet.databinding.FragmentPlateOpenBinding import com.sw.platecabinet.model.response.EquipmentUserInfo /** * 餐盘柜提示界面 */ class PlateOpenFragment : BaseFragment(FragmentPlateOpenBinding::inflate) { private var totalTimeInMillis: Long = Constants.AUTO_CLOSE_TIME * 1000 internal val KEY_ACTION_TYPE = "actionType" internal val PARAM_IS_ADMIN = "isAdmin" private var info: EquipmentUserInfo? = null private var isAdmin: Boolean = false companion object { @JvmStatic fun newInstance(userInfo: EquipmentUserInfo?, isAdmin: Boolean) = PlateOpenFragment().apply { arguments = Bundle().apply { putParcelable(KEY_ACTION_TYPE, userInfo) putBoolean(PARAM_IS_ADMIN, isAdmin) } } } override fun initialize() { arguments?.let { info = it.getParcelable(KEY_ACTION_TYPE) isAdmin = it.getBoolean(PARAM_IS_ADMIN) info?.let { if (!it.hasEquipmentBox()) { binding.ivType.setImageResource(R.drawable.ic_tip_warn) binding.tvTitle.text = "暂无餐盘信息" binding.tvSubTitle.text = "请联系管理员" binding.tvTitle.setTextColor(requireContext().getColor(R.color.tip_title_fail)) } else if (it.isOtherEquipment()) { binding.ivType.setImageResource(R.drawable.ic_tip_warn) binding.tvTitle.text = "暂无餐盘信息" binding.tvSubTitle.text = "您的餐盘绑定在${it.equipmentName ?: " "}号柜上" binding.tvTitle.setTextColor(requireContext().getColor(R.color.tip_title_fail)) } else { binding.ivType.setImageResource(R.drawable.ic_tip_success) binding.tvTitle.text = "柜门开启" binding.tvSubTitle.text = "餐盘取出后请关闭柜门" binding.tvTitle.setTextColor(requireContext().getColor(R.color.tip_title_success)) } } } initCountTime() } fun initCountTime() { object : CountDownTimer(totalTimeInMillis, 1000) { override fun onTick(millisUntilFinished: Long) { binding.tvAutoClose.text = ((millisUntilFinished / 1000).toInt() + 1).toString() } override fun onFinish() { activity?.finish() if (!isAdmin) { val intent = Intent(context, InitActivity::class.java) startActivity(intent) } } }.start() } }