You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
FONGMITV/app/src/main/java/com/fongmi/bear/bean/Vod.java

208 lines
5.7 KiB

package com.fongmi.bear.bean;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.amulyakhare.textdrawable.TextDrawable;
import com.amulyakhare.textdrawable.util.ColorGenerator;
import com.fongmi.bear.utils.Utils;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
public class Vod {
@SerializedName("vod_id")
private String vodId;
@SerializedName("vod_name")
private String vodName;
@SerializedName("type_name")
private String typeName;
@SerializedName("vod_pic")
private String vodPic;
@SerializedName("vod_remarks")
private String vodRemarks;
@SerializedName("vod_year")
private String vodYear;
@SerializedName("vod_area")
private String vodArea;
@SerializedName("vod_director")
private String vodDirector;
@SerializedName("vod_actor")
private String vodActor;
@SerializedName("vod_content")
private String vodContent;
@SerializedName("vod_play_from")
private String vodPlayFrom;
@SerializedName("vod_play_url")
private String vodPlayUrl;
private List<Flag> vodFlags;
public static Vod objectFrom(String str) {
return new Gson().fromJson(str, Vod.class);
}
public String getVodId() {
return TextUtils.isEmpty(vodId) ? "" : vodId;
}
public String getVodName() {
return TextUtils.isEmpty(vodName) ? "" : vodName;
}
public String getTypeName() {
return TextUtils.isEmpty(typeName) ? "" : typeName;
}
public String getVodPic() {
return TextUtils.isEmpty(vodPic) ? "" : vodPic;
}
public String getVodRemarks() {
return TextUtils.isEmpty(vodRemarks) ? "" : vodRemarks;
}
public String getVodYear() {
return TextUtils.isEmpty(vodYear) ? "" : vodYear;
}
public String getVodArea() {
return TextUtils.isEmpty(vodArea) ? "" : vodArea;
}
public String getVodDirector() {
return TextUtils.isEmpty(vodDirector) ? "" : vodDirector;
}
public String getVodActor() {
return TextUtils.isEmpty(vodActor) ? "" : vodActor;
}
public String getVodContent() {
return TextUtils.isEmpty(vodContent) ? "" : vodContent.replaceAll("\\s+", "");
}
public String getVodPlayFrom() {
return TextUtils.isEmpty(vodPlayFrom) ? "" : vodPlayFrom;
}
public String getVodPlayUrl() {
return TextUtils.isEmpty(vodPlayUrl) ? "" : vodPlayUrl;
}
public List<Flag> getVodFlags() {
return vodFlags = vodFlags == null ? new ArrayList<>() : vodFlags;
}
public int getRemarkVisible() {
return getVodRemarks().isEmpty() ? View.GONE : View.VISIBLE;
}
public void loadImg(ImageView view) {
if (TextUtils.isEmpty(getVodPic())) {
String text = getVodName().isEmpty() ? "" : getVodName().substring(0, 1);
view.setImageDrawable(TextDrawable.builder().buildRect(text, ColorGenerator.MATERIAL.getColor(text)));
} else {
Utils.loadImage(getVodPic(), view);
}
}
public void setVodFlags() {
String[] playFlags = getVodPlayFrom().split("\\$\\$\\$");
String[] playUrls = getVodPlayUrl().split("\\$\\$\\$");
for (int i = 0; i < playFlags.length; i++) {
Vod.Flag item = new Vod.Flag(playFlags[i]);
String[] urls = playUrls[i].contains("#") ? playUrls[i].split("#") : new String[]{playUrls[i]};
for (String url : urls) {
if (!url.contains("$")) continue;
String[] split = url.split("\\$");
if (split.length >= 2) item.getEpisodes().add(new Vod.Flag.Episode(split[0], split[1]));
}
getVodFlags().add(item);
}
}
public static class Flag {
@SerializedName("flag")
private final String flag;
@SerializedName("episodes")
private final List<Episode> episodes;
public static Flag objectFrom(String str) {
return new Gson().fromJson(str, Flag.class);
}
public Flag(String flag) {
this.flag = flag;
this.episodes = new ArrayList<>();
}
public String getFlag() {
return flag;
}
public List<Episode> getEpisodes() {
return episodes;
}
public void deactivated() {
for (Episode item : getEpisodes()) item.deactivated();
}
public void setActivated(Episode episode) {
for (Episode item : getEpisodes()) item.setActivated(episode);
}
@NonNull
@Override
public String toString() {
return new Gson().toJson(this);
}
public static class Episode {
@SerializedName("name")
private final String name;
@SerializedName("url")
private final String url;
@SerializedName("activated")
private boolean activated;
public Episode(String name, String url) {
this.name = name;
this.url = url;
}
public String getName() {
return name;
}
public String getUrl() {
return url;
}
public boolean isActivated() {
return activated;
}
public void setActivated(boolean activated) {
this.activated = activated;
}
private void deactivated() {
this.activated = false;
}
private void setActivated(Episode item) {
this.activated = item.equals(this);
}
}
}
}