You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SmsForwarder/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/SimFragment.kt

111 lines
3.8 KiB
Kotlin

package com.idormy.sms.forwarder.fragment.condition
import android.annotation.SuppressLint
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.gson.Gson
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.databinding.FragmentTasksConditionSimBinding
import com.idormy.sms.forwarder.entity.task.SimSetting
import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION
import com.idormy.sms.forwarder.utils.KEY_BACK_DESCRIPTION_CONDITION
import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION
import com.idormy.sms.forwarder.utils.TASK_CONDITION_SIM
import com.idormy.sms.forwarder.utils.XToastUtils
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page
import com.xuexiang.xrouter.annotation.AutoWired
import com.xuexiang.xrouter.launcher.XRouter
import com.xuexiang.xui.widget.actionbar.TitleBar
@Page(name = "Sim")
@Suppress("PrivatePropertyName")
class SimFragment : BaseFragment<FragmentTasksConditionSimBinding?>(), View.OnClickListener {
private val TAG: String = SimFragment::class.java.simpleName
private var titleBar: TitleBar? = null
@JvmField
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
var eventData: String? = null
override fun initArgs() {
XRouter.getInstance().inject(this)
}
override fun viewBindingInflate(
inflater: LayoutInflater,
container: ViewGroup,
): FragmentTasksConditionSimBinding {
return FragmentTasksConditionSimBinding.inflate(inflater, container, false)
}
override fun initTitle(): TitleBar? {
titleBar = super.initTitle()!!.setImmersive(false).setTitle(R.string.task_sim)
return titleBar
}
/**
* 初始化控件
*/
override fun initViews() {
Log.d(TAG, "initViews eventData:$eventData")
if (eventData != null) {
val settingVo = Gson().fromJson(eventData, SimSetting::class.java)
Log.d(TAG, "initViews settingVo:$settingVo")
binding!!.tvDescription.text = settingVo.description
binding!!.rgSimState.check(settingVo.getSimStateCheckId())
}
}
@SuppressLint("SetTextI18n")
override fun initListeners() {
binding!!.btnDel.setOnClickListener(this)
binding!!.btnSave.setOnClickListener(this)
binding!!.rgSimState.setOnCheckedChangeListener { _, _ ->
checkSetting(true)
}
}
@SingleClick
override fun onClick(v: View) {
try {
when (v.id) {
R.id.btn_del -> {
popToBack()
return
}
R.id.btn_save -> {
val settingVo = checkSetting()
val intent = Intent()
intent.putExtra(KEY_BACK_DESCRIPTION_CONDITION, settingVo.description)
intent.putExtra(KEY_BACK_DATA_CONDITION, Gson().toJson(settingVo))
setFragmentResult(TASK_CONDITION_SIM, intent)
popToBack()
return
}
}
} catch (e: Exception) {
XToastUtils.error(e.message.toString(), 30000)
e.printStackTrace()
}
}
//检查设置
private fun checkSetting(updateView: Boolean = false): SimSetting {
val simStateCheckId = binding!!.rgSimState.checkedRadioButtonId
val settingVo = SimSetting(simStateCheckId)
if (updateView) {
binding!!.tvDescription.text = settingVo.description
}
return settingVo
}
}