diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Cate.java b/app/src/main/java/com/fongmi/android/tv/bean/Cate.java index c468b5dec..56fb48fc9 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Cate.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Cate.java @@ -8,22 +8,22 @@ import com.google.gson.annotations.SerializedName; public class Cate implements Parcelable { @SerializedName("land") - private int land; + private Integer land; @SerializedName("circle") - private int circle; + private Integer circle; @SerializedName("ratio") - private float ratio; + private Float ratio; public int getLand() { - return land; + return land == null ? 0 : land; } public int getCircle() { - return circle; + return circle == null ? 0 : circle; } public float getRatio() { - return ratio; + return ratio == null ? 0 : ratio; } public Style getStyle() { @@ -37,15 +37,15 @@ public class Cate implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(this.land); - dest.writeInt(this.circle); - dest.writeFloat(this.ratio); + dest.writeValue(this.land); + dest.writeValue(this.circle); + dest.writeValue(this.ratio); } protected Cate(Parcel in) { - this.land = in.readInt(); - this.circle = in.readInt(); - this.ratio = in.readFloat(); + this.land = (Integer) in.readValue(Integer.class.getClassLoader()); + this.circle = (Integer) in.readValue(Integer.class.getClassLoader()); + this.ratio = (Float) in.readValue(Float.class.getClassLoader()); } public static final Creator CREATOR = new Creator<>() { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Class.java b/app/src/main/java/com/fongmi/android/tv/bean/Class.java index aed0545d9..e4b03a461 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Class.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Class.java @@ -36,13 +36,13 @@ public class Class implements Parcelable, Diffable { private List filters; @SerializedName("land") - private int land; + private Integer land; @SerializedName("circle") - private int circle; + private Integer circle; @SerializedName("ratio") - private float ratio; + private Float ratio; private boolean filter; private boolean activated; @@ -87,15 +87,15 @@ public class Class implements Parcelable, Diffable { } public int getLand() { - return land; + return land == null ? 0 : land; } public int getCircle() { - return circle; + return circle == null ? 0 : circle; } public float getRatio() { - return ratio; + return ratio == null ? 0 : ratio; } public void setFilter(boolean filter) { @@ -154,9 +154,9 @@ public class Class implements Parcelable, Diffable { dest.writeString(this.typeName); dest.writeString(this.typeFlag); dest.writeByte(this.filter ? (byte) 1 : (byte) 0); - dest.writeInt(this.land); - dest.writeInt(this.circle); - dest.writeFloat(this.ratio); + dest.writeValue(this.land); + dest.writeValue(this.circle); + dest.writeValue(this.ratio); dest.writeByte(this.activated ? (byte) 1 : (byte) 0); } @@ -165,9 +165,9 @@ public class Class implements Parcelable, Diffable { this.typeName = in.readString(); this.typeFlag = in.readString(); this.filter = in.readByte() != 0; - this.land = in.readInt(); - this.circle = in.readInt(); - this.ratio = in.readFloat(); + this.land = (Integer) in.readValue(Integer.class.getClassLoader()); + this.circle = (Integer) in.readValue(Integer.class.getClassLoader()); + this.ratio = (Float) in.readValue(Float.class.getClassLoader()); this.activated = in.readByte() != 0; } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java index 6f37654e4..89328f826 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java @@ -6,6 +6,7 @@ import android.text.Html; import android.text.TextUtils; import android.view.View; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.fongmi.android.tv.App; @@ -90,13 +91,13 @@ public class Vod implements Parcelable, Diffable { private Style style; @SerializedName("land") - private int land; + private Integer land; @SerializedName("circle") - private int circle; + private Integer circle; @SerializedName("ratio") - private float ratio; + private Float ratio; @Path("dl") @ElementList(entry = "dd", required = false, inline = true) @@ -104,6 +105,10 @@ public class Vod implements Parcelable, Diffable { private Site site; + public static Vod objectFrom(String str) { + return App.gson().fromJson(str, Vod.class); + } + public static List arrayFrom(String str) { Type listType = new TypeToken>() {}.getType(); List items = App.gson().fromJson(str, listType); @@ -206,15 +211,15 @@ public class Vod implements Parcelable, Diffable { } public int getLand() { - return land; + return land == null ? 0 : land; } public int getCircle() { - return circle; + return circle == null ? 0 : circle; } public float getRatio() { - return ratio; + return ratio == null ? 0 : ratio; } public List getFlags() { @@ -299,6 +304,12 @@ public class Vod implements Parcelable, Diffable { return this; } + @NonNull + @Override + public String toString() { + return App.gson().toJson(this); + } + @Override public boolean equals(@Nullable Object obj) { if (this == obj) return true; @@ -332,9 +343,9 @@ public class Vod implements Parcelable, Diffable { dest.writeString(this.vodPlayUrl); dest.writeString(this.vodTag); dest.writeString(this.action); - dest.writeInt(this.land); - dest.writeInt(this.circle); - dest.writeFloat(this.ratio); + dest.writeValue(this.land); + dest.writeValue(this.circle); + dest.writeValue(this.ratio); dest.writeParcelable(this.cate, flags); dest.writeParcelable(this.style, flags); dest.writeTypedList(this.vodFlags); @@ -356,9 +367,9 @@ public class Vod implements Parcelable, Diffable { this.vodPlayUrl = in.readString(); this.vodTag = in.readString(); this.action = in.readString(); - this.land = in.readInt(); - this.circle = in.readInt(); - this.ratio = in.readFloat(); + this.land = (Integer) in.readValue(Integer.class.getClassLoader()); + this.circle = (Integer) in.readValue(Integer.class.getClassLoader()); + this.ratio = (Float) in.readValue(Float.class.getClassLoader()); this.cate = in.readParcelable(Cate.class.getClassLoader()); this.style = in.readParcelable(Style.class.getClassLoader()); this.vodFlags = in.createTypedArrayList(Flag.CREATOR);