水枪设置1
This commit is contained in:
@@ -22,8 +22,6 @@ import kotlinx.coroutines.withContext
|
||||
class SettingsActivity : BaseActivity() {
|
||||
|
||||
private lateinit var binding: SettingsActivityBinding
|
||||
private val SP_NAME = "DeviceSettings"
|
||||
private val KEY_RECOGNITION_MODE = "recognition_mode"
|
||||
private var alertAudio: String? = null
|
||||
private var audioContent: String? = null
|
||||
|
||||
@@ -82,7 +80,43 @@ class SettingsActivity : BaseActivity() {
|
||||
}
|
||||
binding.itemWaterGunSetting.setOnClickListener {
|
||||
val intent = Intent(this, WaterGunSettingsActivity::class.java)
|
||||
startActivity(intent)
|
||||
// 传递水枪设置参数
|
||||
val deviceId = DeviceIdEvent.getDeviceId()
|
||||
if (!deviceId.isNullOrEmpty()) {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val response = RetrofitNetwork.getNetworkService().getDeviceInfo(deviceId)
|
||||
withContext(Dispatchers.Main) {
|
||||
if (response.code == 200 && response.data != null) {
|
||||
val device = response.data
|
||||
intent.putExtra("strikeRange", device.strikeRange ?: "7")
|
||||
intent.putExtra("strikeInterval", device.strikeInterval ?: "3")
|
||||
intent.putExtra("container", device.container ?: "容器4")
|
||||
startActivity(intent)
|
||||
} else {
|
||||
// 如果获取失败,使用默认值
|
||||
intent.putExtra("strikeRange", "7")
|
||||
intent.putExtra("strikeInterval", "3")
|
||||
intent.putExtra("container", "容器4")
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
withContext(Dispatchers.Main) {
|
||||
intent.putExtra("strikeRange", "7")
|
||||
intent.putExtra("strikeInterval", "3")
|
||||
intent.putExtra("container", "容器4")
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
intent.putExtra("strikeRange", "7")
|
||||
intent.putExtra("strikeInterval", "3")
|
||||
intent.putExtra("container", "容器4")
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
binding.itemAutoMode.setOnClickListener {
|
||||
val intent = Intent(this, AutoModeActivity::class.java)
|
||||
|
||||
@@ -1,18 +1,30 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.base.BaseActivity
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.databinding.WaterGunSettingsActivityBinding
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.ContainerSelectDialog
|
||||
import com.example.defenseapplication.view.CustomDialogFragmentText
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
//水枪设置
|
||||
class WaterGunSettingsActivity : BaseActivity() {
|
||||
|
||||
private lateinit var binding: WaterGunSettingsActivityBinding
|
||||
private var deviceId: String? = null
|
||||
private var currentStrikeRange: String = "7"
|
||||
private var currentStrikeInterval: String = "3"
|
||||
private var currentContainer: String = "容器4"
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@@ -24,6 +36,18 @@ class WaterGunSettingsActivity : BaseActivity() {
|
||||
.titleBar(binding.topBar)
|
||||
.init()
|
||||
|
||||
deviceId = DeviceIdEvent.getDeviceId()
|
||||
|
||||
// 接收传递过来的参数
|
||||
currentStrikeRange = intent.getStringExtra("strikeRange") ?: "7"
|
||||
currentStrikeInterval = intent.getStringExtra("strikeInterval") ?: "3"
|
||||
currentContainer = intent.getStringExtra("container") ?: "容器4"
|
||||
|
||||
// 显示初始值
|
||||
binding.tvDistance.text = "${currentStrikeRange}m"
|
||||
binding.tvInterval.text = "${currentStrikeInterval}s"
|
||||
binding.tvContainer.text = currentContainer
|
||||
|
||||
initListeners()
|
||||
}
|
||||
|
||||
@@ -35,9 +59,9 @@ class WaterGunSettingsActivity : BaseActivity() {
|
||||
binding.itemDistance.setOnClickListener {
|
||||
val dialog = CustomDialogFragmentText()
|
||||
.setTitle(getString(R.string.strike_distance))
|
||||
.setInputText(binding.tvDistance.text.toString().replace("m", ""))
|
||||
.setInputText(currentStrikeRange)
|
||||
dialog.setOnConfirmListener { distance ->
|
||||
binding.tvDistance.text = "${distance}m"
|
||||
updateStrikeRange(distance)
|
||||
}
|
||||
dialog.show(supportFragmentManager, "DistanceDialog")
|
||||
}
|
||||
@@ -45,23 +69,118 @@ class WaterGunSettingsActivity : BaseActivity() {
|
||||
binding.itemInterval.setOnClickListener {
|
||||
val dialog = CustomDialogFragmentText()
|
||||
.setTitle(getString(R.string.strike_interval))
|
||||
.setInputText(binding.tvInterval.text.toString().replace("s", ""))
|
||||
.setInputText(currentStrikeInterval)
|
||||
dialog.setOnConfirmListener { interval ->
|
||||
binding.tvInterval.text = "${interval}s"
|
||||
updateStrikeInterval(interval)
|
||||
}
|
||||
dialog.show(supportFragmentManager, "IntervalDialog")
|
||||
}
|
||||
|
||||
binding.itemContainer.setOnClickListener {
|
||||
val dialog = ContainerSelectDialog(this)
|
||||
dialog.setSelectedContainer(binding.tvContainer.text.toString())
|
||||
dialog.setSelectedContainer(currentContainer)
|
||||
dialog.setOnConfirmListener { container ->
|
||||
binding.tvContainer.text = container
|
||||
updateContainer(container)
|
||||
}
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
binding.itemPosition.setOnClickListener {
|
||||
startActivity(Intent(this, StrikePositionActivity::class.java))
|
||||
// 跳转到打击位置设置页面
|
||||
startActivity(android.content.Intent(this, StrikePositionActivity::class.java))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateStrikeRange(distance: String) {
|
||||
if (deviceId.isNullOrEmpty()) {
|
||||
Toast.makeText(this, "设备ID为空", Toast.LENGTH_SHORT).show()
|
||||
return
|
||||
}
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val deviceBean = DeviceBean(
|
||||
id = deviceId,
|
||||
strikeRange = distance
|
||||
)
|
||||
val response = RetrofitNetwork.getNetworkService().updateDeviceInfo(deviceBean)
|
||||
withContext(Dispatchers.Main) {
|
||||
if (response.code == 200) {
|
||||
currentStrikeRange = distance
|
||||
binding.tvDistance.text = "${distance}m"
|
||||
Toast.makeText(this@WaterGunSettingsActivity, "修改成功", Toast.LENGTH_SHORT).show()
|
||||
} else {
|
||||
Toast.makeText(this@WaterGunSettingsActivity, response.msg, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(this@WaterGunSettingsActivity, "网络请求失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateStrikeInterval(interval: String) {
|
||||
if (deviceId.isNullOrEmpty()) {
|
||||
Toast.makeText(this, "设备ID为空", Toast.LENGTH_SHORT).show()
|
||||
return
|
||||
}
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val deviceBean = DeviceBean(
|
||||
id = deviceId,
|
||||
strikeInterval = interval
|
||||
)
|
||||
val response = RetrofitNetwork.getNetworkService().updateDeviceInfo(deviceBean)
|
||||
withContext(Dispatchers.Main) {
|
||||
if (response.code == 200) {
|
||||
currentStrikeInterval = interval
|
||||
binding.tvInterval.text = "${interval}s"
|
||||
Toast.makeText(this@WaterGunSettingsActivity, "修改成功", Toast.LENGTH_SHORT).show()
|
||||
} else {
|
||||
Toast.makeText(this@WaterGunSettingsActivity, response.msg, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(this@WaterGunSettingsActivity, "网络请求失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateContainer(container: String) {
|
||||
if (deviceId.isNullOrEmpty()) {
|
||||
Toast.makeText(this, "设备ID为空", Toast.LENGTH_SHORT).show()
|
||||
return
|
||||
}
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val deviceBean = DeviceBean(
|
||||
id = deviceId,
|
||||
container = container
|
||||
)
|
||||
val response = RetrofitNetwork.getNetworkService().updateDeviceInfo(deviceBean)
|
||||
withContext(Dispatchers.Main) {
|
||||
if (response.code == 200) {
|
||||
currentContainer = container
|
||||
binding.tvContainer.text = container
|
||||
Toast.makeText(this@WaterGunSettingsActivity, "修改成功", Toast.LENGTH_SHORT).show()
|
||||
} else {
|
||||
Toast.makeText(this@WaterGunSettingsActivity, response.msg, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(this@WaterGunSettingsActivity, "网络请求失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user