流利说-英语 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();
        }
    }
}