Quitting tells every server goodbye at once, so leaving takes as long as the slowest server rather than all of them together. Desktop and Android both go through ServerSession.shutdownAll. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -117,11 +117,10 @@ class ServerController internal constructor(
|
||||
session.disconnect()
|
||||
}
|
||||
|
||||
/** Leaves the server before returning, for when the app goes away with the connection. */
|
||||
internal fun leave() {
|
||||
/** Before the app goes away with the connection, which [SessionController.leave] then ends. */
|
||||
internal fun leaving() {
|
||||
left = true
|
||||
network.leaving()
|
||||
session.shutdown()
|
||||
}
|
||||
|
||||
internal fun dispose() {
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.ts3client.myts.MyTeamSpeak
|
||||
import com.ts3client.net.HostButton
|
||||
import com.ts3client.myts.MyTeamSpeakLogin
|
||||
import com.ts3client.session.SelfState
|
||||
import com.ts3client.session.ServerSession
|
||||
import com.ts3client.session.Sessions
|
||||
import com.ts3client.sound.SoundNotifier
|
||||
import com.ts3client.sound.SoundPack
|
||||
@@ -199,7 +200,9 @@ class SessionController(private val context: Context) {
|
||||
|
||||
/** Leaves every server before returning, for when the app goes away with the connections. */
|
||||
fun leave() {
|
||||
_servers.value.forEach(ServerController::leave)
|
||||
val servers = _servers.value
|
||||
servers.forEach(ServerController::leaving)
|
||||
ServerSession.shutdownAll(servers.map { it.session })
|
||||
contactStore.flush()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user