aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/invalid/lena/scrcpy/Devices.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/invalid/lena/scrcpy/Devices.java')
-rw-r--r--app/src/main/java/invalid/lena/scrcpy/Devices.java13
1 files changed, 5 insertions, 8 deletions
diff --git a/app/src/main/java/invalid/lena/scrcpy/Devices.java b/app/src/main/java/invalid/lena/scrcpy/Devices.java
index 2883025..c3e5141 100644
--- a/app/src/main/java/invalid/lena/scrcpy/Devices.java
+++ b/app/src/main/java/invalid/lena/scrcpy/Devices.java
@@ -6,6 +6,7 @@ import org.json.JSONArray;
import org.json.JSONObject;
import java.io.File;
+import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.ArrayList;
@@ -97,18 +98,14 @@ public final class Devices {
}
}
- public static void save(Context ctx, List<Device> devices) {
+ public static void save(Context ctx, List<Device> devices) throws IOException {
File f = new File(ctx.getFilesDir(), FILE);
- try {
- AtomicFiles.write(f, serialize(devices).getBytes(StandardCharsets.UTF_8));
- } catch (Exception e) {
- Log.e(e, "devices: save failed");
- }
+ AtomicFiles.write(f, serialize(devices).getBytes(StandardCharsets.UTF_8));
}
// Add or replace by host+port. Context-rooted; the in-place helper
// is the test seam.
- public static List<Device> upsert(Context ctx, Device d) {
+ public static synchronized List<Device> upsert(Context ctx, Device d) throws IOException {
List<Device> list = load(ctx);
list.removeIf(d::equals);
list.add(d);
@@ -117,7 +114,7 @@ public final class Devices {
}
// Remove the matching device (by host+port). Returns the updated list.
- public static List<Device> remove(Context ctx, Device d) {
+ public static synchronized List<Device> remove(Context ctx, Device d) throws IOException {
List<Device> list = load(ctx);
list.removeIf(d::equals);
save(ctx, list);