diff --git a/server/src/main/java/com/genymobile/scrcpy/Controller.java b/server/src/main/java/com/genymobile/scrcpy/Controller.java index a31441e8..131ceb31 100644 --- a/server/src/main/java/com/genymobile/scrcpy/Controller.java +++ b/server/src/main/java/com/genymobile/scrcpy/Controller.java @@ -182,11 +182,15 @@ public class Controller { int id = msg.getGameControllerId(); int axis = msg.getGameControllerAxis(); int value = msg.getGameControllerAxisValue(); - if (!gameControllers.contains(id)) { + + GameController controller = gameControllers.get(id); + + if (controller != null) { + controller.setAxis(axis, value); + } else { Ln.w("Received data for non-existant controller."); - break; } - gameControllers.get(id).setAxis(axis, value); + break; } break; case ControlMessage.TYPE_INJECT_GAME_CONTROLLER_BUTTON: @@ -194,11 +198,14 @@ public class Controller { int id = msg.getGameControllerId(); int button = msg.getGameControllerButton(); int state = msg.getGameControllerButtonState(); - if (!gameControllers.contains(id)) { + + GameController controller = gameControllers.get(id); + + if (controller != null) { + controller.setButton(button, state); + } else { Ln.w("Received data for non-existant controller."); - break; } - gameControllers.get(id).setButton(button, state); } break; case ControlMessage.TYPE_INJECT_GAME_CONTROLLER_DEVICE: @@ -212,12 +219,15 @@ public class Controller { break; case GameController.DEVICE_REMOVED: - if (!gameControllers.contains(id)) { + GameController controller = gameControllers.get(id); + + if (controller != null) { + controller.close(); + gameControllers.delete(id); + } else { Ln.w("Non-existant game controller removed."); - break; } - gameControllers.get(id).close(); - gameControllers.delete(id); + break; default: diff --git a/server/src/main/java/com/genymobile/scrcpy/Server.java b/server/src/main/java/com/genymobile/scrcpy/Server.java index 292cfbe3..81228416 100644 --- a/server/src/main/java/com/genymobile/scrcpy/Server.java +++ b/server/src/main/java/com/genymobile/scrcpy/Server.java @@ -4,14 +4,12 @@ import android.graphics.Rect; import android.media.MediaCodecInfo; import android.os.BatteryManager; import android.os.Build; +import android.text.TextUtils; import java.io.InputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; +import java.nio.channels.FileChannel; import java.util.List; import java.util.Locale;