diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Filter.java b/app/src/main/java/com/fongmi/android/tv/bean/Filter.java index d25af34d1..f4b9167c0 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Filter.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Filter.java @@ -5,12 +5,12 @@ import android.os.Parcelable; import android.text.TextUtils; import com.github.catvod.utils.Trans; +import com.google.common.base.Predicates; +import com.google.common.collect.Iterables; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -30,12 +30,6 @@ public class Filter implements Parcelable { return new Gson().fromJson(element, Filter.class); } - public static List arrayFrom(String str) { - Type listType = new TypeToken>() {}.getType(); - List items = new Gson().fromJson(str, listType); - return items == null ? Collections.emptyList() : items; - } - public Filter() { } @@ -61,6 +55,11 @@ public class Filter implements Parcelable { return v; } + public Filter check() { + Iterables.removeIf(getValue(), Predicates.isNull()); + return this; + } + public Filter trans() { if (Trans.pass()) return this; for (Value value : getValue()) value.trans(); diff --git a/app/src/main/java/com/fongmi/android/tv/gson/FilterAdapter.java b/app/src/main/java/com/fongmi/android/tv/gson/FilterAdapter.java index 2fcd77872..70427cfbc 100644 --- a/app/src/main/java/com/fongmi/android/tv/gson/FilterAdapter.java +++ b/app/src/main/java/com/fongmi/android/tv/gson/FilterAdapter.java @@ -22,8 +22,8 @@ public class FilterAdapter implements JsonDeserializer items = new ArrayList<>(); JsonElement element = filters.get(key); - if (element.isJsonObject()) items.add(Filter.objectFrom(element).trans()); - else for (JsonElement item : element.getAsJsonArray()) items.add(Filter.objectFrom(item).trans()); + if (element.isJsonObject()) items.add(Filter.objectFrom(element).check().trans()); + else for (JsonElement item : element.getAsJsonArray()) items.add(Filter.objectFrom(item).check().trans()); filterMap.put(key, items); } return filterMap;