// Path: app/src/main/java/io/github/scarletsky/bangumi/api/models/Subject.java
// public class Subject {
//     private int id;
//     private String url;
//     private int type;
//     private String name;
//     private String name_cn;
//     private String summary;
//     private int eps;
//     private String air_date;
//     private int air_weekday;
//     private Image images;
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getUrl() {
//         return url;
//     }
// 
//     public int getType() {
//         return type;
//     }
// 
//     public String getTypeDetail() {
//         String type = "";
// 
//         switch (this.type) {
//             case 1:
//                 type = "漫画/小说";
//                 break;
//             case 2:
//                 type = "动画/二次元番";
//                 break;
//             case 3:
//                 type = "音乐";
//                 break;
//             case 4:
//                 type = "游戏";
//                 break;
//             case 6:
//                 type = "三次元番";
//                 break;
//         }
// 
//         return type;
//     }
// 
//     public void setType(int type) {
//         this.type = type;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getNameCn() {
//         return name_cn;
//     }
// 
//     public String getSummary() {
//         return summary.equals("") ? "无" : summary;
//     }
// 
//     public void setSummary(String summary) {
//         this.summary = summary;
//     }
// 
//     public int getEps() {
//         return eps;
//     }
// 
//     public void setEps(int eps) {
//         this.eps = eps;
//     }
// 
//     public String getAirDate() {
//         return air_date;
//     }
// 
//     public String getAirWeekday() {
//         String weekday = "";
//         switch (this.air_weekday) {
//             case 1:
//                 weekday = "星期一";
//                 break;
//             case 2:
//                 weekday = "星期二";
//                 break;
//             case 3:
//                 weekday = "星期三";
//                 break;
//             case 4:
//                 weekday = "星期四";
//                 break;
//             case 5:
//                 weekday = "星期五";
//                 break;
//             case 6:
//                 weekday = "星期六";
//                 break;
//             case 7:
//                 weekday = "星期日";
//                 break;
//         }
// 
//         return weekday;
//     }
// 
//     public Image getImages() {
//         return images;
//     }
// 
// }
// 
// Path: app/src/main/java/io/github/scarletsky/bangumi/api/models/UserCollection.java
// public class UserCollection {
//     private String name;
//     private int ep_status;
//     private long lasttouch;
//     private Subject subject;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public int getEpStatus() {
//         return ep_status;
//     }
// 
//     public long getLasttouch() {
//         return lasttouch;
//     }
// 
//     public Subject getSubject() {
//         return subject;
//     }
// }
// 
// Path: app/src/main/java/io/github/scarletsky/bangumi/events/GetSubjectEvent.java
// public class GetSubjectEvent {
// 
//     private Subject subject;
// 
//     public GetSubjectEvent(Subject subject) {
//         this.subject = subject;
//     }
// 
//     public Subject getSubject() {
//         return subject;
//     }
// }
// 
// Path: app/src/main/java/io/github/scarletsky/bangumi/utils/BusProvider.java
// public class BusProvider {
//     private static Bus mBus;
// 
//     public static Bus getInstance() {
//         if (mBus == null) {
//             mBus = new Bus();
//         }
// 
//         return mBus;
//     }
// }


import android.content.Context;
import android.graphics.PorterDuff;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import java.util.List;
import io.github.scarletsky.bangumi.R;
import io.github.scarletsky.bangumi.api.models.Subject;
import io.github.scarletsky.bangumi.api.models.UserCollection;
import io.github.scarletsky.bangumi.events.GetSubjectEvent;
import io.github.scarletsky.bangumi.utils.BusProvider;
        return viewType;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(ctx).inflate(R.layout.adapter_card, parent, false);
        return viewType == VIEW_TYPE_WITH_PROGRESS ? new ViewHolderWithProgress(v) : new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        ViewHolder h = (ViewHolder) holder;
        final Subject mSubject;

        if (data.get(position) instanceof Subject) {

            mSubject = (Subject) data.get(position);

        } else if (data.get(position) instanceof UserCollection) {

            ViewHolderWithProgress hp = (ViewHolderWithProgress) holder;
            UserCollection mUserCollection = (UserCollection) data.get(position);
            mSubject = mUserCollection.getSubject();

            int currentProgress = mUserCollection.getEpStatus();
            String maxProgress = mSubject.getEps() == 0 ? "??" : String.valueOf(mSubject.getEps());

            hp.mProgressLabel.setText(currentProgress + "/" + maxProgress);
            hp.mProgressBar.setMax(mSubject.getEps());
            hp.mProgressBar.setProgress(mUserCollection.getEpStatus());
// Path: app/src/main/java/io/github/scarletsky/bangumi/api/models/Subject.java
// public class Subject {
//     private int id;
//     private String url;
//     private int type;
//     private String name;
//     private String name_cn;
//     private String summary;
//     private int eps;
//     private String air_date;
//     private int air_weekday;
//     private Image images;
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getUrl() {
//         return url;
//     }
// 
//     public int getType() {
//         return type;
//     }
// 
//     public String getTypeDetail() {
//         String type = "";
// 
//         switch (this.type) {
//             case 1:
//                 type = "漫画/小说";
//                 break;
//             case 2:
//                 type = "动画/二次元番";
//                 break;
//             case 3:
//                 type = "音乐";
//                 break;
//             case 4:
//                 type = "游戏";
//                 break;
//             case 6:
//                 type = "三次元番";
//                 break;
//         }
// 
//         return type;
//     }
// 
//     public void setType(int type) {
//         this.type = type;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getNameCn() {
//         return name_cn;
//     }
// 
//     public String getSummary() {
//         return summary.equals("") ? "无" : summary;
//     }
// 
//     public void setSummary(String summary) {
//         this.summary = summary;
//     }
// 
//     public int getEps() {
//         return eps;
//     }
// 
//     public void setEps(int eps) {
//         this.eps = eps;
//     }
// 
//     public String getAirDate() {
//         return air_date;
//     }
// 
//     public String getAirWeekday() {
//         String weekday = "";
//         switch (this.air_weekday) {
//             case 1:
//                 weekday = "星期一";
//                 break;
//             case 2:
//                 weekday = "星期二";
//                 break;
//             case 3:
//                 weekday = "星期三";
//                 break;
//             case 4:
//                 weekday = "星期四";
//                 break;
//             case 5:
//                 weekday = "星期五";
//                 break;
//             case 6:
//                 weekday = "星期六";
//                 break;
//             case 7:
//                 weekday = "星期日";
//                 break;
//         }
// 
//         return weekday;
//     }
// 
//     public Image getImages() {
//         return images;
//     }
// 
// }
// 
// Path: app/src/main/java/io/github/scarletsky/bangumi/api/models/UserCollection.java
// public class UserCollection {
//     private String name;
//     private int ep_status;
//     private long lasttouch;
//     private Subject subject;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public int getEpStatus() {
//         return ep_status;
//     }
// 
//     public long getLasttouch() {
//         return lasttouch;
//     }
// 
//     public Subject getSubject() {
//         return subject;
//     }
// }
// 
// Path: app/src/main/java/io/github/scarletsky/bangumi/events/GetSubjectEvent.java
// public class GetSubjectEvent {
// 
//     private Subject subject;
// 
//     public GetSubjectEvent(Subject subject) {
//         this.subject = subject;
//     }
// 
//     public Subject getSubject() {
//         return subject;
//     }
// }
// 
// Path: app/src/main/java/io/github/scarletsky/bangumi/utils/BusProvider.java
// public class BusProvider {
//     private static Bus mBus;
// 
//     public static Bus getInstance() {
//         if (mBus == null) {
//             mBus = new Bus();
//         }
// 
//         return mBus;
//     }
// }


// Path: app/src/main/java/io/github/scarletsky/bangumi/adapters/CardRecyclerAdapter.java
import android.content.Context;
import android.graphics.PorterDuff;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import java.util.List;
import io.github.scarletsky.bangumi.R;
import io.github.scarletsky.bangumi.api.models.Subject;
import io.github.scarletsky.bangumi.api.models.UserCollection;
import io.github.scarletsky.bangumi.events.GetSubjectEvent;
import io.github.scarletsky.bangumi.utils.BusProvider;

        return viewType;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(ctx).inflate(R.layout.adapter_card, parent, false);
        return viewType == VIEW_TYPE_WITH_PROGRESS ? new ViewHolderWithProgress(v) : new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        ViewHolder h = (ViewHolder) holder;
        final Subject mSubject;

        if (data.get(position) instanceof Subject) {

            mSubject = (Subject) data.get(position);

        } else if (data.get(position) instanceof UserCollection) {

            ViewHolderWithProgress hp = (ViewHolderWithProgress) holder;
            UserCollection mUserCollection = (UserCollection) data.get(position);
            mSubject = mUserCollection.getSubject();

            int currentProgress = mUserCollection.getEpStatus();
            String maxProgress = mSubject.getEps() == 0 ? "??" : String.valueOf(mSubject.getEps());

            hp.mProgressLabel.setText(currentProgress + "/" + maxProgress);
            hp.mProgressBar.setMax(mSubject.getEps());
            hp.mProgressBar.setProgress(mUserCollection.getEpStatus());
            hp.mProgressBar.getProgressDrawable().setColorFilter(ctx.getResources().getColor(R.color.primary), PorterDuff.Mode.SRC_IN);