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 c3faacaf8..a0b494c3c 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 @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.Future; import java.util.function.Function; import java.util.stream.Collectors; @@ -214,16 +215,11 @@ public class LiveConfig { } public void setKeep(List items) { - List key = new ArrayList<>(); - for (Keep keep : Keep.getLive()) key.add(keep.getKey()); - for (Group group : items) { - if (group.isKeep()) continue; - for (Channel channel : group.getChannel()) { - if (key.contains(channel.getName())) { - items.get(0).add(channel); - } - } - } + Set key = Keep.getLive().stream().map(Keep::getKey).collect(Collectors.toSet()); + items.stream().filter(group -> !group.isKeep()) + .flatMap(group -> group.getChannel().stream()) + .filter(channel -> key.contains(channel.getName())) + .forEach(channel -> items.get(0).add(channel)); } public int[] find(List items) {