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 890921a1d..48a7f4f1e 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,13 +164,12 @@ public class LiveConfig { parseConfig(object, null); } - 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(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()); } - private void setKeep(List items) { + public void setKeep(List items) { List key = new ArrayList<>(); for (Keep keep : Keep.getLive()) key.add(keep.getKey()); for (Group group : items) { @@ -183,11 +182,6 @@ 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 f0ed4bf3b..6e8b0a803 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 @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import com.fongmi.android.tv.Constant; +import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.EpgParser; import com.fongmi.android.tv.api.LiveParser; import com.fongmi.android.tv.api.config.LiveConfig; @@ -98,7 +99,9 @@ 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); + if (item.getGroups().isEmpty() || item.getGroups().get(0).isKeep()) return; + item.getGroups().add(0, Group.create(R.string.keep)); + LiveConfig.get().setKeep(item.getGroups()); } private void execute(int type, Callable callable) {