流利说-英语 v8.47.26版本的 MD5 值为:0079dce5ff96e6cdbc95c261b3f51387
以下内容为反编译后的 NCCPackage.java 源代码,内容仅作参考
package com.liulishuo.profile.api;
import android.os.Parcel;
import android.os.Parcelable;
import java.io.Serializable;
public class NCCPackage implements Serializable {
public static final int SUB_STATUS_FREED = 3;
public static final int SUB_STATUS_SUBSCRIBED = 1;
public static final int SUB_STATUS_UNSUNSCRIBE = 2;
public static final String TYPE_PREMIUM = "premium";
public SubscriptionInfo alix;
public boolean bought;
public SubscriptionInfo darwin;
public SubscriptionInfo emi;
public boolean expired;
public long expiresAt;
public FirstBoughtInfo firstBoughtInfo;
public boolean hasBasic;
public SubscriptionInfo hifi;
public SubscriptionInfo homework;
public SubscriptionInfo libra;
public SubscriptionInfo liveClass;
public String name;
public SubscriptionInfo premiumIcon;
public int remainDays;
public SubscriptionInfo rico;
public SubscriptionInfo ricoLiveClass;
public Switches switches;
public Trial trial;
@Deprecated
public String type;
public int usedDays;
public boolean isLock() {
return !this.bought && this.expired;
}
public static class Trial implements Serializable {
public String addTrialApi;
public String background;
public boolean canTrial;
public String desc;
public String note;
public String title;
Trial(String str, String str2, String str3, String str4, String str5) {
this.background = str;
this.title = str2;
this.desc = str3;
this.addTrialApi = str4;
this.note = str5;
}
public static Trial createForAdmin() {
return new Trial("https://cdn.llscdn.com/ssk-prod/bffb324e-8920-4238-9266-5f69d14d0ec6.png", "免费领取 299 元课程", "恭喜你获得价值 299 元课程的三天免费体验课,赶紧领取开始学习!", "ncc/package/trial?courseType=1", "<a href=\"https://cchybrid.liulishuo.com/feedback/posts/1277777\">注意:如果您已经购买过达尔文英语,请检查登录帐号是否一致。查看详情</a>");
}
}
public static class SubscriptionInfo implements Parcelable, Serializable {
public static final Parcelable.Creator<SubscriptionInfo> CREATOR = new Parcelable.Creator<SubscriptionInfo>() {
@Override
public SubscriptionInfo createFromParcel(Parcel parcel) {
return new SubscriptionInfo(parcel);
}
@Override
public SubscriptionInfo[] newArray(int i) {
return new SubscriptionInfo[i];
}
};
public int amount;
public boolean bought;
public long effectedAtSec;
public long expiredAtSec;
public int subscriptionStatus;
@Override
public int describeContents() {
return 0;
}
public boolean isSubscribed() {
return this.subscriptionStatus == 1;
}
public boolean isUnSubscribed() {
return this.subscriptionStatus == 2;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeInt(this.subscriptionStatus);
parcel.writeLong(this.effectedAtSec);
parcel.writeLong(this.expiredAtSec);
parcel.writeByte(this.bought ? (byte) 1 : (byte) 0);
parcel.writeInt(this.amount);
}
public SubscriptionInfo() {
}
protected SubscriptionInfo(Parcel parcel) {
this.subscriptionStatus = parcel.readInt();
this.effectedAtSec = parcel.readLong();
this.expiredAtSec = parcel.readLong();
this.bought = parcel.readByte() != 0;
this.amount = parcel.readInt();
}
}
public static class FirstBoughtInfo implements Parcelable, Serializable {
public static final Parcelable.Creator<FirstBoughtInfo> CREATOR = new Parcelable.Creator<FirstBoughtInfo>() {
@Override
public FirstBoughtInfo createFromParcel(Parcel parcel) {
return new FirstBoughtInfo(parcel);
}
@Override
public FirstBoughtInfo[] newArray(int i) {
return new FirstBoughtInfo[i];
}
};
public long durationInSec;
public long effectedAtSec;
public long expiredAtSec;
public boolean isFirstBought;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeLong(this.durationInSec);
parcel.writeLong(this.effectedAtSec);
parcel.writeLong(this.expiredAtSec);
parcel.writeByte(this.isFirstBought ? (byte) 1 : (byte) 0);
}
protected FirstBoughtInfo(Parcel parcel) {
this.durationInSec = parcel.readLong();
this.effectedAtSec = parcel.readLong();
this.expiredAtSec = parcel.readLong();
this.isFirstBought = parcel.readByte() != 0;
}
}
public static class Switches implements Serializable {
public boolean alixTrial;
public Switches() {
}
Switches(Boolean bool) {
this.alixTrial = bool.booleanValue();
}
}
}