diff --git a/app/src/main/java/com/futo/platformplayer/casting/StateCasting.kt b/app/src/main/java/com/futo/platformplayer/casting/StateCasting.kt index f25cd410..03145a78 100644 --- a/app/src/main/java/com/futo/platformplayer/casting/StateCasting.kt +++ b/app/src/main/java/com/futo/platformplayer/casting/StateCasting.kt @@ -176,7 +176,11 @@ class StateCasting { fun stopDiscovering() { _nsdManager?.apply { _discoveryListeners.forEach { - stopServiceDiscovery(it.value) + try { + stopServiceDiscovery(it.value) + } catch (e: Throwable) { + //Ignored + } } } } diff --git a/app/src/main/java/com/futo/platformplayer/states/StateSync.kt b/app/src/main/java/com/futo/platformplayer/states/StateSync.kt index 75182f82..6ab62f11 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StateSync.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StateSync.kt @@ -460,10 +460,10 @@ class StateSync { Log.i(TAG, "Started relay session.") } catch (e: Throwable) { Log.e(TAG, "Relay session failed.", e) - Thread.sleep(5000) } finally { _relaySession?.stop() _relaySession = null + Thread.sleep(5000) } } }.apply { start() } @@ -737,6 +737,9 @@ class StateSync { val json = String(dataBody, Charsets.UTF_8); val history = Serializer.json.decodeFromString>(json); Logger.i(TAG, "SyncHistory received ${history.size} videos from ${remotePublicKey}"); + if (history.size == 1) { + Logger.i(TAG, "SyncHistory received update video '${history[0].video.name}' (url: ${history[0].video.url}) at timestamp ${history[0].position}"); + } var lastHistory = OffsetDateTime.MIN; for(video in history){ diff --git a/app/src/main/java/com/futo/platformplayer/sync/internal/SyncSession.kt b/app/src/main/java/com/futo/platformplayer/sync/internal/SyncSession.kt index 51a40902..10b24d89 100644 --- a/app/src/main/java/com/futo/platformplayer/sync/internal/SyncSession.kt +++ b/app/src/main/java/com/futo/platformplayer/sync/internal/SyncSession.kt @@ -218,7 +218,9 @@ class SyncSession : IAuthorizable { sent = true break } catch (e: Throwable) { - Logger.w(TAG, "Packet failed to send (opcode = $opcode, subOpcode = $subOpcode)", e) + Logger.w(TAG, "Packet failed to send (opcode = $opcode, subOpcode = $subOpcode), closing channel", e) + channel.close() + removeChannel(channel) } }