diff --git a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java index f13d12927..cb9590f12 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java @@ -192,8 +192,10 @@ public class ApiConfig { } private void initLive(JsonObject object) { - boolean load = object.has("lives") && LiveConfig.get().isSame(config.getUrl()); - if (load) LiveConfig.get().clear().config(Config.find(config, 1).update()).parse(object); + boolean live = object.has("lives"); + boolean same = LiveConfig.get().isSame(config.getUrl()); + if (live) Config.find(config, 1).update(); + if (live && same) LiveConfig.get().clear().config(Config.find(config, 1)).parse(object); else LiveConfig.get().load(); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Config.java b/app/src/main/java/com/fongmi/android/tv/bean/Config.java index f1f136cf2..a5ac0e2df 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Config.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Config.java @@ -37,7 +37,8 @@ public class Config { private String parse; public static List arrayFrom(String str) { - Type listType = new TypeToken>() {}.getType(); + Type listType = new TypeToken>() { + }.getType(); List items = new Gson().fromJson(str, listType); return items == null ? Collections.emptyList() : items; } @@ -148,6 +149,10 @@ public class Config { return this; } + public boolean isEmpty() { + return TextUtils.isEmpty(getUrl()); + } + public String getDesc() { if (!TextUtils.isEmpty(getName())) return getName(); if (!TextUtils.isEmpty(getUrl())) return getUrl(); @@ -210,11 +215,13 @@ public class Config { } public Config insert() { + if (isEmpty()) return this; setId(Math.toIntExact(AppDatabase.get().getConfigDao().insert(this))); return this; } public Config update() { + if (isEmpty()) return this; setTime(System.currentTimeMillis()); AppDatabase.get().getConfigDao().update(this); return this; diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/ActionRequestProcess.java b/app/src/main/java/com/fongmi/android/tv/server/process/ActionRequestProcess.java index 6262821c9..1cad4dd14 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/ActionRequestProcess.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/ActionRequestProcess.java @@ -149,7 +149,7 @@ public class ActionRequestProcess implements RequestProcess { List configs = Config.arrayFrom(params.get("configs")); List targets = Keep.arrayFrom(params.get("targets")); boolean replace = Objects.equals(params.get("mode"), "1"); - if (ApiConfig.getUrl() == null && configs.size() > 0) { + if (ApiConfig.getUrl().isEmpty() && configs.size() > 0) { ApiConfig.load(Config.find(configs.get(0), 0), getCallback(configs, targets)); } else { if (replace) Keep.deleteAll();