diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java index 0087588..e302337 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java @@ -70,9 +70,9 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall @Override public void onRobotFocusGained(QiContext qiContext) { - // Find the VideoView by its ID - CompletableFuture.runAsync(() -> FitnessCycle.executeMovement("bicepcurl", 10, qiContext)); personalMotionPreviewElement.provideQiContext(qiContext); + // Find the VideoView by its ID + //CompletableFuture.runAsync(() -> FitnessCycle.executeMovement("bicepcurl", 10, qiContext)); // FitnessCycle.playVideo(qiContext, videoView, this); } @@ -89,5 +89,7 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall @Override protected void onDestroy() { super.onDestroy(); + QiSDK.unregister(this, this); + this.personalMotionPreviewElement.onDestroy(); } } \ No newline at end of file diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/components/PersonalMotionPreviewElement.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/components/PersonalMotionPreviewElement.java index 1601899..0109112 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/components/PersonalMotionPreviewElement.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/components/PersonalMotionPreviewElement.java @@ -94,6 +94,14 @@ public class PersonalMotionPreviewElement extends View { this.paths = exercise.getPath(); } + public void onDestroy() + { + if ( this.motionProcessor != null ) + this.motionProcessor.stopListening(); + + this.motionProcessor = null; + } + /** * Function for providing a QiContext to the PersonalMotionPreviewElement. * This function will be called by the parent activity when the QiContext is available. diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/MotionProcessor.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/MotionProcessor.java index 41f6363..875f731 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/MotionProcessor.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/MotionProcessor.java @@ -71,6 +71,9 @@ public class MotionProcessor { public void parsePacket(@NotNull String data) { try { + + Log.i("MotionProcessor", "Received packet data: " + data); + JsonElement json = JsonParser.parseString(data); if (!json.isJsonObject()) @@ -106,6 +109,7 @@ public class MotionProcessor { addMotionData(motionData); } catch (Exception e) { // Don't do anything ... just ignore the exception + Log.i("MotionProcessor", "Failed to parse packet data."); } } diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/server/WebServer.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/server/WebServer.java index 7362113..7fe001a 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/server/WebServer.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/server/WebServer.java @@ -6,6 +6,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; @@ -63,6 +64,7 @@ public class WebServer implements Runnable { // Find a new connection Socket newSocket = this.serverSocket.accept(); InputStream streamIn = newSocket.getInputStream(); + OutputStream streamOut = newSocket.getOutputStream(); // Read the incoming data BufferedReader reader = new BufferedReader(new InputStreamReader(streamIn)); @@ -71,7 +73,14 @@ public class WebServer implements Runnable { while ((line = reader.readLine()) != null) builder.append(line).append("\n"); + // Send generic message back + streamOut.write("HTTP/1.1 200 OK\n".getBytes()); + streamOut.write("Content-Type: text/html\n".getBytes()); + streamOut.write("Connection: close\n".getBytes()); + streamIn.close(); // Closes the reader, stream and socket connection. + streamOut.close(); + newSocket.close(); String[] data = builder.toString().split("\n\n");