From fe88111187b0f35e07c682770135e97c8df19cd2 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Laurini Date: Sat, 20 Feb 2021 14:32:16 -0300 Subject: [PATCH] Avoid calls unavailable on API level 21 --- .../com/genymobile/scrcpy/Controller.java | 30 ++++++++++++------- .../java/com/genymobile/scrcpy/Server.java | 6 ++-- 2 files changed, 22 insertions(+), 14 deletions(-) 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;