88 lines
3.0 KiB
Kotlin
88 lines
3.0 KiB
Kotlin
package com.sw.dualscreen.activity
|
|
|
|
import androidx.activity.OnBackPressedCallback
|
|
import androidx.activity.viewModels
|
|
import androidx.fragment.app.Fragment
|
|
import com.sw.dualscreen.R
|
|
import com.sw.dualscreen.activity.fragment.BusinessFragment
|
|
import com.sw.dualscreen.activity.fragment.CollectFragment
|
|
import com.sw.dualscreen.databinding.ActivitySettingBinding
|
|
import com.sw.dualscreen.model.response.FoodInfo
|
|
import com.sw.dualscreen.model.response.ClickBackEvent
|
|
import com.sw.dualscreen.model.response.UpdateRefreshEvent
|
|
import com.sw.dualscreen.viewmodel.BaseViewModel
|
|
import com.sw.dualscreen.viewmodel.UserViewModel
|
|
import org.greenrobot.eventbus.EventBus
|
|
|
|
class SettingActivity : BaseActivity<ActivitySettingBinding>() {
|
|
|
|
val viewModel by viewModels<UserViewModel>()
|
|
override fun getViewModel(): BaseViewModel {
|
|
return viewModel
|
|
}
|
|
|
|
override fun inflateViewBinding(): ActivitySettingBinding {
|
|
return ActivitySettingBinding.inflate(layoutInflater)
|
|
}
|
|
|
|
private val fragmentList = mutableListOf<Fragment>().apply {
|
|
add(BusinessFragment())
|
|
add(CollectFragment())
|
|
}
|
|
|
|
override fun initialize() {
|
|
super.initialize()
|
|
registerKeyEvent()
|
|
initBackDispatcher()
|
|
binding.include.let {
|
|
it.ivPageBack.setOnClickListener {
|
|
//// val intent = Intent(this, MainActivity::class.java)
|
|
//// startActivity(intent)
|
|
// EventBus.getDefault().post(ClickBackEvent())
|
|
finish()
|
|
}
|
|
it.tvPageTitle.text = "设置"
|
|
}
|
|
binding.rgSetting.setOnCheckedChangeListener { group, checkedId ->
|
|
if (checkedId == R.id.rbBusiness) {
|
|
showFragment(fragmentList[0])
|
|
return@setOnCheckedChangeListener
|
|
}
|
|
if (checkedId == R.id.rbCollect) {
|
|
EventBus.getDefault().post(UpdateRefreshEvent())
|
|
showFragment(fragmentList[1])
|
|
return@setOnCheckedChangeListener
|
|
}
|
|
}
|
|
binding.rgSetting.check(R.id.rbBusiness)
|
|
}
|
|
|
|
private fun showFragment(fragment: Fragment) {
|
|
runCatching {
|
|
supportFragmentManager.beginTransaction().apply {
|
|
replace(R.id.fragmentContainerView, fragment)
|
|
commit()
|
|
}
|
|
}.onFailure {
|
|
it.printStackTrace()
|
|
}
|
|
}
|
|
|
|
fun searchByFoodName(foodName:String, action: (List<FoodInfo>) -> Unit) {
|
|
viewModel.searchByFoodName(foodName, action)
|
|
}
|
|
|
|
private lateinit var backPressedCallback: OnBackPressedCallback
|
|
private fun initBackDispatcher() {
|
|
// 创建回调,true表示初始启用状态
|
|
// backPressedCallback = object : OnBackPressedCallback(true) {
|
|
// override fun handleOnBackPressed() {
|
|
//// EventBus.getDefault().post(ClickBackEvent())
|
|
// }
|
|
// }
|
|
// // 注册回调,使用lifecycleOwner确保生命周期安全
|
|
// onBackPressedDispatcher.addCallback(this, backPressedCallback)
|
|
}
|
|
|
|
|
|
} |