mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Fix web socket management related crashes.
This commit is contained in:
committed by
Greyson Parrelli
parent
0fb6062db3
commit
2f4669d7eb
@@ -63,7 +63,7 @@ class SignalWebSocketHealthMonitor(
|
||||
.distinctUntilChanged()
|
||||
.subscribeBy { onStateChanged(it) }
|
||||
|
||||
webSocket.keepAliveChangedListener = this::updateKeepAliveSenderStatus
|
||||
webSocket.keepAliveChangedListener = { executor.execute(this::updateKeepAliveSenderStatus) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,10 +100,9 @@ class SignalWebSocketHealthMonitor(
|
||||
|
||||
private fun updateKeepAliveSenderStatus() {
|
||||
if (keepAliveSender == null && sendKeepAlives()) {
|
||||
keepAliveSender = KeepAliveSender()
|
||||
keepAliveSender!!.start()
|
||||
keepAliveSender = KeepAliveSender().also { it.start() }
|
||||
} else if (keepAliveSender != null && !sendKeepAlives()) {
|
||||
keepAliveSender!!.shutdown()
|
||||
keepAliveSender?.shutdown()
|
||||
keepAliveSender = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,8 +238,10 @@ sealed class SignalWebSocket(
|
||||
lastInteractionTime = now
|
||||
}
|
||||
val sleepDuration = (lastInteractionTime + disconnectTimeout) - now
|
||||
Log.v(TAG, "$connectionName Disconnect scheduled in $sleepDuration")
|
||||
sleepTimer.sleep(sleepDuration.inWholeMilliseconds)
|
||||
if (sleepDuration.isPositive()) {
|
||||
Log.v(TAG, "$connectionName Disconnect scheduled in $sleepDuration")
|
||||
sleepTimer.sleep(sleepDuration.inWholeMilliseconds)
|
||||
}
|
||||
}
|
||||
} catch (_: InterruptedException) { }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user