Fix live crash

pull/210/head
FongMi 2 years ago
parent 8cab6e45fb
commit b00a8141eb
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 10
      app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/bean/Live.java
  4. 2
      app/src/mobile/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

@ -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<JsonElement> 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<Group> 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) {

@ -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();

@ -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

Loading…
Cancel
Save