diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java index ec5c1a33a..c3faacaf8 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java @@ -309,8 +309,9 @@ public class LiveConfig { private void setHome(Live live, boolean check) { home = live; home.setActivated(true); - config.home(home.getName()).update(); - for (Live item : getLives()) item.setActivated(home); + config.home(home.getName()); + if (!check) config.update(); + getLives().forEach(item -> item.setActivated(home)); if (App.activity() != null && App.activity() instanceof LiveActivity) return; if (check) if (home.isBoot() || Setting.isBootLive()) App.post(this::bootLive); } diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java index f679e4cf4..b0f1588db 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java @@ -177,7 +177,7 @@ public class VodConfig { setSites(Json.safeListElement(object, "sites").stream().map(element -> Site.objectFrom(element, spider)).distinct().toList()); Map items = Site.findAll().stream().collect(Collectors.toMap(Site::getKey, Function.identity())); for (Site site : getSites()) { - if (site.getKey().equals(config.getHome())) setHome(site); + if (site.getKey().equals(config.getHome())) setHome(site, false); Site item = items.get(site.getKey()); if (item != null) site.sync(item); } @@ -187,7 +187,7 @@ public class VodConfig { setParses(Json.safeListElement(object, "parses").stream().map(Parse::objectFrom).distinct().toList()); for (Parse parse : getParses()) { if (parse.getName().equals(config.getParse()) && parse.getType() > 1) { - setParse(parse); + setParse(parse, false); break; } } @@ -195,8 +195,8 @@ public class VodConfig { private void initOther(JsonObject object) { if (!parses.isEmpty()) parses.add(0, Parse.god()); - if (home == null) setHome(sites.isEmpty() ? new Site() : sites.get(0)); - if (parse == null) setParse(parses.isEmpty() ? new Parse() : parses.get(0)); + if (home == null) setHome(sites.isEmpty() ? new Site() : sites.get(0), false); + if (parse == null) setParse(parses.isEmpty() ? new Parse() : parses.get(0), false); setHeaders(Header.arrayFrom(object.getAsJsonArray("headers"))); setProxy(Proxy.arrayFrom(object.getAsJsonArray("proxy"))); setRules(Rule.arrayFrom(object.getAsJsonArray("rules"))); @@ -318,17 +318,27 @@ public class VodConfig { } public void setParse(Parse parse) { + setParse(parse, true); + } + + public void setParse(Parse parse, boolean save) { this.parse = parse; this.parse.setActivated(true); - config.parse(parse.getName()).save(); - for (Parse item : getParses()) item.setActivated(parse); + config.parse(parse.getName()); + getParses().forEach(item -> item.setActivated(parse)); + if (save) config.save(); } public void setHome(Site site) { + setHome(site, true); + } + + public void setHome(Site site, boolean save) { home = site; home.setActivated(true); - config.home(home.getKey()).save(); - for (Site item : getSites()) item.setActivated(home); + config.home(home.getKey()); + getSites().forEach(item -> item.setActivated(home)); + if (save) config.save(); } private void setWall(String wall) {