diff --git a/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt index 4982fea..54729e1 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt @@ -197,10 +197,14 @@ id, onLoading = {}, onSuccess = { - dataBeans.forEachIndexed { index, item -> - if (item.name == it.data.scene_name) { - binding.sceneTypeSpinner.setSelection(index) - } + val selectedIndex = dataBeans.indexOfFirst { item -> + item.name == it.data.scene_name + } + + if (selectedIndex >= 0 && selectedIndex < binding.sceneTypeSpinner.adapter.count) { + binding.sceneTypeSpinner.setSelection(selectedIndex) + } else { + binding.sceneTypeSpinner.setSelection(0) } }, onFailed = { it.show(requireContext()) } @@ -256,7 +260,7 @@ deviceId, selectedScene!!.id, onLoading = {}, - onSuccess = { "更新AI模型成功".show(requireContext()) }, + onSuccess = { rebootAlgorithmDevice() }, onFailed = { it.show(requireContext()) } ) } @@ -292,6 +296,24 @@ } } + private fun rebootAlgorithmDevice() { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("更新AI模型成功,是否重启一体机?") + .setNegativeButton("否") + .setPositiveButton("是") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + algorithmViewModel.rebootAlgorithmDevice() + "一体机重启中,请稍后...".show(requireContext()) + } + + override fun onCancelClick() {} + }).build().show() + } + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.DEVICE_RESPONSE_CODE -> { diff --git a/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt index 4982fea..54729e1 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt @@ -197,10 +197,14 @@ id, onLoading = {}, onSuccess = { - dataBeans.forEachIndexed { index, item -> - if (item.name == it.data.scene_name) { - binding.sceneTypeSpinner.setSelection(index) - } + val selectedIndex = dataBeans.indexOfFirst { item -> + item.name == it.data.scene_name + } + + if (selectedIndex >= 0 && selectedIndex < binding.sceneTypeSpinner.adapter.count) { + binding.sceneTypeSpinner.setSelection(selectedIndex) + } else { + binding.sceneTypeSpinner.setSelection(0) } }, onFailed = { it.show(requireContext()) } @@ -256,7 +260,7 @@ deviceId, selectedScene!!.id, onLoading = {}, - onSuccess = { "更新AI模型成功".show(requireContext()) }, + onSuccess = { rebootAlgorithmDevice() }, onFailed = { it.show(requireContext()) } ) } @@ -292,6 +296,24 @@ } } + private fun rebootAlgorithmDevice() { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("更新AI模型成功,是否重启一体机?") + .setNegativeButton("否") + .setPositiveButton("是") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + algorithmViewModel.rebootAlgorithmDevice() + "一体机重启中,请稍后...".show(requireContext()) + } + + override fun onCancelClick() {} + }).build().show() + } + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.DEVICE_RESPONSE_CODE -> { diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index b10a161..2a33ddc 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -182,4 +182,10 @@ @QueryMap deviceId: Map, @QueryMap sceneId: Map ): String + + /** + * 重启一体机 + */ + @GET("/api/control/restart") + suspend fun rebootAlgorithmDevice(): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt index 4982fea..54729e1 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt @@ -197,10 +197,14 @@ id, onLoading = {}, onSuccess = { - dataBeans.forEachIndexed { index, item -> - if (item.name == it.data.scene_name) { - binding.sceneTypeSpinner.setSelection(index) - } + val selectedIndex = dataBeans.indexOfFirst { item -> + item.name == it.data.scene_name + } + + if (selectedIndex >= 0 && selectedIndex < binding.sceneTypeSpinner.adapter.count) { + binding.sceneTypeSpinner.setSelection(selectedIndex) + } else { + binding.sceneTypeSpinner.setSelection(0) } }, onFailed = { it.show(requireContext()) } @@ -256,7 +260,7 @@ deviceId, selectedScene!!.id, onLoading = {}, - onSuccess = { "更新AI模型成功".show(requireContext()) }, + onSuccess = { rebootAlgorithmDevice() }, onFailed = { it.show(requireContext()) } ) } @@ -292,6 +296,24 @@ } } + private fun rebootAlgorithmDevice() { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("更新AI模型成功,是否重启一体机?") + .setNegativeButton("否") + .setPositiveButton("是") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + algorithmViewModel.rebootAlgorithmDevice() + "一体机重启中,请稍后...".show(requireContext()) + } + + override fun onCancelClick() {} + }).build().show() + } + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.DEVICE_RESPONSE_CODE -> { diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index b10a161..2a33ddc 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -182,4 +182,10 @@ @QueryMap deviceId: Map, @QueryMap sceneId: Map ): String + + /** + * 重启一体机 + */ + @GET("/api/control/restart") + suspend fun rebootAlgorithmDevice(): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 4926a34..b0b8d46 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -287,4 +287,16 @@ val service = RetrofitFactory.createRetrofit("http://$httpConfig:9000") return service.updateAlgorithmByDevice(deviceIdMap, sceneIdMap) } + + suspend fun rebootAlgorithmDevice(): String { + val httpConfig = SaveKeyValues.getValue( + LocaleConstant.ALGORITHM_DEVICE_API_KEY, "192.168.10.236" + ) as String + if (httpConfig == "") { + Log.d(kTag, "httpConfig is null") + return "" + } + val service = RetrofitFactory.createRetrofit("http://$httpConfig:9000") + return service.rebootAlgorithmDevice() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt index 4982fea..54729e1 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragments/BaseSettingsFragment.kt @@ -197,10 +197,14 @@ id, onLoading = {}, onSuccess = { - dataBeans.forEachIndexed { index, item -> - if (item.name == it.data.scene_name) { - binding.sceneTypeSpinner.setSelection(index) - } + val selectedIndex = dataBeans.indexOfFirst { item -> + item.name == it.data.scene_name + } + + if (selectedIndex >= 0 && selectedIndex < binding.sceneTypeSpinner.adapter.count) { + binding.sceneTypeSpinner.setSelection(selectedIndex) + } else { + binding.sceneTypeSpinner.setSelection(0) } }, onFailed = { it.show(requireContext()) } @@ -256,7 +260,7 @@ deviceId, selectedScene!!.id, onLoading = {}, - onSuccess = { "更新AI模型成功".show(requireContext()) }, + onSuccess = { rebootAlgorithmDevice() }, onFailed = { it.show(requireContext()) } ) } @@ -292,6 +296,24 @@ } } + private fun rebootAlgorithmDevice() { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("更新AI模型成功,是否重启一体机?") + .setNegativeButton("否") + .setPositiveButton("是") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + algorithmViewModel.rebootAlgorithmDevice() + "一体机重启中,请稍后...".show(requireContext()) + } + + override fun onCancelClick() {} + }).build().show() + } + override fun handleMessage(msg: Message): Boolean { when (msg.what) { LocaleConstant.DEVICE_RESPONSE_CODE -> { diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index b10a161..2a33ddc 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -182,4 +182,10 @@ @QueryMap deviceId: Map, @QueryMap sceneId: Map ): String + + /** + * 重启一体机 + */ + @GET("/api/control/restart") + suspend fun rebootAlgorithmDevice(): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 4926a34..b0b8d46 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -287,4 +287,16 @@ val service = RetrofitFactory.createRetrofit("http://$httpConfig:9000") return service.updateAlgorithmByDevice(deviceIdMap, sceneIdMap) } + + suspend fun rebootAlgorithmDevice(): String { + val httpConfig = SaveKeyValues.getValue( + LocaleConstant.ALGORITHM_DEVICE_API_KEY, "192.168.10.236" + ) as String + if (httpConfig == "") { + Log.d(kTag, "httpConfig is null") + return "" + } + val service = RetrofitFactory.createRetrofit("http://$httpConfig:9000") + return service.rebootAlgorithmDevice() + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/vm/AlgorithmViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/AlgorithmViewModel.kt index 2ff6c35..6e97baa 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/AlgorithmViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/AlgorithmViewModel.kt @@ -84,4 +84,8 @@ it.printStackTrace() onFailed(it.message ?: "Unknown error") }) + + fun rebootAlgorithmDevice() = launch({ + RetrofitServiceManager.rebootAlgorithmDevice() + }) } \ No newline at end of file