pull/149/head
FongMi 3 years ago
parent b09d2d9b83
commit 30c73ed5b9
  1. 12
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/bean/Class.java
  3. 8
      app/src/main/java/com/fongmi/android/tv/bean/Filter.java
  4. 6
      app/src/main/java/com/fongmi/android/tv/bean/Result.java

@ -21,6 +21,7 @@ import androidx.viewpager.widget.ViewPager;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Class;
import com.fongmi.android.tv.bean.Filter;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.databinding.ActivityVodBinding;
@ -29,10 +30,13 @@ import com.fongmi.android.tv.ui.fragment.VodFragment;
import com.fongmi.android.tv.ui.presenter.TypePresenter;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
import com.github.catvod.utils.Prefers;
import com.github.catvod.utils.Trans;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class VodActivity extends BaseActivity implements TypePresenter.OnClickListener {
@ -50,6 +54,7 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi
Intent intent = new Intent(activity, VodActivity.class);
intent.putExtra("key", key);
intent.putExtra("result", result);
for (Map.Entry<String, List<Filter>> entry : result.getFilters().entrySet()) Prefers.put(entry.getKey(), new Gson().toJson(entry.getValue()));
activity.startActivity(intent);
}
@ -61,6 +66,10 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi
return getIntent().getParcelableExtra("result");
}
private List<Filter> getFilter(String typeId) {
return Filter.arrayFrom(Prefers.getString(typeId));
}
private Site getSite() {
return ApiConfig.get().getSite(getKey());
}
@ -108,8 +117,7 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi
private void setTypes() {
Result result = getResult();
result.setTypes(getTypes(result));
for (Class item : result.getTypes()) if (result.getFilters().containsKey(item.getTypeId())) item.setFilter(false);
for (Class item : result.getTypes()) if (result.getFilters().containsKey(item.getTypeId())) item.setFilters(result.getFilters().get(item.getTypeId()));
for (Class item : result.getTypes()) item.setFilters(getFilter(item.getTypeId()));
mAdapter.setItems(result.getTypes(), null);
}

@ -68,7 +68,9 @@ public class Class implements Parcelable {
}
public void setFilters(List<Filter> filters) {
if (filters == null || filters.isEmpty()) return;
this.filters = filters;
this.setFilter(false);
}
public void setFilter(Boolean filter) {

@ -10,7 +10,9 @@ 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,6 +32,12 @@ public class Filter implements Parcelable {
return new Gson().fromJson(element, Filter.class);
}
public static List<Filter> arrayFrom(String result) {
Type listType = new TypeToken<List<Filter>>() {}.getType();
List<Filter> items = new Gson().fromJson(result, listType);
return items == null ? Collections.emptyList() : items;
}
public Filter() {
}

@ -6,13 +6,11 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.gson.FilterAdapter;
import com.fongmi.android.tv.gson.MsgAdapter;
import com.fongmi.android.tv.gson.UrlAdapter;
import com.github.catvod.utils.Json;
import com.github.catvod.utils.Trans;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.annotations.JsonAdapter;
@ -24,7 +22,6 @@ import org.simpleframework.xml.Path;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.core.Persister;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@ -297,15 +294,12 @@ public class Result implements Parcelable {
public void writeToParcel(Parcel dest, int flags) {
dest.writeList(this.types);
dest.writeTypedList(this.list);
dest.writeString(App.gson().toJson(this.filters));
}
protected Result(Parcel in) {
this.types = new ArrayList<>();
in.readList(this.types, Class.class.getClassLoader());
this.list = in.createTypedArrayList(Vod.CREATOR);
Type listType = new TypeToken<LinkedHashMap<String, List<Filter>>>() {}.getType();
this.filters = App.gson().fromJson(in.readString(), listType);
}
public static final Creator<Result> CREATOR = new Creator<>() {

Loading…
Cancel
Save