140 lines
4.2 KiB
Kotlin
140 lines
4.2 KiB
Kotlin
package com.sw.platecabinet.activity
|
|
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import com.sw.plate.utils.ToastUtils
|
|
import com.sw.platecabinet.R
|
|
import com.sw.platecabinet.databinding.ActivityMainBinding
|
|
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
|
|
import com.sw.platecabinet.dialog.CustomDialog
|
|
import com.sw.platecabinet.fragment.PlateCabinetFullFragment
|
|
import com.sw.platecabinet.fragment.PlateOpenFragment
|
|
import com.sw.platecabinet.fragment.SettingListFragment
|
|
import com.sw.platecabinet.utils.FragmentHelper
|
|
|
|
typealias Callback = (String) -> Unit
|
|
|
|
/**
|
|
* 主界面,内部嵌套framgnet使用
|
|
*/
|
|
class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|
private lateinit var fragmentHelper: FragmentHelper
|
|
private var pageType = PageType.SETTING_LIST
|
|
private var callback: Callback? = null
|
|
|
|
override fun inflateViewBinding(): ActivityMainBinding {
|
|
return ActivityMainBinding.inflate(layoutInflater)
|
|
}
|
|
|
|
override fun inflateTitleBinding(): ItemTitleTimeBinding {
|
|
return binding.includeHeader
|
|
}
|
|
|
|
// 静态启动方法
|
|
companion object {
|
|
private const val PARAM_PAGE_TYPE = "pageType"
|
|
// private const val PARAM_EQUIPMENT_INFO = "equipmentUserInfo"
|
|
// private const val PARAM_IS_ADMIN = "isAdmin"
|
|
// fun start(
|
|
// context: Context,
|
|
// pageType: PageType,
|
|
// equipmentUserInfo: EquipmentUserInfo? = null,
|
|
// isAdmin: Boolean = false,
|
|
// block:()->Unit={}
|
|
// ) {
|
|
// val intent = Intent(context, MainActivity::class.java)
|
|
// intent.putExtra(PARAM_PAGE_TYPE, pageType.name)
|
|
// intent.putExtra(PARAM_EQUIPMENT_INFO, equipmentUserInfo)
|
|
// intent.putExtra(PARAM_IS_ADMIN, isAdmin)
|
|
// context.startActivity(intent)
|
|
// }
|
|
|
|
fun start(context: Context, pageType: PageType, isScanCode: Boolean = false) {
|
|
val intent = Intent(context, MainActivity::class.java)
|
|
intent.putExtra(PARAM_PAGE_TYPE, pageType.name)
|
|
intent.putExtra(PlateOpenFragment.IS_SCAN_CODE, isScanCode)
|
|
context.startActivity(intent)
|
|
}
|
|
}
|
|
|
|
override fun initialize() {
|
|
val param = intent.getStringExtra(PARAM_PAGE_TYPE)
|
|
// val isAdmin = intent.getBooleanExtra(PARAM_IS_ADMIN, false)
|
|
val isScanCode = intent.getBooleanExtra(PlateOpenFragment.IS_SCAN_CODE, false)
|
|
// val equipmentUserInfo = intent.getParcelableExtra<EquipmentUserInfo>(PARAM_EQUIPMENT_INFO)
|
|
pageType = param?.let { PageType.valueOf(param) } ?: PageType.SETTING_LIST
|
|
fragmentHelper = FragmentHelper(supportFragmentManager, R.id.fragment_container)
|
|
val page = when (pageType) {
|
|
PageType.SETTING_LIST -> SettingListFragment()
|
|
// PageType.BIND_PLATE -> BindPlateFragment.newInstance(equipmentUserInfo)
|
|
// PageType.PLATE_TIP -> PlateOpenFragment.newInstance(equipmentUserInfo, isAdmin)
|
|
PageType.PLATE_TIP -> PlateOpenFragment.newInstance(isScanCode)
|
|
// PageType.UNBIND_PLATE -> UnBindPlateFragment.newInstance(equipmentUserInfo)
|
|
PageType.PLATE_CABINET_FULL -> PlateCabinetFullFragment()
|
|
else -> null
|
|
}
|
|
page?.let {
|
|
fragmentHelper.addFragment(it)
|
|
}
|
|
}
|
|
|
|
override fun onLeftDoubleClick() {
|
|
if (pageType == PageType.SETTING_LIST) {
|
|
finish()
|
|
}
|
|
}
|
|
|
|
override fun onRightDoubleClick() {
|
|
if (pageType == PageType.SETTING_LIST) {
|
|
startActivity(Intent(this, FunActivity::class.java))
|
|
}
|
|
}
|
|
|
|
override fun handleScanKeyInfo(scanInfo: String) {
|
|
if (callback != null) {
|
|
callback!!.invoke(scanInfo)
|
|
}
|
|
}
|
|
|
|
fun registerKeyEventInfo(callback: Callback) {
|
|
this.callback = callback
|
|
}
|
|
|
|
override fun registerDataChange() {
|
|
super.registerDataChange()
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* 界面类型
|
|
*/
|
|
enum class PageType {
|
|
/**
|
|
* 提示
|
|
*/
|
|
PLATE_TIP,
|
|
|
|
/**
|
|
* 设置列表
|
|
*/
|
|
SETTING_LIST,
|
|
|
|
/**
|
|
* 绑定餐盘
|
|
*/
|
|
BIND_PLATE,
|
|
|
|
/**
|
|
* 解绑餐盘
|
|
*/
|
|
UNBIND_PLATE,
|
|
|
|
/**
|
|
* 餐盘柜已满
|
|
*/
|
|
PLATE_CABINET_FULL
|
|
}
|
|
|