From 3e0bccd7bc162215df9d75e99afb652aa53e3123 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 21 Jun 2024 00:19:50 +0800 Subject: [PATCH] Fix bug --- .../android/tv/ui/activity/LiveActivity.java | 2 +- .../java/com/fongmi/android/tv/api/LiveParser.java | 4 ---- .../fongmi/android/tv/api/config/LiveConfig.java | 14 ++++++++++---- .../com/fongmi/android/tv/model/LiveViewModel.java | 2 ++ .../android/tv/ui/activity/LiveActivity.java | 2 +- 5 files changed, 14 insertions(+), 10 deletions(-) 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 a216ef199..2d77bcea1 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 @@ -527,7 +527,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onItemClick(Channel item) { - if (item.getData().getList().size() > 0 && item.isSelected() && mChannel.equals(item) && mChannel.getGroup().equals(mGroup)) { + if (item.getData().getList().size() > 0 && item.isSelected() && mChannel != null && mChannel.equals(item) && mChannel.getGroup().equals(mGroup)) { showEpg(item); } else { mGroup.setPosition(mBinding.channel.getSelectedPosition()); 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 3a0fdc3c0..a8b5ba5ab 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 @@ -4,8 +4,6 @@ import android.util.Base64; import androidx.media3.common.MimeTypes; -import com.fongmi.android.tv.R; -import com.fongmi.android.tv.api.config.LiveConfig; import com.fongmi.android.tv.bean.Catchup; import com.fongmi.android.tv.bean.Channel; import com.fongmi.android.tv.bean.ClearKey; @@ -44,8 +42,6 @@ public class LiveParser { if (live.getType() == 0) text(live, getText(live)); if (live.getType() == 1) json(live, getText(live)); if (live.getType() == 2) proxy(live, getText(live)); - live.getGroups().add(0, Group.create(R.string.keep)); - LiveConfig.get().setKeep(live.getGroups()); } public static void text(Live live, String text) { 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 48a7f4f1e..890921a1d 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 @@ -164,12 +164,13 @@ public class LiveConfig { parseConfig(object, null); } - public void setKeep(Channel channel) { - if (home == null || channel.getGroup().isHidden() || channel.getUrls().isEmpty()) return; - Setting.putKeep(home.getName() + AppDatabase.SYMBOL + channel.getGroup().getName() + AppDatabase.SYMBOL + channel.getName() + AppDatabase.SYMBOL + channel.getCurrent()); + public void setKeep(Live live) { + if (live.getGroups().isEmpty() || live.getGroups().get(0).isKeep()) return; + live.getGroups().add(0, Group.create(R.string.keep)); + setKeep(live.getGroups()); } - public void setKeep(List items) { + private void setKeep(List items) { List key = new ArrayList<>(); for (Keep keep : Keep.getLive()) key.add(keep.getKey()); for (Group group : items) { @@ -182,6 +183,11 @@ public class LiveConfig { } } + public void setKeep(Channel channel) { + if (home == null || channel.getGroup().isHidden() || channel.getUrls().isEmpty()) return; + Setting.putKeep(home.getName() + AppDatabase.SYMBOL + channel.getGroup().getName() + AppDatabase.SYMBOL + channel.getName() + AppDatabase.SYMBOL + channel.getCurrent()); + } + public int[] find(List items) { String[] splits = Setting.getKeep().split(AppDatabase.SYMBOL); if (splits.length < 4 || !getHome().getName().equals(splits[0])) return new int[]{1, 0}; diff --git a/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java b/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java index 7eac5e29c..f0ed4bf3b 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java +++ b/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java @@ -6,6 +6,7 @@ import androidx.lifecycle.ViewModel; import com.fongmi.android.tv.Constant; import com.fongmi.android.tv.api.EpgParser; import com.fongmi.android.tv.api.LiveParser; +import com.fongmi.android.tv.api.config.LiveConfig; import com.fongmi.android.tv.api.config.VodConfig; import com.fongmi.android.tv.bean.Channel; import com.fongmi.android.tv.bean.Epg; @@ -97,6 +98,7 @@ public class LiveViewModel extends ViewModel { private void verify(Live item) { Iterator iterator = item.getGroups().iterator(); while (iterator.hasNext()) if (iterator.next().isEmpty()) iterator.remove(); + LiveConfig.get().setKeep(item); } private void execute(int type, Callable callable) { 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 367d12e95..f0501f9bd 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 @@ -569,7 +569,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List @Override public void onItemClick(Channel item) { - if (item.getData().getList().size() > 0 && item.isSelected() && mChannel.equals(item) && mChannel.getGroup().equals(mGroup)) { + if (item.getData().getList().size() > 0 && item.isSelected() && mChannel != null && mChannel.equals(item) && mChannel.getGroup().equals(mGroup)) { showEpg(item); } else { mGroup.setPosition(mChannelAdapter.setSelected(item.group(mGroup)));