diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 6d2cdf891..818ef2ad7 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -125,7 +125,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private int getTimeout() { - return getHome() != null ? getHome().getTimeout() : Constant.TIMEOUT_PLAY; + return getHome().isEmpty() ? Constant.TIMEOUT_PLAY : getHome().getTimeout(); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java index e6e2106ba..1a0ea92be 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java @@ -59,7 +59,7 @@ public class LiveConfig { } public static boolean isEmpty() { - return get().getHome() == null; + return get().getHome().isEmpty(); } public static boolean hasUrl() { @@ -141,8 +141,8 @@ public class LiveConfig { } private void parseConfig(JsonObject object, Callback callback) { - if (!object.has("lives")) return; - for (JsonElement element : Json.safeListElement(object, "lives")) add(Live.objectFrom(element).check()); + List lives = Json.safeListElement(object, "lives"); + if (lives.size() > 0) for (JsonElement element : lives) add(Live.objectFrom(element).check()); for (Live live : getLives()) if (live.getName().equals(config.getHome())) setHome(live, true); if (home == null) setHome(getLives().isEmpty() ? new Live() : getLives().get(0), true); if (callback != null) App.post(callback::success); @@ -176,7 +176,7 @@ public class LiveConfig { private int[] getKeep(List items) { String[] splits = Setting.getKeep().split(AppDatabase.SYMBOL); - if (!home.getName().equals(splits[0])) return new int[]{1, 0}; + if (splits.length < 4 || !home.getName().equals(splits[0])) return new int[]{1, 0}; for (int i = 0; i < items.size(); i++) { Group group = items.get(i); if (group.getName().equals(splits[1])) { @@ -219,7 +219,7 @@ public class LiveConfig { } public Live getHome() { - return home; + return home == null ? new Live() : home; } public void setHome(Live home) { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Live.java b/app/src/main/java/com/fongmi/android/tv/bean/Live.java index c5844aae8..286a7f3b5 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Live.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Live.java @@ -187,6 +187,10 @@ public class Live { this.width = width; } + public boolean isEmpty() { + return getName().isEmpty(); + } + public Live check() { boolean proxy = getChannels().size() > 0 && getChannels().get(0).getUrls().size() > 0 && getChannels().get(0).getUrls().get(0).startsWith("proxy"); if (proxy) setProxy(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 96148c49b..f72e32b9d 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -135,7 +135,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List } private int getTimeout() { - return getHome() != null ? getHome().getTimeout() : Constant.TIMEOUT_PLAY; + return getHome().isEmpty() ? Constant.TIMEOUT_PLAY : getHome().getTimeout(); } @Override