From 5d2fd1fba86a85f6f71e71b5d75538361fbece0a Mon Sep 17 00:00:00 2001 From: edr Date: Sat, 30 Sep 2023 16:43:50 +0200 Subject: [PATCH] Enforce client disconnect when closing monitoring view --- .../java/de/rochefort/childmonitor/MonitorActivity.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/de/rochefort/childmonitor/MonitorActivity.java b/app/src/main/java/de/rochefort/childmonitor/MonitorActivity.java index b32147c..febff66 100644 --- a/app/src/main/java/de/rochefort/childmonitor/MonitorActivity.java +++ b/app/src/main/java/de/rochefort/childmonitor/MonitorActivity.java @@ -84,7 +84,7 @@ public class MonitorActivity extends Activity { socket.setSendBufferSize(pcmBufferSize); Log.d(TAG, "Socket send buffer size: " + socket.getSendBufferSize()); - while (socket.isConnected() && !Thread.currentThread().isInterrupted()) { + while (socket.isConnected() && currentSocket != null && !Thread.currentThread().isInterrupted()) { final int read = audioRecord.read(pcmBuffer, 0, bufferSize); int encoded = CODEC.encode(pcmBuffer, read, ulawBuffer, 0); out.write(ulawBuffer, 0, encoded); @@ -181,7 +181,7 @@ public class MonitorActivity extends Activity { } @Override - protected void onDestroy() { + protected void onStop() { Log.i(TAG, "ChildMonitor stop"); unregisterService(); @@ -190,12 +190,12 @@ public class MonitorActivity extends Activity { if(currentSocket != null) { try { currentSocket.close(); + currentSocket = null; } catch (IOException e) { Log.e(TAG, "Failed to close active socket on port "+currentPort); } } - - super.onDestroy(); + super.onStop(); } private void registerService(final int port) {