diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d2dbaf7..d0b9221 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -4,20 +4,20 @@ /** * 五必须 */ - object SUPPLY : CurrentScene() + object Supply : CurrentScene() /** * 交底 */ - object DISCLOSURE : CurrentScene() + object Disclosure : CurrentScene() /** * 环境检测 */ - object ENVIRONMENT : CurrentScene() + object Environment : CurrentScene() /** * 人员监护 */ - object GUARDIAN : CurrentScene() + object Guardian : CurrentScene() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d2dbaf7..d0b9221 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -4,20 +4,20 @@ /** * 五必须 */ - object SUPPLY : CurrentScene() + object Supply : CurrentScene() /** * 交底 */ - object DISCLOSURE : CurrentScene() + object Disclosure : CurrentScene() /** * 环境检测 */ - object ENVIRONMENT : CurrentScene() + object Environment : CurrentScene() /** * 人员监护 */ - object GUARDIAN : CurrentScene() + object Guardian : CurrentScene() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index 7ffdb5d..ddd0acd 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -86,17 +86,19 @@ private val retryRunnable = Runnable { connect() } override fun onSocketOpened(webSocket: WebSocket) { + isConnected = true CoroutineScope(Dispatchers.Main).launch { "AI连接成功".show(context) } } override fun onMessageResponse(message: String) { + isConnected = true if (RuntimeCache.currentScene == null) { return } - val base64 = if (RuntimeCache.currentScene == CurrentScene.GUARDIAN) { + val base64 = if (RuntimeCache.currentScene == CurrentScene.Guardian) { message.split(":")[1] } else { message @@ -107,17 +109,17 @@ bitmap.saveImage(imagePath) when (RuntimeCache.currentScene) { - CurrentScene.SUPPLY -> { + CurrentScene.Supply -> { val msg = SuppliesActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath SuppliesActivity.weakReferenceHandler.sendMessage(msg) } - CurrentScene.DISCLOSURE -> {} - CurrentScene.ENVIRONMENT -> {} + CurrentScene.Disclosure -> {} + CurrentScene.Environment -> {} - CurrentScene.GUARDIAN -> { + CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d2dbaf7..d0b9221 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -4,20 +4,20 @@ /** * 五必须 */ - object SUPPLY : CurrentScene() + object Supply : CurrentScene() /** * 交底 */ - object DISCLOSURE : CurrentScene() + object Disclosure : CurrentScene() /** * 环境检测 */ - object ENVIRONMENT : CurrentScene() + object Environment : CurrentScene() /** * 人员监护 */ - object GUARDIAN : CurrentScene() + object Guardian : CurrentScene() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index 7ffdb5d..ddd0acd 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -86,17 +86,19 @@ private val retryRunnable = Runnable { connect() } override fun onSocketOpened(webSocket: WebSocket) { + isConnected = true CoroutineScope(Dispatchers.Main).launch { "AI连接成功".show(context) } } override fun onMessageResponse(message: String) { + isConnected = true if (RuntimeCache.currentScene == null) { return } - val base64 = if (RuntimeCache.currentScene == CurrentScene.GUARDIAN) { + val base64 = if (RuntimeCache.currentScene == CurrentScene.Guardian) { message.split(":")[1] } else { message @@ -107,17 +109,17 @@ bitmap.saveImage(imagePath) when (RuntimeCache.currentScene) { - CurrentScene.SUPPLY -> { + CurrentScene.Supply -> { val msg = SuppliesActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath SuppliesActivity.weakReferenceHandler.sendMessage(msg) } - CurrentScene.DISCLOSURE -> {} - CurrentScene.ENVIRONMENT -> {} + CurrentScene.Disclosure -> {} + CurrentScene.Environment -> {} - CurrentScene.GUARDIAN -> { + CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt index 45b8bd5..404f0d6 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.AirViewModel import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.dp2px @@ -28,6 +29,7 @@ private val kTag = "DisclosureActivity" private lateinit var constructionCheckViewModel: ConstructionCheckViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var airViewModel: AirViewModel override fun initEvent() { @@ -49,11 +51,13 @@ airViewModel.getAirCondition(this) } - binding.skipAirButton.setOnClickListener { + binding.confirmAirButton.setOnClickListener { if (!SocketManager.get.nettyClient.connectStatus) { "指令发送失败,请确认是否处于同一网段".show(this) return@setOnClickListener } + sceneViewModel.notifyStageFinished("Environment") + //下发指令 SocketManager.get.send(LocaleConstant.CONFIRM_AIR_COMMAND) @@ -65,9 +69,10 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.DISCLOSURE + RuntimeCache.currentScene = CurrentScene.Disclosure constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] airViewModel = ViewModelProvider(this)[AirViewModel::class.java] airViewModel.airConditionResult.observe(this) { if (it.code == 200) { diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d2dbaf7..d0b9221 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -4,20 +4,20 @@ /** * 五必须 */ - object SUPPLY : CurrentScene() + object Supply : CurrentScene() /** * 交底 */ - object DISCLOSURE : CurrentScene() + object Disclosure : CurrentScene() /** * 环境检测 */ - object ENVIRONMENT : CurrentScene() + object Environment : CurrentScene() /** * 人员监护 */ - object GUARDIAN : CurrentScene() + object Guardian : CurrentScene() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index 7ffdb5d..ddd0acd 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -86,17 +86,19 @@ private val retryRunnable = Runnable { connect() } override fun onSocketOpened(webSocket: WebSocket) { + isConnected = true CoroutineScope(Dispatchers.Main).launch { "AI连接成功".show(context) } } override fun onMessageResponse(message: String) { + isConnected = true if (RuntimeCache.currentScene == null) { return } - val base64 = if (RuntimeCache.currentScene == CurrentScene.GUARDIAN) { + val base64 = if (RuntimeCache.currentScene == CurrentScene.Guardian) { message.split(":")[1] } else { message @@ -107,17 +109,17 @@ bitmap.saveImage(imagePath) when (RuntimeCache.currentScene) { - CurrentScene.SUPPLY -> { + CurrentScene.Supply -> { val msg = SuppliesActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath SuppliesActivity.weakReferenceHandler.sendMessage(msg) } - CurrentScene.DISCLOSURE -> {} - CurrentScene.ENVIRONMENT -> {} + CurrentScene.Disclosure -> {} + CurrentScene.Environment -> {} - CurrentScene.GUARDIAN -> { + CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt index 45b8bd5..404f0d6 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.AirViewModel import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.dp2px @@ -28,6 +29,7 @@ private val kTag = "DisclosureActivity" private lateinit var constructionCheckViewModel: ConstructionCheckViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var airViewModel: AirViewModel override fun initEvent() { @@ -49,11 +51,13 @@ airViewModel.getAirCondition(this) } - binding.skipAirButton.setOnClickListener { + binding.confirmAirButton.setOnClickListener { if (!SocketManager.get.nettyClient.connectStatus) { "指令发送失败,请确认是否处于同一网段".show(this) return@setOnClickListener } + sceneViewModel.notifyStageFinished("Environment") + //下发指令 SocketManager.get.send(LocaleConstant.CONFIRM_AIR_COMMAND) @@ -65,9 +69,10 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.DISCLOSURE + RuntimeCache.currentScene = CurrentScene.Disclosure constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] airViewModel = ViewModelProvider(this)[AirViewModel::class.java] airViewModel.airConditionResult.observe(this) { if (it.code == 200) { diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt index e6e8d1f..3ee8052 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt @@ -133,7 +133,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.ENVIRONMENT + RuntimeCache.currentScene = CurrentScene.Environment weakReferenceHandler = WeakReferenceHandler(this) constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d2dbaf7..d0b9221 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -4,20 +4,20 @@ /** * 五必须 */ - object SUPPLY : CurrentScene() + object Supply : CurrentScene() /** * 交底 */ - object DISCLOSURE : CurrentScene() + object Disclosure : CurrentScene() /** * 环境检测 */ - object ENVIRONMENT : CurrentScene() + object Environment : CurrentScene() /** * 人员监护 */ - object GUARDIAN : CurrentScene() + object Guardian : CurrentScene() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index 7ffdb5d..ddd0acd 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -86,17 +86,19 @@ private val retryRunnable = Runnable { connect() } override fun onSocketOpened(webSocket: WebSocket) { + isConnected = true CoroutineScope(Dispatchers.Main).launch { "AI连接成功".show(context) } } override fun onMessageResponse(message: String) { + isConnected = true if (RuntimeCache.currentScene == null) { return } - val base64 = if (RuntimeCache.currentScene == CurrentScene.GUARDIAN) { + val base64 = if (RuntimeCache.currentScene == CurrentScene.Guardian) { message.split(":")[1] } else { message @@ -107,17 +109,17 @@ bitmap.saveImage(imagePath) when (RuntimeCache.currentScene) { - CurrentScene.SUPPLY -> { + CurrentScene.Supply -> { val msg = SuppliesActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath SuppliesActivity.weakReferenceHandler.sendMessage(msg) } - CurrentScene.DISCLOSURE -> {} - CurrentScene.ENVIRONMENT -> {} + CurrentScene.Disclosure -> {} + CurrentScene.Environment -> {} - CurrentScene.GUARDIAN -> { + CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt index 45b8bd5..404f0d6 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.AirViewModel import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.dp2px @@ -28,6 +29,7 @@ private val kTag = "DisclosureActivity" private lateinit var constructionCheckViewModel: ConstructionCheckViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var airViewModel: AirViewModel override fun initEvent() { @@ -49,11 +51,13 @@ airViewModel.getAirCondition(this) } - binding.skipAirButton.setOnClickListener { + binding.confirmAirButton.setOnClickListener { if (!SocketManager.get.nettyClient.connectStatus) { "指令发送失败,请确认是否处于同一网段".show(this) return@setOnClickListener } + sceneViewModel.notifyStageFinished("Environment") + //下发指令 SocketManager.get.send(LocaleConstant.CONFIRM_AIR_COMMAND) @@ -65,9 +69,10 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.DISCLOSURE + RuntimeCache.currentScene = CurrentScene.Disclosure constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] airViewModel = ViewModelProvider(this)[AirViewModel::class.java] airViewModel.airConditionResult.observe(this) { if (it.code == 200) { diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt index e6e8d1f..3ee8052 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt @@ -133,7 +133,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.ENVIRONMENT + RuntimeCache.currentScene = CurrentScene.Environment weakReferenceHandler = WeakReferenceHandler(this) constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt index 8ec8b0d..db3d72b 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt @@ -186,7 +186,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.GUARDIAN + RuntimeCache.currentScene = CurrentScene.Guardian weakReferenceHandler = WeakReferenceHandler(this) diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d2dbaf7..d0b9221 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -4,20 +4,20 @@ /** * 五必须 */ - object SUPPLY : CurrentScene() + object Supply : CurrentScene() /** * 交底 */ - object DISCLOSURE : CurrentScene() + object Disclosure : CurrentScene() /** * 环境检测 */ - object ENVIRONMENT : CurrentScene() + object Environment : CurrentScene() /** * 人员监护 */ - object GUARDIAN : CurrentScene() + object Guardian : CurrentScene() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index 7ffdb5d..ddd0acd 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -86,17 +86,19 @@ private val retryRunnable = Runnable { connect() } override fun onSocketOpened(webSocket: WebSocket) { + isConnected = true CoroutineScope(Dispatchers.Main).launch { "AI连接成功".show(context) } } override fun onMessageResponse(message: String) { + isConnected = true if (RuntimeCache.currentScene == null) { return } - val base64 = if (RuntimeCache.currentScene == CurrentScene.GUARDIAN) { + val base64 = if (RuntimeCache.currentScene == CurrentScene.Guardian) { message.split(":")[1] } else { message @@ -107,17 +109,17 @@ bitmap.saveImage(imagePath) when (RuntimeCache.currentScene) { - CurrentScene.SUPPLY -> { + CurrentScene.Supply -> { val msg = SuppliesActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath SuppliesActivity.weakReferenceHandler.sendMessage(msg) } - CurrentScene.DISCLOSURE -> {} - CurrentScene.ENVIRONMENT -> {} + CurrentScene.Disclosure -> {} + CurrentScene.Environment -> {} - CurrentScene.GUARDIAN -> { + CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt index 45b8bd5..404f0d6 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.AirViewModel import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.dp2px @@ -28,6 +29,7 @@ private val kTag = "DisclosureActivity" private lateinit var constructionCheckViewModel: ConstructionCheckViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var airViewModel: AirViewModel override fun initEvent() { @@ -49,11 +51,13 @@ airViewModel.getAirCondition(this) } - binding.skipAirButton.setOnClickListener { + binding.confirmAirButton.setOnClickListener { if (!SocketManager.get.nettyClient.connectStatus) { "指令发送失败,请确认是否处于同一网段".show(this) return@setOnClickListener } + sceneViewModel.notifyStageFinished("Environment") + //下发指令 SocketManager.get.send(LocaleConstant.CONFIRM_AIR_COMMAND) @@ -65,9 +69,10 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.DISCLOSURE + RuntimeCache.currentScene = CurrentScene.Disclosure constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] airViewModel = ViewModelProvider(this)[AirViewModel::class.java] airViewModel.airConditionResult.observe(this) { if (it.code == 200) { diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt index e6e8d1f..3ee8052 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt @@ -133,7 +133,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.ENVIRONMENT + RuntimeCache.currentScene = CurrentScene.Environment weakReferenceHandler = WeakReferenceHandler(this) constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt index 8ec8b0d..db3d72b 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt @@ -186,7 +186,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.GUARDIAN + RuntimeCache.currentScene = CurrentScene.Guardian weakReferenceHandler = WeakReferenceHandler(this) diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt index 55512b3..b78d55c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt @@ -19,6 +19,7 @@ import com.casic.br.operationsite.test.util.VideoPlayerManager import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.vm.UploadFileViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.adapter.EditableImageAdapter @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.shuyu.gsyvideoplayer.GSYVideoManager import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File @@ -52,6 +52,7 @@ private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var constructionCheckViewModel: ConstructionCheckViewModel private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var imageAdapter: EditableImageAdapter private var index = 1 private var clickTimes = 1 @@ -132,8 +133,6 @@ private fun sendCommand() { lifecycleScope.launch(Dispatchers.IO) { -// SocketManager.get.send(LocaleConstant.START_SUPPLIES_COMMAND) - delay(2000) constructionCheckViewModel.setCurrentPhase( LocaleConstant.AI_BASE_IP, "before_operation_protection" ) @@ -147,7 +146,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.SUPPLY + RuntimeCache.currentScene = CurrentScene.Supply weakReferenceHandler = WeakReferenceHandler(this) constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] @@ -171,6 +170,8 @@ } } + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] + //动态设置rtspPlayerView宽高 val params = binding.rtspPlayerView.layoutParams as LinearLayout.LayoutParams val videoWidth = getScreenWidth() - 20.dp2px(this) @@ -224,6 +225,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + sceneViewModel.notifyStageFinished("Supply") SocketManager.get.send(LocaleConstant.START_VIDEO_COMMAND) navigatePageTo() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d2dbaf7..d0b9221 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -4,20 +4,20 @@ /** * 五必须 */ - object SUPPLY : CurrentScene() + object Supply : CurrentScene() /** * 交底 */ - object DISCLOSURE : CurrentScene() + object Disclosure : CurrentScene() /** * 环境检测 */ - object ENVIRONMENT : CurrentScene() + object Environment : CurrentScene() /** * 人员监护 */ - object GUARDIAN : CurrentScene() + object Guardian : CurrentScene() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index 7ffdb5d..ddd0acd 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -86,17 +86,19 @@ private val retryRunnable = Runnable { connect() } override fun onSocketOpened(webSocket: WebSocket) { + isConnected = true CoroutineScope(Dispatchers.Main).launch { "AI连接成功".show(context) } } override fun onMessageResponse(message: String) { + isConnected = true if (RuntimeCache.currentScene == null) { return } - val base64 = if (RuntimeCache.currentScene == CurrentScene.GUARDIAN) { + val base64 = if (RuntimeCache.currentScene == CurrentScene.Guardian) { message.split(":")[1] } else { message @@ -107,17 +109,17 @@ bitmap.saveImage(imagePath) when (RuntimeCache.currentScene) { - CurrentScene.SUPPLY -> { + CurrentScene.Supply -> { val msg = SuppliesActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath SuppliesActivity.weakReferenceHandler.sendMessage(msg) } - CurrentScene.DISCLOSURE -> {} - CurrentScene.ENVIRONMENT -> {} + CurrentScene.Disclosure -> {} + CurrentScene.Environment -> {} - CurrentScene.GUARDIAN -> { + CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt index 45b8bd5..404f0d6 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.AirViewModel import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.dp2px @@ -28,6 +29,7 @@ private val kTag = "DisclosureActivity" private lateinit var constructionCheckViewModel: ConstructionCheckViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var airViewModel: AirViewModel override fun initEvent() { @@ -49,11 +51,13 @@ airViewModel.getAirCondition(this) } - binding.skipAirButton.setOnClickListener { + binding.confirmAirButton.setOnClickListener { if (!SocketManager.get.nettyClient.connectStatus) { "指令发送失败,请确认是否处于同一网段".show(this) return@setOnClickListener } + sceneViewModel.notifyStageFinished("Environment") + //下发指令 SocketManager.get.send(LocaleConstant.CONFIRM_AIR_COMMAND) @@ -65,9 +69,10 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.DISCLOSURE + RuntimeCache.currentScene = CurrentScene.Disclosure constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] airViewModel = ViewModelProvider(this)[AirViewModel::class.java] airViewModel.airConditionResult.observe(this) { if (it.code == 200) { diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt index e6e8d1f..3ee8052 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt @@ -133,7 +133,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.ENVIRONMENT + RuntimeCache.currentScene = CurrentScene.Environment weakReferenceHandler = WeakReferenceHandler(this) constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt index 8ec8b0d..db3d72b 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt @@ -186,7 +186,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.GUARDIAN + RuntimeCache.currentScene = CurrentScene.Guardian weakReferenceHandler = WeakReferenceHandler(this) diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt index 55512b3..b78d55c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt @@ -19,6 +19,7 @@ import com.casic.br.operationsite.test.util.VideoPlayerManager import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.vm.UploadFileViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.adapter.EditableImageAdapter @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.shuyu.gsyvideoplayer.GSYVideoManager import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File @@ -52,6 +52,7 @@ private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var constructionCheckViewModel: ConstructionCheckViewModel private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var imageAdapter: EditableImageAdapter private var index = 1 private var clickTimes = 1 @@ -132,8 +133,6 @@ private fun sendCommand() { lifecycleScope.launch(Dispatchers.IO) { -// SocketManager.get.send(LocaleConstant.START_SUPPLIES_COMMAND) - delay(2000) constructionCheckViewModel.setCurrentPhase( LocaleConstant.AI_BASE_IP, "before_operation_protection" ) @@ -147,7 +146,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.SUPPLY + RuntimeCache.currentScene = CurrentScene.Supply weakReferenceHandler = WeakReferenceHandler(this) constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] @@ -171,6 +170,8 @@ } } + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] + //动态设置rtspPlayerView宽高 val params = binding.rtspPlayerView.layoutParams as LinearLayout.LayoutParams val videoWidth = getScreenWidth() - 20.dp2px(this) @@ -224,6 +225,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + sceneViewModel.notifyStageFinished("Supply") SocketManager.get.send(LocaleConstant.START_VIDEO_COMMAND) navigatePageTo() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/vm/SceneViewModel.kt b/app/src/main/java/com/casic/br/operationsite/test/vm/SceneViewModel.kt new file mode 100644 index 0000000..90da407 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/test/vm/SceneViewModel.kt @@ -0,0 +1,11 @@ +package com.casic.br.operationsite.test.vm + +import com.casic.br.operationsite.test.retrofit.RetrofitServiceManager +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch + +class SceneViewModel : BaseViewModel() { + fun notifyStageFinished(stage: String) = launch({ + RetrofitServiceManager.notifyStageFinished(stage) + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt index 30d5dbf..48ebbdb 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitService.kt @@ -66,6 +66,15 @@ suspend fun getAirCondition(@Header("token") token: String): String /** + * 上报每个大阶段场景 + * */ + @GET("/emergency/notifyStageFinished") + suspend fun notifyStageFinished( + @Header("token") token: String, + @Query("stage") stage: String + ): String + + /** * 切换场景阶段 */ @POST("/setPhase") diff --git a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt index 19c7b19..b1097f8 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/retrofit/RetrofitServiceManager.kt @@ -88,6 +88,13 @@ } /** + * 上报每个大阶段场景 + */ + suspend fun notifyStageFinished(stage: String): String { + return api.notifyStageFinished(AuthenticationHelper.token!!, stage) + } + + /** * 设置当前阶段 */ suspend fun setCurrentPhase(httpConfig: String, phase: String): String { diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt index d2dbaf7..d0b9221 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/CurrentScene.kt @@ -4,20 +4,20 @@ /** * 五必须 */ - object SUPPLY : CurrentScene() + object Supply : CurrentScene() /** * 交底 */ - object DISCLOSURE : CurrentScene() + object Disclosure : CurrentScene() /** * 环境检测 */ - object ENVIRONMENT : CurrentScene() + object Environment : CurrentScene() /** * 人员监护 */ - object GUARDIAN : CurrentScene() + object Guardian : CurrentScene() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt index 7ffdb5d..ddd0acd 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/util/websocket/WebSocketManager.kt @@ -86,17 +86,19 @@ private val retryRunnable = Runnable { connect() } override fun onSocketOpened(webSocket: WebSocket) { + isConnected = true CoroutineScope(Dispatchers.Main).launch { "AI连接成功".show(context) } } override fun onMessageResponse(message: String) { + isConnected = true if (RuntimeCache.currentScene == null) { return } - val base64 = if (RuntimeCache.currentScene == CurrentScene.GUARDIAN) { + val base64 = if (RuntimeCache.currentScene == CurrentScene.Guardian) { message.split(":")[1] } else { message @@ -107,17 +109,17 @@ bitmap.saveImage(imagePath) when (RuntimeCache.currentScene) { - CurrentScene.SUPPLY -> { + CurrentScene.Supply -> { val msg = SuppliesActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath SuppliesActivity.weakReferenceHandler.sendMessage(msg) } - CurrentScene.DISCLOSURE -> {} - CurrentScene.ENVIRONMENT -> {} + CurrentScene.Disclosure -> {} + CurrentScene.Environment -> {} - CurrentScene.GUARDIAN -> { + CurrentScene.Guardian -> { val msg = GuardiansActivity.weakReferenceHandler.obtainMessage() msg.what = LocaleConstant.WEBSOCKET_MESSAGE_CODE msg.obj = imagePath diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt index 45b8bd5..404f0d6 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/DisclosureActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.AirViewModel import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.dp2px @@ -28,6 +29,7 @@ private val kTag = "DisclosureActivity" private lateinit var constructionCheckViewModel: ConstructionCheckViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var airViewModel: AirViewModel override fun initEvent() { @@ -49,11 +51,13 @@ airViewModel.getAirCondition(this) } - binding.skipAirButton.setOnClickListener { + binding.confirmAirButton.setOnClickListener { if (!SocketManager.get.nettyClient.connectStatus) { "指令发送失败,请确认是否处于同一网段".show(this) return@setOnClickListener } + sceneViewModel.notifyStageFinished("Environment") + //下发指令 SocketManager.get.send(LocaleConstant.CONFIRM_AIR_COMMAND) @@ -65,9 +69,10 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.DISCLOSURE + RuntimeCache.currentScene = CurrentScene.Disclosure constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] airViewModel = ViewModelProvider(this)[AirViewModel::class.java] airViewModel.airConditionResult.observe(this) { if (it.code == 200) { diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt index e6e8d1f..3ee8052 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/EnvironmentActivity.kt @@ -133,7 +133,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.ENVIRONMENT + RuntimeCache.currentScene = CurrentScene.Environment weakReferenceHandler = WeakReferenceHandler(this) constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt index 8ec8b0d..db3d72b 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/GuardiansActivity.kt @@ -186,7 +186,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.GUARDIAN + RuntimeCache.currentScene = CurrentScene.Guardian weakReferenceHandler = WeakReferenceHandler(this) diff --git a/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt b/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt index 55512b3..b78d55c 100644 --- a/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/test/view/SuppliesActivity.kt @@ -19,6 +19,7 @@ import com.casic.br.operationsite.test.util.VideoPlayerManager import com.casic.br.operationsite.test.util.tcp.SocketManager import com.casic.br.operationsite.test.vm.ConstructionCheckViewModel +import com.casic.br.operationsite.test.vm.SceneViewModel import com.casic.br.operationsite.test.vm.UploadFileViewModel import com.casic.br.operationsite.test.widget.BottomControlSheet import com.pengxh.kt.lite.adapter.EditableImageAdapter @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.shuyu.gsyvideoplayer.GSYVideoManager import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File @@ -52,6 +52,7 @@ private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var constructionCheckViewModel: ConstructionCheckViewModel private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var sceneViewModel: SceneViewModel private lateinit var imageAdapter: EditableImageAdapter private var index = 1 private var clickTimes = 1 @@ -132,8 +133,6 @@ private fun sendCommand() { lifecycleScope.launch(Dispatchers.IO) { -// SocketManager.get.send(LocaleConstant.START_SUPPLIES_COMMAND) - delay(2000) constructionCheckViewModel.setCurrentPhase( LocaleConstant.AI_BASE_IP, "before_operation_protection" ) @@ -147,7 +146,7 @@ override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) - RuntimeCache.currentScene = CurrentScene.SUPPLY + RuntimeCache.currentScene = CurrentScene.Supply weakReferenceHandler = WeakReferenceHandler(this) constructionCheckViewModel = ViewModelProvider(this)[ConstructionCheckViewModel::class.java] @@ -171,6 +170,8 @@ } } + sceneViewModel = ViewModelProvider(this)[SceneViewModel::class.java] + //动态设置rtspPlayerView宽高 val params = binding.rtspPlayerView.layoutParams as LinearLayout.LayoutParams val videoWidth = getScreenWidth() - 20.dp2px(this) @@ -224,6 +225,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + sceneViewModel.notifyStageFinished("Supply") SocketManager.get.send(LocaleConstant.START_VIDEO_COMMAND) navigatePageTo() } diff --git a/app/src/main/java/com/casic/br/operationsite/test/vm/SceneViewModel.kt b/app/src/main/java/com/casic/br/operationsite/test/vm/SceneViewModel.kt new file mode 100644 index 0000000..90da407 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/test/vm/SceneViewModel.kt @@ -0,0 +1,11 @@ +package com.casic.br.operationsite.test.vm + +import com.casic.br.operationsite.test.retrofit.RetrofitServiceManager +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch + +class SceneViewModel : BaseViewModel() { + fun notifyStageFinished(stage: String) = launch({ + RetrofitServiceManager.notifyStageFinished(stage) + }) +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_disclosure.xml b/app/src/main/res/layout/activity_disclosure.xml index bd7814f..794684f 100644 --- a/app/src/main/res/layout/activity_disclosure.xml +++ b/app/src/main/res/layout/activity_disclosure.xml @@ -271,7 +271,7 @@