From 3909f6860e8de69bc5757c91e445345e50e1feb5 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 5 Jan 2024 09:25:09 +0800 Subject: [PATCH] Fix bug --- .../java/com/fongmi/android/tv/api/LiveParser.java | 14 ++++++-------- .../java/com/fongmi/android/tv/bean/Group.java | 4 ++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java index 32d334075..da63228c3 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java @@ -2,7 +2,6 @@ package com.fongmi.android.tv.api; import android.util.Base64; -import com.fongmi.android.tv.R; import com.fongmi.android.tv.bean.Channel; import com.fongmi.android.tv.bean.ClearKey; import com.fongmi.android.tv.bean.Drm; @@ -84,13 +83,13 @@ public class LiveParser { private static void txt(Live live, String text) { Setting setting = Setting.create(); for (String line : text.split("\n")) { - setting.check(line); - String[] split = line.split(","); - if (split.length < 2) continue; if (Thread.interrupted()) break; + String[] split = line.split(","); + if (setting.find(line)) setting.check(line); + if (line.contains("#genre#")) setting.clear(); if (line.contains("#genre#")) live.getGroups().add(Group.create(split[0], live.isPass())); - if (live.getGroups().isEmpty()) live.getGroups().add(Group.create(R.string.live_group)); - if (split[1].contains("://")) { + if (split.length > 1 && live.getGroups().isEmpty()) live.getGroups().add(Group.create()); + if (split.length > 1 && split[1].contains("://")) { Group group = live.getGroups().get(live.getGroups().size() - 1); Channel channel = group.find(Channel.create(split[0])); channel.addUrls(split[1].split("#")); @@ -140,8 +139,7 @@ public class LiveParser { } public void check(String line) { - if (line.contains("#genre#")) clear(); - else if (line.startsWith("ua")) ua(line); + if (line.startsWith("ua")) ua(line); else if (line.startsWith("parse")) parse(line); else if (line.startsWith("click")) click(line); else if (line.startsWith("player")) player(line); diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Group.java b/app/src/main/java/com/fongmi/android/tv/bean/Group.java index 53168682d..10463c976 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Group.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Group.java @@ -33,6 +33,10 @@ public class Group { return items == null ? Collections.emptyList() : items; } + public static Group create() { + return create(""); + } + public static Group create(@StringRes int resId) { return new Group(ResUtil.getString(resId)); }