新增:自动任务·快捷指令 (开发中)
This commit is contained in:
parent
f288f5a6dc
commit
1302bf9e20
|
@ -15,15 +15,12 @@ import com.idormy.sms.forwarder.entity.task.BatterySetting
|
|||
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.KEY_TEST_CONDITION
|
||||
import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
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.utils.CountDownButtonHelper
|
||||
import com.xuexiang.xui.widget.actionbar.TitleBar
|
||||
|
||||
@Page(name = "Battery")
|
||||
|
@ -32,7 +29,6 @@ class BatteryFragment : BaseFragment<FragmentTasksConditionBatteryBinding?>(), V
|
|||
|
||||
private val TAG: String = BatteryFragment::class.java.simpleName
|
||||
var titleBar: TitleBar? = null
|
||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
|
||||
@JvmField
|
||||
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
|
||||
|
@ -60,18 +56,6 @@ class BatteryFragment : BaseFragment<FragmentTasksConditionBatteryBinding?>(), V
|
|||
* 初始化控件
|
||||
*/
|
||||
override fun initViews() {
|
||||
//测试按钮增加倒计时,避免重复点击
|
||||
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
|
||||
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
|
||||
override fun onCountDown(time: Int) {
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
|
||||
}
|
||||
|
||||
override fun onFinished() {
|
||||
binding!!.btnTest.text = getString(R.string.test)
|
||||
}
|
||||
})
|
||||
|
||||
binding!!.rgStatus.setOnCheckedChangeListener { _, checkedId ->
|
||||
if (checkedId == R.id.rb_battery_discharging) {
|
||||
binding!!.xsbLevelMin.visibility = View.VISIBLE
|
||||
|
@ -80,16 +64,18 @@ class BatteryFragment : BaseFragment<FragmentTasksConditionBatteryBinding?>(), V
|
|||
binding!!.xsbLevelMin.visibility = View.GONE
|
||||
binding!!.xsbLevelMax.visibility = View.VISIBLE
|
||||
}
|
||||
checkSetting(true)
|
||||
}
|
||||
|
||||
Log.d(TAG, "initViews eventData:$eventData")
|
||||
if (eventData != null) {
|
||||
val settingVo = Gson().fromJson(eventData, BatterySetting::class.java)
|
||||
Log.d(TAG, "initViews settingVo:$settingVo")
|
||||
binding!!.rgStatus.check(settingVo.getStatusCheckId())
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
binding!!.xsbLevelMin.setDefaultValue(settingVo.levelMin)
|
||||
binding!!.xsbLevelMax.setDefaultValue(settingVo.levelMax)
|
||||
binding!!.sbKeepReminding.isChecked = settingVo.keepReminding
|
||||
binding!!.rgStatus.check(settingVo.getStatusCheckId())
|
||||
} else {
|
||||
binding!!.xsbLevelMin.setDefaultValue(10)
|
||||
binding!!.xsbLevelMax.setDefaultValue(90)
|
||||
|
@ -98,17 +84,16 @@ class BatteryFragment : BaseFragment<FragmentTasksConditionBatteryBinding?>(), V
|
|||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun initListeners() {
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
|
||||
mCountDownHelper?.finish()
|
||||
|
||||
if (it == "success") {
|
||||
XToastUtils.success("测试通过", 30000)
|
||||
} else {
|
||||
XToastUtils.error(it, 30000)
|
||||
}
|
||||
binding!!.xsbLevelMin.setOnSeekBarListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
binding!!.xsbLevelMax.setOnSeekBarListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
binding!!.sbKeepReminding.setOnCheckedChangeListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -116,20 +101,6 @@ class BatteryFragment : BaseFragment<FragmentTasksConditionBatteryBinding?>(), V
|
|||
override fun onClick(v: View) {
|
||||
try {
|
||||
when (v.id) {
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
Thread {
|
||||
try {
|
||||
val settingVo = checkSetting()
|
||||
Log.d(TAG, settingVo.toString())
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
|
||||
} catch (e: Exception) {
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
|
||||
e.printStackTrace()
|
||||
}
|
||||
}.start()
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_del -> {
|
||||
popToBack()
|
||||
|
@ -154,26 +125,34 @@ class BatteryFragment : BaseFragment<FragmentTasksConditionBatteryBinding?>(), V
|
|||
|
||||
//检查设置
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun checkSetting(): BatterySetting {
|
||||
private fun checkSetting(updateView: Boolean = false): BatterySetting {
|
||||
val levelMin = binding!!.xsbLevelMin.selectedNumber
|
||||
val levelMax = binding!!.xsbLevelMax.selectedNumber
|
||||
val keepReminding = binding!!.sbKeepReminding.isChecked
|
||||
val status: Int
|
||||
if (binding!!.rgStatus.checkedRadioButtonId == R.id.rb_battery_discharging) {
|
||||
status = BatteryManager.BATTERY_STATUS_DISCHARGING
|
||||
description = if (keepReminding) {
|
||||
String.format(getString(R.string.battery_discharged_below), levelMin.toString())
|
||||
} else {
|
||||
String.format(getString(R.string.battery_discharged_to), levelMin.toString())
|
||||
val status: Int = when (binding!!.rgStatus.checkedRadioButtonId) {
|
||||
R.id.rb_battery_discharging -> {
|
||||
description = if (keepReminding) {
|
||||
String.format(getString(R.string.battery_discharged_below), levelMin.toString())
|
||||
} else {
|
||||
String.format(getString(R.string.battery_discharged_to), levelMin.toString())
|
||||
}
|
||||
BatteryManager.BATTERY_STATUS_DISCHARGING
|
||||
}
|
||||
} else {
|
||||
status = BatteryManager.BATTERY_STATUS_CHARGING
|
||||
description = if (keepReminding) {
|
||||
String.format(getString(R.string.battery_charged_above), levelMax.toString())
|
||||
} else {
|
||||
String.format(getString(R.string.battery_charged_to), levelMax.toString())
|
||||
|
||||
else -> {
|
||||
description = if (keepReminding) {
|
||||
String.format(getString(R.string.battery_charged_above), levelMax.toString())
|
||||
} else {
|
||||
String.format(getString(R.string.battery_charged_to), levelMax.toString())
|
||||
}
|
||||
BatteryManager.BATTERY_STATUS_CHARGING
|
||||
}
|
||||
}
|
||||
|
||||
if (updateView) {
|
||||
binding!!.tvDescription.text = description
|
||||
}
|
||||
|
||||
return BatterySetting(description, status, levelMin, levelMax, keepReminding)
|
||||
}
|
||||
}
|
|
@ -14,15 +14,12 @@ import com.idormy.sms.forwarder.entity.task.ChargeSetting
|
|||
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.KEY_TEST_CONDITION
|
||||
import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
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.utils.CountDownButtonHelper
|
||||
import com.xuexiang.xui.widget.actionbar.TitleBar
|
||||
|
||||
@Page(name = "Charge")
|
||||
|
@ -31,7 +28,6 @@ class ChargeFragment : BaseFragment<FragmentTasksConditionChargeBinding?>(), Vie
|
|||
|
||||
private val TAG: String = ChargeFragment::class.java.simpleName
|
||||
var titleBar: TitleBar? = null
|
||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
|
||||
@JvmField
|
||||
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
|
||||
|
@ -57,22 +53,11 @@ class ChargeFragment : BaseFragment<FragmentTasksConditionChargeBinding?>(), Vie
|
|||
* 初始化控件
|
||||
*/
|
||||
override fun initViews() {
|
||||
//测试按钮增加倒计时,避免重复点击
|
||||
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
|
||||
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
|
||||
override fun onCountDown(time: Int) {
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
|
||||
}
|
||||
|
||||
override fun onFinished() {
|
||||
binding!!.btnTest.text = getString(R.string.test)
|
||||
}
|
||||
})
|
||||
|
||||
Log.d(TAG, "initViews eventData:$eventData")
|
||||
if (eventData != null) {
|
||||
val settingVo = Gson().fromJson(eventData, ChargeSetting::class.java)
|
||||
Log.d(TAG, "initViews settingVo:$settingVo")
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
binding!!.rgStatus.check(settingVo.getStatusCheckId())
|
||||
binding!!.rgPlugged.check(settingVo.getPluggedCheckId())
|
||||
}
|
||||
|
@ -80,17 +65,13 @@ class ChargeFragment : BaseFragment<FragmentTasksConditionChargeBinding?>(), Vie
|
|||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun initListeners() {
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
|
||||
mCountDownHelper?.finish()
|
||||
|
||||
if (it == "success") {
|
||||
XToastUtils.success("测试通过", 30000)
|
||||
} else {
|
||||
XToastUtils.error(it, 30000)
|
||||
}
|
||||
binding!!.rgStatus.setOnCheckedChangeListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
binding!!.rgPlugged.setOnCheckedChangeListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -98,20 +79,6 @@ class ChargeFragment : BaseFragment<FragmentTasksConditionChargeBinding?>(), Vie
|
|||
override fun onClick(v: View) {
|
||||
try {
|
||||
when (v.id) {
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
Thread {
|
||||
try {
|
||||
val settingVo = checkSetting()
|
||||
Log.d(TAG, settingVo.toString())
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
|
||||
} catch (e: Exception) {
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
|
||||
e.printStackTrace()
|
||||
}
|
||||
}.start()
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_del -> {
|
||||
popToBack()
|
||||
|
@ -135,9 +102,15 @@ class ChargeFragment : BaseFragment<FragmentTasksConditionChargeBinding?>(), Vie
|
|||
}
|
||||
|
||||
//检查设置
|
||||
private fun checkSetting(): ChargeSetting {
|
||||
private fun checkSetting(updateView: Boolean = false): ChargeSetting {
|
||||
val statusCheckId = binding!!.rgStatus.checkedRadioButtonId
|
||||
val pluggedCheckId = binding!!.rgPlugged.checkedRadioButtonId
|
||||
return ChargeSetting(statusCheckId = statusCheckId, pluggedCheckId = pluggedCheckId)
|
||||
val settingVo = ChargeSetting(statusCheckId = statusCheckId, pluggedCheckId = pluggedCheckId)
|
||||
|
||||
if (updateView) {
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
}
|
||||
|
||||
return settingVo
|
||||
}
|
||||
}
|
|
@ -116,6 +116,7 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
Log.d(TAG, "initViews eventData:$eventData")
|
||||
if (eventData != null) {
|
||||
val settingVo = Gson().fromJson(eventData, CronSetting::class.java)
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
expression = settingVo.expression
|
||||
Log.d(TAG, "initViews expression:$expression")
|
||||
|
||||
|
@ -159,6 +160,7 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
nextTimeList.add(dateFormat.format(nextDate))
|
||||
times++
|
||||
}
|
||||
binding!!.tvDescription.text = description
|
||||
binding!!.tvCronExpressionCheckTips.text = "$expression\n$description"
|
||||
binding!!.tvNextTimeList.text = String.format(getString(R.string.next_execution_times), times.toString(), nextTimeList.joinToString("\n"))
|
||||
binding!!.tvNextTimeList.visibility = View.VISIBLE
|
||||
|
@ -235,13 +237,6 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
afterSecondChanged()
|
||||
}
|
||||
}
|
||||
/*binding!!.etSecond.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable) {
|
||||
afterSecondChanged()
|
||||
}
|
||||
})*/
|
||||
binding!!.etSecond.setText(second)
|
||||
afterSecondChanged()
|
||||
|
||||
|
@ -405,13 +400,6 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
afterMinuteChanged()
|
||||
}
|
||||
}
|
||||
/*binding!!.etMinute.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable) {
|
||||
afterMinuteChanged()
|
||||
}
|
||||
})*/
|
||||
binding!!.etMinute.setText(minute)
|
||||
afterMinuteChanged()
|
||||
|
||||
|
@ -575,13 +563,6 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
afterHourChanged()
|
||||
}
|
||||
}
|
||||
/*binding!!.etHour.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable) {
|
||||
afterHourChanged()
|
||||
}
|
||||
})*/
|
||||
binding!!.etHour.setText(hour)
|
||||
afterHourChanged()
|
||||
|
||||
|
@ -745,13 +726,6 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
afterDayChanged()
|
||||
}
|
||||
}
|
||||
/*binding!!.etDay.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable) {
|
||||
afterDayChanged()
|
||||
}
|
||||
})*/
|
||||
binding!!.etDay.setText(day)
|
||||
afterDayChanged()
|
||||
|
||||
|
@ -961,13 +935,6 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
afterMonthChanged()
|
||||
}
|
||||
}
|
||||
/*binding!!.etMonth.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable) {
|
||||
afterMonthChanged()
|
||||
}
|
||||
})*/
|
||||
binding!!.etMonth.setText(month)
|
||||
afterMonthChanged()
|
||||
|
||||
|
@ -1130,13 +1097,6 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
afterWeekChanged()
|
||||
}
|
||||
}
|
||||
/*binding!!.etWeek.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable) {
|
||||
afterWeekChanged()
|
||||
}
|
||||
})*/
|
||||
binding!!.etWeek.setText(week)
|
||||
afterWeekChanged()
|
||||
|
||||
|
@ -1346,13 +1306,6 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
|
|||
afterYearChanged()
|
||||
}
|
||||
}
|
||||
/*binding!!.etYear.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable) {
|
||||
afterYearChanged()
|
||||
}
|
||||
})*/
|
||||
binding!!.etYear.setText(year)
|
||||
afterYearChanged()
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@ package com.idormy.sms.forwarder.fragment.condition
|
|||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Intent
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
|
@ -17,16 +19,13 @@ import com.idormy.sms.forwarder.utils.HttpServerUtils
|
|||
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.KEY_TEST_CONDITION
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.TASK_CONDITION_LEAVE_ADDRESS
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
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.utils.CountDownButtonHelper
|
||||
import com.xuexiang.xui.widget.actionbar.TitleBar
|
||||
import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction
|
||||
import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
|
||||
|
@ -37,7 +36,6 @@ class LeaveAddressFragment : BaseFragment<FragmentTasksConditionLeaveAddressBind
|
|||
|
||||
private val TAG: String = LeaveAddressFragment::class.java.simpleName
|
||||
var titleBar: TitleBar? = null
|
||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
|
||||
@JvmField
|
||||
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
|
||||
|
@ -65,18 +63,6 @@ class LeaveAddressFragment : BaseFragment<FragmentTasksConditionLeaveAddressBind
|
|||
* 初始化控件
|
||||
*/
|
||||
override fun initViews() {
|
||||
//测试按钮增加倒计时,避免重复点击
|
||||
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
|
||||
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
|
||||
override fun onCountDown(time: Int) {
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
|
||||
}
|
||||
|
||||
override fun onFinished() {
|
||||
binding!!.btnTest.text = getString(R.string.test)
|
||||
}
|
||||
})
|
||||
|
||||
binding!!.rgCalcType.setOnCheckedChangeListener { _, checkedId ->
|
||||
if (checkedId == R.id.rb_calc_type_distance) {
|
||||
binding!!.layoutCalcTypeDistance.visibility = View.VISIBLE
|
||||
|
@ -85,35 +71,93 @@ class LeaveAddressFragment : BaseFragment<FragmentTasksConditionLeaveAddressBind
|
|||
binding!!.layoutCalcTypeDistance.visibility = View.GONE
|
||||
binding!!.layoutCalcTypeAddress.visibility = View.VISIBLE
|
||||
}
|
||||
try {
|
||||
checkSetting(true)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(TAG, "initViews eventData:$eventData")
|
||||
if (eventData != null) {
|
||||
val settingVo = Gson().fromJson(eventData, LocationSetting::class.java)
|
||||
Log.d(TAG, "initViews settingVo:$settingVo")
|
||||
binding!!.rgCalcType.check(settingVo.getCalcTypeCheckId())
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
binding!!.etLongitude.setText(settingVo.longitude.toString())
|
||||
binding!!.etLatitude.setText(settingVo.latitude.toString())
|
||||
binding!!.etDistance.setText(settingVo.distance.toString())
|
||||
binding!!.etAddress.setText(settingVo.address)
|
||||
binding!!.rgCalcType.check(settingVo.getCalcTypeCheckId())
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun initListeners() {
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
binding!!.btnCurrentCoordinates.setOnClickListener(this)
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
|
||||
mCountDownHelper?.finish()
|
||||
|
||||
if (it == "success") {
|
||||
XToastUtils.success("测试通过", 30000)
|
||||
} else {
|
||||
XToastUtils.error(it, 30000)
|
||||
binding!!.etLongitude.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
try {
|
||||
val changedText = s.toString()
|
||||
if (changedText.isEmpty()) {
|
||||
binding!!.etLongitude.setText("0")
|
||||
binding!!.etLongitude.setSelection(binding!!.etLongitude.text.length) // 将光标移至文本末尾
|
||||
} else {
|
||||
checkSetting(true)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
binding!!.etLatitude.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
try {
|
||||
val changedText = s.toString()
|
||||
if (changedText.isEmpty()) {
|
||||
binding!!.etLatitude.setText("0")
|
||||
binding!!.etLatitude.setSelection(binding!!.etLatitude.text.length) // 将光标移至文本末尾
|
||||
} else {
|
||||
checkSetting(true)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
})
|
||||
binding!!.etDistance.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
try {
|
||||
val changedText = s.toString()
|
||||
if (changedText.isEmpty()) {
|
||||
binding!!.etDistance.setText("1")
|
||||
binding!!.etDistance.setSelection(binding!!.etDistance.text.length) // 将光标移至文本末尾
|
||||
} else {
|
||||
checkSetting(true)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
})
|
||||
binding!!.etAddress.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
try {
|
||||
checkSetting(true)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@SingleClick
|
||||
|
@ -122,18 +166,12 @@ class LeaveAddressFragment : BaseFragment<FragmentTasksConditionLeaveAddressBind
|
|||
when (v.id) {
|
||||
R.id.btn_current_coordinates -> {
|
||||
if (!App.LocationClient.isStarted()) {
|
||||
MaterialDialog.Builder(requireContext())
|
||||
.iconRes(R.drawable.auto_task_icon_location)
|
||||
.title(R.string.enable_location)
|
||||
.content(R.string.enable_location_dialog)
|
||||
.cancelable(false)
|
||||
.positiveText(R.string.lab_yes)
|
||||
.negativeText(R.string.lab_no).onPositive { _: MaterialDialog?, _: DialogAction? ->
|
||||
SettingUtils.enableLocation = true
|
||||
val serviceIntent = Intent(requireContext(), LocationService::class.java)
|
||||
serviceIntent.action = "START"
|
||||
requireContext().startService(serviceIntent)
|
||||
}.show()
|
||||
MaterialDialog.Builder(requireContext()).iconRes(R.drawable.auto_task_icon_location).title(R.string.enable_location).content(R.string.enable_location_dialog).cancelable(false).positiveText(R.string.lab_yes).negativeText(R.string.lab_no).onPositive { _: MaterialDialog?, _: DialogAction? ->
|
||||
SettingUtils.enableLocation = true
|
||||
val serviceIntent = Intent(requireContext(), LocationService::class.java)
|
||||
serviceIntent.action = "START"
|
||||
requireContext().startService(serviceIntent)
|
||||
}.show()
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -148,21 +186,6 @@ class LeaveAddressFragment : BaseFragment<FragmentTasksConditionLeaveAddressBind
|
|||
XToastUtils.success(String.format(getString(R.string.current_address), location.address), 30000)
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
Thread {
|
||||
try {
|
||||
val settingVo = checkSetting()
|
||||
Log.d(TAG, settingVo.toString())
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
|
||||
} catch (e: Exception) {
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
|
||||
e.printStackTrace()
|
||||
}
|
||||
}.start()
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_del -> {
|
||||
popToBack()
|
||||
return
|
||||
|
@ -186,25 +209,36 @@ class LeaveAddressFragment : BaseFragment<FragmentTasksConditionLeaveAddressBind
|
|||
|
||||
//检查设置
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun checkSetting(): LocationSetting {
|
||||
private fun checkSetting(updateView: Boolean = false): LocationSetting {
|
||||
val longitude = binding!!.etLongitude.text.toString().toDouble()
|
||||
val latitude = binding!!.etLatitude.text.toString().toDouble()
|
||||
val distance = binding!!.etDistance.text.toString().toDouble()
|
||||
val address = binding!!.etAddress.text.toString()
|
||||
var calcType = "distance"
|
||||
if (binding!!.rbCalcTypeDistance.isChecked) {
|
||||
if (latitude.isNaN() || longitude.isNaN() || distance.isNaN()) {
|
||||
throw Exception(getString(R.string.calc_type_address_error))
|
||||
val calcType = when (binding!!.rgCalcType.checkedRadioButtonId) {
|
||||
R.id.rb_calc_type_distance -> {
|
||||
Log.d(TAG, "longitude:$longitude latitude:$latitude distance:$distance")
|
||||
if (latitude.isNaN() || longitude.isNaN() || distance.isNaN()) {
|
||||
throw Exception(getString(R.string.calc_type_distance_error))
|
||||
}
|
||||
description = String.format(getString(R.string.to_address_distance_description), longitude, latitude, distance)
|
||||
"distance"
|
||||
}
|
||||
description = String.format(getString(R.string.leave_address_distance_description), longitude, latitude, distance)
|
||||
} else if (binding!!.rbCalcTypeAddress.isChecked) {
|
||||
if (address.isEmpty()) {
|
||||
throw Exception(getString(R.string.calc_type_address_error))
|
||||
|
||||
else -> {
|
||||
if (address.isEmpty()) {
|
||||
throw Exception(getString(R.string.calc_type_address_error))
|
||||
}
|
||||
description = String.format(getString(R.string.to_address_keyword_description), address)
|
||||
"address"
|
||||
}
|
||||
description = String.format(getString(R.string.leave_address_keyword_description), address)
|
||||
calcType = "address"
|
||||
}
|
||||
|
||||
return LocationSetting(description, "leave", calcType, longitude, latitude, distance, address)
|
||||
val settingVo = LocationSetting(description, "leave", calcType, longitude, latitude, distance, address)
|
||||
|
||||
if (updateView) {
|
||||
binding!!.tvDescription.text = description
|
||||
}
|
||||
|
||||
return settingVo
|
||||
}
|
||||
}
|
|
@ -14,15 +14,12 @@ import com.idormy.sms.forwarder.entity.task.LockScreenSetting
|
|||
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.KEY_TEST_CONDITION
|
||||
import com.idormy.sms.forwarder.utils.TASK_CONDITION_LOCK_SCREEN
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
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.utils.CountDownButtonHelper
|
||||
import com.xuexiang.xui.widget.actionbar.TitleBar
|
||||
|
||||
@Page(name = "LockScreen")
|
||||
|
@ -31,7 +28,6 @@ class LockScreenFragment : BaseFragment<FragmentTasksConditionLockScreenBinding?
|
|||
|
||||
private val TAG: String = LockScreenFragment::class.java.simpleName
|
||||
var titleBar: TitleBar? = null
|
||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
|
||||
@JvmField
|
||||
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
|
||||
|
@ -57,18 +53,6 @@ class LockScreenFragment : BaseFragment<FragmentTasksConditionLockScreenBinding?
|
|||
* 初始化控件
|
||||
*/
|
||||
override fun initViews() {
|
||||
//测试按钮增加倒计时,避免重复点击
|
||||
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
|
||||
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
|
||||
override fun onCountDown(time: Int) {
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
|
||||
}
|
||||
|
||||
override fun onFinished() {
|
||||
binding!!.btnTest.text = getString(R.string.test)
|
||||
}
|
||||
})
|
||||
|
||||
binding!!.rgAction.setOnCheckedChangeListener { _, checkedId ->
|
||||
if (checkedId == R.id.rb_action_screen_off) {
|
||||
binding!!.xsbTimeAfterScreenOff.visibility = View.VISIBLE
|
||||
|
@ -77,15 +61,17 @@ class LockScreenFragment : BaseFragment<FragmentTasksConditionLockScreenBinding?
|
|||
binding!!.xsbTimeAfterScreenOff.visibility = View.GONE
|
||||
binding!!.xsbTimeAfterScreenOn.visibility = View.VISIBLE
|
||||
}
|
||||
checkSetting(true)
|
||||
}
|
||||
|
||||
Log.d(TAG, "initViews eventData:$eventData")
|
||||
if (eventData != null) {
|
||||
val settingVo = Gson().fromJson(eventData, LockScreenSetting::class.java)
|
||||
Log.d(TAG, "initViews settingVo:$settingVo")
|
||||
binding!!.rgAction.check(settingVo.getActionCheckId())
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
binding!!.xsbTimeAfterScreenOff.setDefaultValue(settingVo.timeAfterScreenOff)
|
||||
binding!!.xsbTimeAfterScreenOn.setDefaultValue(settingVo.timeAfterScreenOn)
|
||||
binding!!.rgAction.check(settingVo.getActionCheckId())
|
||||
} else {
|
||||
binding!!.xsbTimeAfterScreenOff.setDefaultValue(0)
|
||||
binding!!.xsbTimeAfterScreenOn.setDefaultValue(0)
|
||||
|
@ -94,17 +80,13 @@ class LockScreenFragment : BaseFragment<FragmentTasksConditionLockScreenBinding?
|
|||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun initListeners() {
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
|
||||
mCountDownHelper?.finish()
|
||||
|
||||
if (it == "success") {
|
||||
XToastUtils.success("测试通过", 30000)
|
||||
} else {
|
||||
XToastUtils.error(it, 30000)
|
||||
}
|
||||
binding!!.xsbTimeAfterScreenOff.setOnSeekBarListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
binding!!.xsbTimeAfterScreenOn.setOnSeekBarListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -112,20 +94,6 @@ class LockScreenFragment : BaseFragment<FragmentTasksConditionLockScreenBinding?
|
|||
override fun onClick(v: View) {
|
||||
try {
|
||||
when (v.id) {
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
Thread {
|
||||
try {
|
||||
val settingVo = checkSetting()
|
||||
Log.d(TAG, settingVo.toString())
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
|
||||
} catch (e: Exception) {
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
|
||||
e.printStackTrace()
|
||||
}
|
||||
}.start()
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_del -> {
|
||||
popToBack()
|
||||
|
@ -150,10 +118,16 @@ class LockScreenFragment : BaseFragment<FragmentTasksConditionLockScreenBinding?
|
|||
|
||||
//检查设置
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun checkSetting(): LockScreenSetting {
|
||||
private fun checkSetting(updateView: Boolean = false): LockScreenSetting {
|
||||
val actionCheckId = binding!!.rgAction.checkedRadioButtonId
|
||||
val timeAfterScreenOff = binding!!.xsbTimeAfterScreenOff.selectedNumber
|
||||
val timeAfterScreenOn = binding!!.xsbTimeAfterScreenOn.selectedNumber
|
||||
return LockScreenSetting(actionCheckId, timeAfterScreenOff, timeAfterScreenOn)
|
||||
val settingVo = LockScreenSetting(actionCheckId, timeAfterScreenOff, timeAfterScreenOn)
|
||||
|
||||
if (updateView) {
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
}
|
||||
|
||||
return settingVo
|
||||
}
|
||||
}
|
|
@ -2,6 +2,8 @@ package com.idormy.sms.forwarder.fragment.condition
|
|||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Intent
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
|
@ -14,15 +16,12 @@ import com.idormy.sms.forwarder.entity.task.NetworkSetting
|
|||
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.KEY_TEST_CONDITION
|
||||
import com.idormy.sms.forwarder.utils.TASK_CONDITION_NETWORK
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
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.utils.CountDownButtonHelper
|
||||
import com.xuexiang.xui.widget.actionbar.TitleBar
|
||||
|
||||
@Page(name = "Network")
|
||||
|
@ -31,7 +30,6 @@ class NetworkFragment : BaseFragment<FragmentTasksConditionNetworkBinding?>(), V
|
|||
|
||||
private val TAG: String = NetworkFragment::class.java.simpleName
|
||||
var titleBar: TitleBar? = null
|
||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
|
||||
@JvmField
|
||||
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
|
||||
|
@ -57,68 +55,45 @@ class NetworkFragment : BaseFragment<FragmentTasksConditionNetworkBinding?>(), V
|
|||
* 初始化控件
|
||||
*/
|
||||
override fun initViews() {
|
||||
//测试按钮增加倒计时,避免重复点击
|
||||
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
|
||||
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
|
||||
override fun onCountDown(time: Int) {
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
|
||||
}
|
||||
|
||||
override fun onFinished() {
|
||||
binding!!.btnTest.text = getString(R.string.test)
|
||||
}
|
||||
})
|
||||
|
||||
binding!!.rgNetworkState.setOnCheckedChangeListener { _, checkedId ->
|
||||
Log.d(TAG, "rgNetworkState checkedId:$checkedId")
|
||||
binding!!.layoutDataSimSlot.visibility = if (checkedId == R.id.rb_net_mobile) View.VISIBLE else View.GONE
|
||||
binding!!.layoutWifiSsid.visibility = if (checkedId == R.id.rb_net_wifi) View.VISIBLE else View.GONE
|
||||
checkSetting(true)
|
||||
}
|
||||
|
||||
Log.d(TAG, "initViews eventData:$eventData")
|
||||
if (eventData != null) {
|
||||
val settingVo = Gson().fromJson(eventData, NetworkSetting::class.java)
|
||||
Log.d(TAG, "initViews settingVo:$settingVo")
|
||||
binding!!.rgNetworkState.check(settingVo.getNetworkStateCheckId())
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
binding!!.rgDataSimSlot.check(settingVo.getDataSimSlotCheckId())
|
||||
binding!!.etWifiSsid.setText(settingVo.wifiSsid)
|
||||
binding!!.rgNetworkState.check(settingVo.getNetworkStateCheckId())
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun initListeners() {
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
|
||||
mCountDownHelper?.finish()
|
||||
|
||||
if (it == "success") {
|
||||
XToastUtils.success("测试通过", 30000)
|
||||
} else {
|
||||
XToastUtils.error(it, 30000)
|
||||
}
|
||||
binding!!.rgDataSimSlot.setOnCheckedChangeListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
binding!!.etWifiSsid.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
checkSetting(true)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
when (v.id) {
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
Thread {
|
||||
try {
|
||||
val settingVo = checkSetting()
|
||||
Log.d(TAG, settingVo.toString())
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
|
||||
} catch (e: Exception) {
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
|
||||
e.printStackTrace()
|
||||
}
|
||||
}.start()
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_del -> {
|
||||
popToBack()
|
||||
|
@ -142,10 +117,16 @@ class NetworkFragment : BaseFragment<FragmentTasksConditionNetworkBinding?>(), V
|
|||
}
|
||||
|
||||
//检查设置
|
||||
private fun checkSetting(): NetworkSetting {
|
||||
private fun checkSetting(updateView: Boolean = false): NetworkSetting {
|
||||
val networkStateCheckId = binding!!.rgNetworkState.checkedRadioButtonId
|
||||
val dataSimSlotCheckId = binding!!.rgDataSimSlot.checkedRadioButtonId
|
||||
val wifiSsid = binding!!.etWifiSsid.text.toString().trim()
|
||||
return NetworkSetting(networkStateCheckId, dataSimSlotCheckId, wifiSsid)
|
||||
val settingVo = NetworkSetting(networkStateCheckId, dataSimSlotCheckId, wifiSsid)
|
||||
|
||||
if (updateView) {
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
}
|
||||
|
||||
return settingVo
|
||||
}
|
||||
}
|
|
@ -14,15 +14,12 @@ 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.KEY_TEST_CONDITION
|
||||
import com.idormy.sms.forwarder.utils.TASK_CONDITION_SIM
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
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.utils.CountDownButtonHelper
|
||||
import com.xuexiang.xui.widget.actionbar.TitleBar
|
||||
|
||||
@Page(name = "Sim")
|
||||
|
@ -31,7 +28,6 @@ class SimFragment : BaseFragment<FragmentTasksConditionSimBinding?>(), View.OnCl
|
|||
|
||||
private val TAG: String = SimFragment::class.java.simpleName
|
||||
var titleBar: TitleBar? = null
|
||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
|
||||
@JvmField
|
||||
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
|
||||
|
@ -57,39 +53,21 @@ class SimFragment : BaseFragment<FragmentTasksConditionSimBinding?>(), View.OnCl
|
|||
* 初始化控件
|
||||
*/
|
||||
override fun initViews() {
|
||||
//测试按钮增加倒计时,避免重复点击
|
||||
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
|
||||
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
|
||||
override fun onCountDown(time: Int) {
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
|
||||
}
|
||||
|
||||
override fun onFinished() {
|
||||
binding!!.btnTest.text = getString(R.string.test)
|
||||
}
|
||||
})
|
||||
|
||||
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!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
|
||||
mCountDownHelper?.finish()
|
||||
|
||||
if (it == "success") {
|
||||
XToastUtils.success("测试通过", 30000)
|
||||
} else {
|
||||
XToastUtils.error(it, 30000)
|
||||
}
|
||||
binding!!.rgSimState.setOnCheckedChangeListener { _, _ ->
|
||||
checkSetting(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,20 +75,6 @@ class SimFragment : BaseFragment<FragmentTasksConditionSimBinding?>(), View.OnCl
|
|||
override fun onClick(v: View) {
|
||||
try {
|
||||
when (v.id) {
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
Thread {
|
||||
try {
|
||||
val settingVo = checkSetting()
|
||||
Log.d(TAG, settingVo.toString())
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
|
||||
} catch (e: Exception) {
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
|
||||
e.printStackTrace()
|
||||
}
|
||||
}.start()
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_del -> {
|
||||
popToBack()
|
||||
|
@ -134,8 +98,14 @@ class SimFragment : BaseFragment<FragmentTasksConditionSimBinding?>(), View.OnCl
|
|||
}
|
||||
|
||||
//检查设置
|
||||
private fun checkSetting(): SimSetting {
|
||||
private fun checkSetting(updateView: Boolean = false): SimSetting {
|
||||
val simStateCheckId = binding!!.rgSimState.checkedRadioButtonId
|
||||
return SimSetting(simStateCheckId)
|
||||
val settingVo = SimSetting(simStateCheckId)
|
||||
|
||||
if (updateView) {
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
}
|
||||
|
||||
return settingVo
|
||||
}
|
||||
}
|
|
@ -2,6 +2,8 @@ package com.idormy.sms.forwarder.fragment.condition
|
|||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Intent
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
|
@ -17,16 +19,13 @@ import com.idormy.sms.forwarder.utils.HttpServerUtils
|
|||
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.KEY_TEST_CONDITION
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.TASK_CONDITION_TO_ADDRESS
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
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.utils.CountDownButtonHelper
|
||||
import com.xuexiang.xui.widget.actionbar.TitleBar
|
||||
import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction
|
||||
import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
|
||||
|
@ -37,7 +36,6 @@ class ToAddressFragment : BaseFragment<FragmentTasksConditionToAddressBinding?>(
|
|||
|
||||
private val TAG: String = ToAddressFragment::class.java.simpleName
|
||||
var titleBar: TitleBar? = null
|
||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
|
||||
@JvmField
|
||||
@AutoWired(name = KEY_EVENT_DATA_CONDITION)
|
||||
|
@ -65,18 +63,6 @@ class ToAddressFragment : BaseFragment<FragmentTasksConditionToAddressBinding?>(
|
|||
* 初始化控件
|
||||
*/
|
||||
override fun initViews() {
|
||||
//测试按钮增加倒计时,避免重复点击
|
||||
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 3)
|
||||
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
|
||||
override fun onCountDown(time: Int) {
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
|
||||
}
|
||||
|
||||
override fun onFinished() {
|
||||
binding!!.btnTest.text = getString(R.string.test)
|
||||
}
|
||||
})
|
||||
|
||||
binding!!.rgCalcType.setOnCheckedChangeListener { _, checkedId ->
|
||||
if (checkedId == R.id.rb_calc_type_distance) {
|
||||
binding!!.layoutCalcTypeDistance.visibility = View.VISIBLE
|
||||
|
@ -85,35 +71,93 @@ class ToAddressFragment : BaseFragment<FragmentTasksConditionToAddressBinding?>(
|
|||
binding!!.layoutCalcTypeDistance.visibility = View.GONE
|
||||
binding!!.layoutCalcTypeAddress.visibility = View.VISIBLE
|
||||
}
|
||||
try {
|
||||
checkSetting(true)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(TAG, "initViews eventData:$eventData")
|
||||
if (eventData != null) {
|
||||
val settingVo = Gson().fromJson(eventData, LocationSetting::class.java)
|
||||
Log.d(TAG, "initViews settingVo:$settingVo")
|
||||
binding!!.rgCalcType.check(settingVo.getCalcTypeCheckId())
|
||||
binding!!.tvDescription.text = settingVo.description
|
||||
binding!!.etLongitude.setText(settingVo.longitude.toString())
|
||||
binding!!.etLatitude.setText(settingVo.latitude.toString())
|
||||
binding!!.etDistance.setText(settingVo.distance.toString())
|
||||
binding!!.etAddress.setText(settingVo.address)
|
||||
binding!!.rgCalcType.check(settingVo.getCalcTypeCheckId())
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun initListeners() {
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
binding!!.btnCurrentCoordinates.setOnClickListener(this)
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).observe(this) {
|
||||
mCountDownHelper?.finish()
|
||||
|
||||
if (it == "success") {
|
||||
XToastUtils.success("测试通过", 30000)
|
||||
} else {
|
||||
XToastUtils.error(it, 30000)
|
||||
binding!!.etLongitude.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
try {
|
||||
val changedText = s.toString()
|
||||
if (changedText.isEmpty()) {
|
||||
binding!!.etLongitude.setText("0")
|
||||
binding!!.etLongitude.setSelection(binding!!.etLongitude.text.length) // 将光标移至文本末尾
|
||||
} else {
|
||||
checkSetting(true)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
binding!!.etLatitude.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
try {
|
||||
val changedText = s.toString()
|
||||
if (changedText.isEmpty()) {
|
||||
binding!!.etLatitude.setText("0")
|
||||
binding!!.etLatitude.setSelection(binding!!.etLatitude.text.length) // 将光标移至文本末尾
|
||||
} else {
|
||||
checkSetting(true)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
})
|
||||
binding!!.etDistance.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
try {
|
||||
val changedText = s.toString()
|
||||
if (changedText.isEmpty()) {
|
||||
binding!!.etDistance.setText("1")
|
||||
binding!!.etDistance.setSelection(binding!!.etDistance.text.length) // 将光标移至文本末尾
|
||||
} else {
|
||||
checkSetting(true)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
})
|
||||
binding!!.etAddress.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
override fun afterTextChanged(s: Editable?) {
|
||||
try {
|
||||
checkSetting(true)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@SingleClick
|
||||
|
@ -122,18 +166,12 @@ class ToAddressFragment : BaseFragment<FragmentTasksConditionToAddressBinding?>(
|
|||
when (v.id) {
|
||||
R.id.btn_current_coordinates -> {
|
||||
if (!App.LocationClient.isStarted()) {
|
||||
MaterialDialog.Builder(requireContext())
|
||||
.iconRes(R.drawable.auto_task_icon_location)
|
||||
.title(R.string.enable_location)
|
||||
.content(R.string.enable_location_dialog)
|
||||
.cancelable(false)
|
||||
.positiveText(R.string.lab_yes)
|
||||
.negativeText(R.string.lab_no).onPositive { _: MaterialDialog?, _: DialogAction? ->
|
||||
SettingUtils.enableLocation = true
|
||||
val serviceIntent = Intent(requireContext(), LocationService::class.java)
|
||||
serviceIntent.action = "START"
|
||||
requireContext().startService(serviceIntent)
|
||||
}.show()
|
||||
MaterialDialog.Builder(requireContext()).iconRes(R.drawable.auto_task_icon_location).title(R.string.enable_location).content(R.string.enable_location_dialog).cancelable(false).positiveText(R.string.lab_yes).negativeText(R.string.lab_no).onPositive { _: MaterialDialog?, _: DialogAction? ->
|
||||
SettingUtils.enableLocation = true
|
||||
val serviceIntent = Intent(requireContext(), LocationService::class.java)
|
||||
serviceIntent.action = "START"
|
||||
requireContext().startService(serviceIntent)
|
||||
}.show()
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -148,21 +186,6 @@ class ToAddressFragment : BaseFragment<FragmentTasksConditionToAddressBinding?>(
|
|||
XToastUtils.success(String.format(getString(R.string.current_address), location.address), 30000)
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
Thread {
|
||||
try {
|
||||
val settingVo = checkSetting()
|
||||
Log.d(TAG, settingVo.toString())
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
|
||||
} catch (e: Exception) {
|
||||
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
|
||||
e.printStackTrace()
|
||||
}
|
||||
}.start()
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_del -> {
|
||||
popToBack()
|
||||
return
|
||||
|
@ -186,25 +209,36 @@ class ToAddressFragment : BaseFragment<FragmentTasksConditionToAddressBinding?>(
|
|||
|
||||
//检查设置
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun checkSetting(): LocationSetting {
|
||||
private fun checkSetting(updateView: Boolean = false): LocationSetting {
|
||||
val longitude = binding!!.etLongitude.text.toString().toDouble()
|
||||
val latitude = binding!!.etLatitude.text.toString().toDouble()
|
||||
val distance = binding!!.etDistance.text.toString().toDouble()
|
||||
val address = binding!!.etAddress.text.toString()
|
||||
var calcType = "distance"
|
||||
if (binding!!.rbCalcTypeDistance.isChecked) {
|
||||
if (latitude.isNaN() || longitude.isNaN() || distance.isNaN()) {
|
||||
throw Exception(getString(R.string.calc_type_address_error))
|
||||
val calcType = when (binding!!.rgCalcType.checkedRadioButtonId) {
|
||||
R.id.rb_calc_type_distance -> {
|
||||
Log.d(TAG, "longitude:$longitude latitude:$latitude distance:$distance")
|
||||
if (latitude.isNaN() || longitude.isNaN() || distance.isNaN()) {
|
||||
throw Exception(getString(R.string.calc_type_distance_error))
|
||||
}
|
||||
description = String.format(getString(R.string.to_address_distance_description), longitude, latitude, distance)
|
||||
"distance"
|
||||
}
|
||||
description = String.format(getString(R.string.to_address_distance_description), longitude, latitude, distance)
|
||||
} else if (binding!!.rbCalcTypeAddress.isChecked) {
|
||||
if (address.isEmpty()) {
|
||||
throw Exception(getString(R.string.calc_type_address_error))
|
||||
|
||||
else -> {
|
||||
if (address.isEmpty()) {
|
||||
throw Exception(getString(R.string.calc_type_address_error))
|
||||
}
|
||||
description = String.format(getString(R.string.to_address_keyword_description), address)
|
||||
"address"
|
||||
}
|
||||
description = String.format(getString(R.string.to_address_keyword_description), address)
|
||||
calcType = "address"
|
||||
}
|
||||
|
||||
return LocationSetting(description, "to", calcType, longitude, latitude, distance, address)
|
||||
val settingVo = LocationSetting(description, "to", calcType, longitude, latitude, distance, address)
|
||||
|
||||
if (updateView) {
|
||||
binding!!.tvDescription.text = description
|
||||
}
|
||||
|
||||
return settingVo
|
||||
}
|
||||
}
|
|
@ -37,9 +37,18 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/battery_level_title"
|
||||
android:text="@string/task_battery"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_battery_tips"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
|
@ -171,17 +180,6 @@
|
|||
android:textSize="11sp"
|
||||
tools:ignore="RtlSymmetry,TextContrastCheck,TouchTargetSizeCheck" />
|
||||
|
||||
<com.xuexiang.xui.widget.textview.supertextview.SuperButton
|
||||
android:id="@+id/btn_test"
|
||||
style="@style/SuperButton.Green.Icon"
|
||||
android:layout_marginStart="10dp"
|
||||
android:drawableStart="@drawable/icon_test"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/test"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -37,9 +37,18 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/battery_status_title"
|
||||
android:text="@string/task_charge"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_battery_tips"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
|
@ -47,52 +56,58 @@
|
|||
android:layout_marginBottom="5dp"
|
||||
android:background="?attr/xui_config_color_separator_light" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/battery_status_title"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/rg_status"
|
||||
style="@style/rg_style"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="@dimen/config_padding_5dp">
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_battery_charging"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:checked="true"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/battery_charging"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_battery_discharging"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/battery_discharging"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_battery_not_charging"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/battery_not_charging"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_battery_full"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/battery_full"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_battery_unknown"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/battery_unknown"
|
||||
tools:ignore="TouchTargetSizeCheck,DuplicateSpeakableTextCheck" />
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
style="@style/taskBarStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:background="?attr/xui_config_color_separator_light" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
|
@ -100,41 +115,34 @@
|
|||
android:text="@string/battery_plugged_title"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:background="?attr/xui_config_color_separator_light" />
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/rg_plugged"
|
||||
style="@style/rg_style"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="@dimen/config_padding_5dp">
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_plugged_ac"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:checked="true"
|
||||
android:text="@string/battery_ac"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_plugged_usb"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/battery_usb"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_plugged_wireless"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/battery_wireless"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_plugged_unknown"
|
||||
style="@style/rg_rb_style_match"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/battery_unknown"
|
||||
tools:ignore="TouchTargetSizeCheck" />
|
||||
|
||||
|
@ -172,17 +180,6 @@
|
|||
android:textSize="11sp"
|
||||
tools:ignore="RtlSymmetry,TextContrastCheck,TouchTargetSizeCheck" />
|
||||
|
||||
<com.xuexiang.xui.widget.textview.supertextview.SuperButton
|
||||
android:id="@+id/btn_test"
|
||||
style="@style/SuperButton.Green.Icon"
|
||||
android:layout_marginStart="10dp"
|
||||
android:drawableStart="@drawable/icon_test"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/test"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -37,13 +37,15 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/cron_expression"
|
||||
android:text="@string/task_cron"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/cron_expression_tips"
|
||||
android:text="@string/task_cron_tips"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
|
|
|
@ -38,8 +38,17 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_leave_address"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_leave_address_tips"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
|
@ -240,17 +249,6 @@
|
|||
android:textSize="11sp"
|
||||
tools:ignore="RtlSymmetry,TextContrastCheck,TouchTargetSizeCheck" />
|
||||
|
||||
<com.xuexiang.xui.widget.textview.supertextview.SuperButton
|
||||
android:id="@+id/btn_test"
|
||||
style="@style/SuperButton.Green.Icon"
|
||||
android:layout_marginStart="10dp"
|
||||
android:drawableStart="@drawable/icon_test"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/test"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -38,8 +38,17 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_lock_screen"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_lock_screen_tips"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
|
@ -135,17 +144,6 @@
|
|||
android:textSize="11sp"
|
||||
tools:ignore="RtlSymmetry,TextContrastCheck,TouchTargetSizeCheck" />
|
||||
|
||||
<com.xuexiang.xui.widget.textview.supertextview.SuperButton
|
||||
android:id="@+id/btn_test"
|
||||
style="@style/SuperButton.Green.Icon"
|
||||
android:layout_marginStart="10dp"
|
||||
android:drawableStart="@drawable/icon_test"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/test"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -38,8 +38,17 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_network"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_network_tips"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
|
@ -198,17 +207,6 @@
|
|||
android:textSize="11sp"
|
||||
tools:ignore="RtlSymmetry,TextContrastCheck,TouchTargetSizeCheck" />
|
||||
|
||||
<com.xuexiang.xui.widget.textview.supertextview.SuperButton
|
||||
android:id="@+id/btn_test"
|
||||
style="@style/SuperButton.Green.Icon"
|
||||
android:layout_marginStart="10dp"
|
||||
android:drawableStart="@drawable/icon_test"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/test"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -38,8 +38,17 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_sim"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_sim_tips"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
|
@ -106,17 +115,6 @@
|
|||
android:textSize="11sp"
|
||||
tools:ignore="RtlSymmetry,TextContrastCheck,TouchTargetSizeCheck" />
|
||||
|
||||
<com.xuexiang.xui.widget.textview.supertextview.SuperButton
|
||||
android:id="@+id/btn_test"
|
||||
style="@style/SuperButton.Green.Icon"
|
||||
android:layout_marginStart="10dp"
|
||||
android:drawableStart="@drawable/icon_test"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/test"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -38,8 +38,17 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_to_address"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_to_address_tips"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
|
@ -240,17 +249,6 @@
|
|||
android:textSize="11sp"
|
||||
tools:ignore="RtlSymmetry,TextContrastCheck,TouchTargetSizeCheck" />
|
||||
|
||||
<com.xuexiang.xui.widget.textview.supertextview.SuperButton
|
||||
android:id="@+id/btn_test"
|
||||
style="@style/SuperButton.Green.Icon"
|
||||
android:layout_marginStart="10dp"
|
||||
android:drawableStart="@drawable/icon_test"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/test"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -1129,13 +1129,21 @@
|
|||
<string name="select_task_action">Please select action</string>
|
||||
<string name="bottom_sheet_close">Close</string>
|
||||
<string name="task_cron">Cron</string>
|
||||
<string name="task_cron_tips">Quartz Cron Expression</string>
|
||||
<string name="task_to_address">To Address</string>
|
||||
<string name="task_to_address_tips">Using latitude and longitude coordinates (WGS-84).</string>
|
||||
<string name="task_leave_address">Leave Address</string>
|
||||
<string name="task_leave_address_tips">Using latitude and longitude coordinates (WGS-84).</string>
|
||||
<string name="task_network">Network</string>
|
||||
<string name="task_network_tips">Trigger upon network status change.</string>
|
||||
<string name="task_sim">SIM Status</string>
|
||||
<string name="task_sim_tips">Trigger upon SIM Status change.</string>
|
||||
<string name="task_battery">Battery</string>
|
||||
<string name="task_battery_tips">Trigger when battery level meets condition.</string>
|
||||
<string name="task_charge">Charge</string>
|
||||
<string name="task_charge_tips">Trigger when charge status meets condition.</string>
|
||||
<string name="task_lock_screen">Screen Off/On</string>
|
||||
<string name="task_lock_screen_tips">Trigger upon screen lock/unlock instantly or after a set time.</string>
|
||||
<string name="task_sendsms">Send Sms</string>
|
||||
<string name="task_notification">Notification</string>
|
||||
<string name="task_frpc">Frpc Setting</string>
|
||||
|
@ -1149,7 +1157,6 @@
|
|||
<string name="week">Week</string>
|
||||
<string name="year">Year</string>
|
||||
<string name="cron_expression">Cron Expression</string>
|
||||
<string name="cron_expression_tips">Quartz Cron Expression</string>
|
||||
<string name="every_second">Every Second</string>
|
||||
<string name="every_minute">Every Minute</string>
|
||||
<string name="every_hour">Every Hour</string>
|
||||
|
@ -1201,9 +1208,9 @@
|
|||
<string name="discharged_to">Discharged to the specified battery level</string>
|
||||
<string name="charged_to">Charged to the specified battery level</string>
|
||||
<string name="battery_discharged_to">The battery discharged to %s%%</string>
|
||||
<string name="battery_discharged_below">"The battery discharged below %s%%</string>
|
||||
<string name="battery_discharged_below">"The battery discharged below %s%%, keep reminding</string>
|
||||
<string name="battery_charged_to">The battery charged to %s%%</string>
|
||||
<string name="battery_charged_above">The battery charged above %s%%</string>
|
||||
<string name="battery_charged_above">The battery charged above %s%%, keep reminding</string>
|
||||
|
||||
<string name="sim_state">SIM State:%s</string>
|
||||
<string name="sim_state_absent">Absent</string>
|
||||
|
|
|
@ -1130,13 +1130,21 @@
|
|||
<string name="select_task_action">请选择动作</string>
|
||||
<string name="bottom_sheet_close">关 闭</string>
|
||||
<string name="task_cron">定时任务</string>
|
||||
<string name="task_cron_tips">采用 Quartz Cron 表达式</string>
|
||||
<string name="task_to_address">到达地点</string>
|
||||
<string name="task_to_address_tips">采用经纬度坐标(WGS-84坐标系)</string>
|
||||
<string name="task_leave_address">离开地点</string>
|
||||
<string name="task_leave_address_tips">采用经纬度坐标(WGS-84坐标系)</string>
|
||||
<string name="task_network">网络状态</string>
|
||||
<string name="task_network_tips">当网络状态改变时触发</string>
|
||||
<string name="task_sim">SIM卡状态</string>
|
||||
<string name="task_sim_tips">当SIM卡状态改变时触发</string>
|
||||
<string name="task_battery">电量使用</string>
|
||||
<string name="task_battery_tips">当剩余电量满足条件时触发</string>
|
||||
<string name="task_charge">充电状态</string>
|
||||
<string name="task_charge_tips">当充电状态满足条件时触发</string>
|
||||
<string name="task_lock_screen">锁屏解锁</string>
|
||||
<string name="task_lock_screen_tips">在屏幕锁定或解锁后立即或指定时间触发</string>
|
||||
<string name="task_sendsms">发送短信</string>
|
||||
<string name="task_notification">通道推送</string>
|
||||
<string name="task_frpc">Frpc设置</string>
|
||||
|
@ -1150,7 +1158,6 @@
|
|||
<string name="week">周</string>
|
||||
<string name="year">年</string>
|
||||
<string name="cron_expression">Cron表达式</string>
|
||||
<string name="cron_expression_tips">采用 Quartz Cron 表达式</string>
|
||||
<string name="every_second">每秒钟</string>
|
||||
<string name="every_minute">每分钟</string>
|
||||
<string name="every_hour">每小时</string>
|
||||
|
@ -1202,9 +1209,9 @@
|
|||
<string name="discharged_to">放电到指定电量</string>
|
||||
<string name="charged_to">充电到指定电量</string>
|
||||
<string name="battery_discharged_to">电池放电低到%s%%</string>
|
||||
<string name="battery_discharged_below">电池放电低于%s%%</string>
|
||||
<string name="battery_discharged_below">电池放电低于%s%%, 持续提醒</string>
|
||||
<string name="battery_charged_to">电池充电达到%s%%</string>
|
||||
<string name="battery_charged_above">电池充电高于%s%%</string>
|
||||
<string name="battery_charged_above">电池充电高于%s%%, 持续提醒</string>
|
||||
|
||||
<string name="sim_state">SIM卡状态:%s</string>
|
||||
<string name="sim_state_absent">被移除</string>
|
||||
|
|
Loading…
Reference in New Issue