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() { val viewModel by viewModels() override fun getViewModel(): BaseViewModel { return viewModel } override fun inflateViewBinding(): ActivitySettingBinding { return ActivitySettingBinding.inflate(layoutInflater) } private val fragmentList = mutableListOf().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) -> 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) } }