diff --git a/app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java b/app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java index 57c9c8c8..3f0f8a60 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java +++ b/app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java @@ -8,7 +8,9 @@ import com.orhanobut.hawk.Hawk; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.Map; import java.util.List; +import java.util.Iterator; public class SearchHelper { @@ -22,7 +24,26 @@ public class SearchHelper { } catch (Exception e) { return null; } - if (mCheckSources == null || mCheckSources.isEmpty()) mCheckSources = getSources(); + if (mCheckSources == null || mCheckSources.isEmpty()) { + mCheckSources = getSources(); + } else { + HashMap newSources = getSources(); + for (Map.Entry entry : newSources.entrySet()) { + String newKey = entry.getKey(); + String newValue = entry.getValue(); + if (!mCheckSources.containsKey(newKey)) { + mCheckSources.put(newKey, newValue); + } + } + Iterator> iterator = mCheckSources.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry oldEntry = iterator.next(); + String oldKey = oldEntry.getKey(); + if (!newSources.containsKey(oldKey)) { + iterator.remove(); + } + } + } return mCheckSources; }