diff --git a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt index 5b1a3e4..7a197c6 100644 --- a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt @@ -207,6 +207,11 @@ class ListenActivity : AppCompatActivity() { sendBroadcast(Intent(Constant.WEWORK_NOTIFY).apply { putExtra("type", "modify_channel") }) + runCatching { + WeworkController.weworkService.reconnectWebSocket("modify_channel_direct") + }.onFailure { + LogUtils.w("重置后直连重连失败,等待广播触发: ${it.message}") + } HttpUtil.getMyConfig(toast = false) MobclickAgent.onProfileSignIn(channel) } diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkService.kt b/app/src/main/java/org/yameida/worktool/service/WeworkService.kt index d5ba25c..652bf51 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkService.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkService.kt @@ -50,9 +50,7 @@ class WeworkService : AccessibilityService() { registerReceiver(object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if (intent.getStringExtra("type") == "modify_channel") { - LogUtils.e("更新channel") - webSocketManager.close(1000, "modify_channel") - initWebSocket() + reconnectWebSocket("modify_channel") } } }, IntentFilter(Constant.WEWORK_NOTIFY)) @@ -65,6 +63,14 @@ class WeworkService : AccessibilityService() { webSocketManager = WebSocketManager(url, listener) } + fun reconnectWebSocket(reason: String) { + LogUtils.i("reconnectWebSocket: $reason") + if (::webSocketManager.isInitialized) { + webSocketManager.close(1000, reason) + } + initWebSocket() + } + private fun initObserver() { if (!Constant.pushImage) return try {