From c2a16a9b4ad237d01148486dbd019c0ef8bc1418 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 20 Jun 2018 01:25:45 -0700 Subject: [PATCH] Avoid sending input to the remote PC when running under Monkey --- .../com/limelight/nvstream/NvConnection.java | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java b/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java index 392a2c09..b87b3f44 100644 --- a/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java +++ b/moonlight-common/src/main/java/com/limelight/nvstream/NvConnection.java @@ -1,5 +1,7 @@ package com.limelight.nvstream; +import android.app.ActivityManager; + import java.io.IOException; import java.nio.ByteBuffer; import java.security.NoSuchAlgorithmException; @@ -29,6 +31,7 @@ public class NvConnection { private String uniqueId; private ConnectionContext context; private static Semaphore connectionAllowed = new Semaphore(1); + private final boolean isMonkey; public NvConnection(String host, String uniqueId, StreamConfiguration config, LimelightCryptoProvider cryptoProvider) { @@ -47,6 +50,7 @@ public class NvConnection { } this.context.riKeyId = generateRiKeyId(); + this.isMonkey = ActivityManager.isUserAMonkey(); } private static SecretKey generateRiAesKey() throws NoSuchAlgorithmException { @@ -287,17 +291,23 @@ public class NvConnection { public void sendMouseMove(final short deltaX, final short deltaY) { - MoonBridge.sendMouseMove(deltaX, deltaY); + if (!isMonkey) { + MoonBridge.sendMouseMove(deltaX, deltaY); + } } public void sendMouseButtonDown(final byte mouseButton) { - MoonBridge.sendMouseButton(MouseButtonPacket.PRESS_EVENT, mouseButton); + if (!isMonkey) { + MoonBridge.sendMouseButton(MouseButtonPacket.PRESS_EVENT, mouseButton); + } } public void sendMouseButtonUp(final byte mouseButton) { - MoonBridge.sendMouseButton(MouseButtonPacket.RELEASE_EVENT, mouseButton); + if (!isMonkey) { + MoonBridge.sendMouseButton(MouseButtonPacket.RELEASE_EVENT, mouseButton); + } } public void sendControllerInput(final short controllerNumber, @@ -306,7 +316,10 @@ public class NvConnection { final short leftStickX, final short leftStickY, final short rightStickX, final short rightStickY) { - MoonBridge.sendMultiControllerInput(controllerNumber, activeGamepadMask, buttonFlags, leftTrigger, rightTrigger, leftStickX, leftStickY, rightStickX, rightStickY); + if (!isMonkey) { + MoonBridge.sendMultiControllerInput(controllerNumber, activeGamepadMask, buttonFlags, + leftTrigger, rightTrigger, leftStickX, leftStickY, rightStickX, rightStickY); + } } public void sendControllerInput(final short buttonFlags, @@ -314,14 +327,21 @@ public class NvConnection { final short leftStickX, final short leftStickY, final short rightStickX, final short rightStickY) { - MoonBridge.sendControllerInput(buttonFlags, leftTrigger, rightTrigger, leftStickX, leftStickY, rightStickX, rightStickY); + if (!isMonkey) { + MoonBridge.sendControllerInput(buttonFlags, leftTrigger, rightTrigger, leftStickX, + leftStickY, rightStickX, rightStickY); + } } public void sendKeyboardInput(final short keyMap, final byte keyDirection, final byte modifier) { - MoonBridge.sendKeyboardInput(keyMap, keyDirection, modifier); + if (!isMonkey) { + MoonBridge.sendKeyboardInput(keyMap, keyDirection, modifier); + } } public void sendMouseScroll(final byte scrollClicks) { - MoonBridge.sendMouseScroll(scrollClicks); + if (!isMonkey) { + MoonBridge.sendMouseScroll(scrollClicks); + } } }