水枪设置1
This commit is contained in:
@@ -22,8 +22,6 @@ import kotlinx.coroutines.withContext
|
|||||||
class SettingsActivity : BaseActivity() {
|
class SettingsActivity : BaseActivity() {
|
||||||
|
|
||||||
private lateinit var binding: SettingsActivityBinding
|
private lateinit var binding: SettingsActivityBinding
|
||||||
private val SP_NAME = "DeviceSettings"
|
|
||||||
private val KEY_RECOGNITION_MODE = "recognition_mode"
|
|
||||||
private var alertAudio: String? = null
|
private var alertAudio: String? = null
|
||||||
private var audioContent: String? = null
|
private var audioContent: String? = null
|
||||||
|
|
||||||
@@ -82,7 +80,43 @@ class SettingsActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
binding.itemWaterGunSetting.setOnClickListener {
|
binding.itemWaterGunSetting.setOnClickListener {
|
||||||
val intent = Intent(this, WaterGunSettingsActivity::class.java)
|
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 {
|
binding.itemAutoMode.setOnClickListener {
|
||||||
val intent = Intent(this, AutoModeActivity::class.java)
|
val intent = Intent(this, AutoModeActivity::class.java)
|
||||||
|
|||||||
@@ -1,18 +1,30 @@
|
|||||||
package com.example.defenseapplication.liveVideo
|
package com.example.defenseapplication.liveVideo
|
||||||
|
|
||||||
import android.content.Intent
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.widget.Toast
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
import com.example.defenseapplication.R
|
import com.example.defenseapplication.R
|
||||||
import com.example.defenseapplication.base.BaseActivity
|
import com.example.defenseapplication.base.BaseActivity
|
||||||
|
import com.example.defenseapplication.bean.DeviceBean
|
||||||
import com.example.defenseapplication.databinding.WaterGunSettingsActivityBinding
|
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.ContainerSelectDialog
|
||||||
import com.example.defenseapplication.view.CustomDialogFragmentText
|
import com.example.defenseapplication.view.CustomDialogFragmentText
|
||||||
import com.gyf.immersionbar.ImmersionBar
|
import com.gyf.immersionbar.ImmersionBar
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
//水枪设置
|
//水枪设置
|
||||||
class WaterGunSettingsActivity : BaseActivity() {
|
class WaterGunSettingsActivity : BaseActivity() {
|
||||||
|
|
||||||
private lateinit var binding: WaterGunSettingsActivityBinding
|
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?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@@ -24,6 +36,18 @@ class WaterGunSettingsActivity : BaseActivity() {
|
|||||||
.titleBar(binding.topBar)
|
.titleBar(binding.topBar)
|
||||||
.init()
|
.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()
|
initListeners()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,9 +59,9 @@ class WaterGunSettingsActivity : BaseActivity() {
|
|||||||
binding.itemDistance.setOnClickListener {
|
binding.itemDistance.setOnClickListener {
|
||||||
val dialog = CustomDialogFragmentText()
|
val dialog = CustomDialogFragmentText()
|
||||||
.setTitle(getString(R.string.strike_distance))
|
.setTitle(getString(R.string.strike_distance))
|
||||||
.setInputText(binding.tvDistance.text.toString().replace("m", ""))
|
.setInputText(currentStrikeRange)
|
||||||
dialog.setOnConfirmListener { distance ->
|
dialog.setOnConfirmListener { distance ->
|
||||||
binding.tvDistance.text = "${distance}m"
|
updateStrikeRange(distance)
|
||||||
}
|
}
|
||||||
dialog.show(supportFragmentManager, "DistanceDialog")
|
dialog.show(supportFragmentManager, "DistanceDialog")
|
||||||
}
|
}
|
||||||
@@ -45,23 +69,118 @@ class WaterGunSettingsActivity : BaseActivity() {
|
|||||||
binding.itemInterval.setOnClickListener {
|
binding.itemInterval.setOnClickListener {
|
||||||
val dialog = CustomDialogFragmentText()
|
val dialog = CustomDialogFragmentText()
|
||||||
.setTitle(getString(R.string.strike_interval))
|
.setTitle(getString(R.string.strike_interval))
|
||||||
.setInputText(binding.tvInterval.text.toString().replace("s", ""))
|
.setInputText(currentStrikeInterval)
|
||||||
dialog.setOnConfirmListener { interval ->
|
dialog.setOnConfirmListener { interval ->
|
||||||
binding.tvInterval.text = "${interval}s"
|
updateStrikeInterval(interval)
|
||||||
}
|
}
|
||||||
dialog.show(supportFragmentManager, "IntervalDialog")
|
dialog.show(supportFragmentManager, "IntervalDialog")
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.itemContainer.setOnClickListener {
|
binding.itemContainer.setOnClickListener {
|
||||||
val dialog = ContainerSelectDialog(this)
|
val dialog = ContainerSelectDialog(this)
|
||||||
dialog.setSelectedContainer(binding.tvContainer.text.toString())
|
dialog.setSelectedContainer(currentContainer)
|
||||||
dialog.setOnConfirmListener { container ->
|
dialog.setOnConfirmListener { container ->
|
||||||
binding.tvContainer.text = container
|
updateContainer(container)
|
||||||
}
|
}
|
||||||
dialog.show()
|
dialog.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.itemPosition.setOnClickListener {
|
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