RankingAdapter.java 3.39 KB
package com.dinhcv.lifelogpedometer.adapter;

import android.app.Activity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.dinhcv.lifelogpedometer.R;
import com.dinhcv.lifelogpedometer.model.structure.pojo.RankingInfo;
import com.dinhcv.lifelogpedometer.network.ApiUtils;
import com.dinhcv.lifelogpedometer.utils.Utils;
import com.squareup.picasso.Picasso;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

/**
 * Created by Admin on 8/17/2017.
 */

public class RankingAdapter extends RecyclerView.Adapter<RankingAdapter.MyViewHolder> {
    private List<RankingInfo> mRankingInfoList = new ArrayList<>();
    private Activity mActivity;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        @BindView(R.id.tv_position)
        TextView mTvPosition;
        @BindView(R.id.imv_user_icon)
        ImageView mImvUserIcon;
        @BindView(R.id.tv_time)
        TextView mTvTime;
        @BindView(R.id.tv_steps)
        TextView mTvSteps;
        @BindView(R.id.tv_distance)
        TextView mTvDistance;
        @BindView(R.id.imv_position)
        ImageView mImvPosition;

        public MyViewHolder(View view) {
            super(view);
            ButterKnife.bind(this, view);
        }
    }

    public RankingAdapter(Activity activity, List<RankingInfo> list) {
        mActivity = activity;
        mRankingInfoList.clear();
        mRankingInfoList.addAll(list);
    }

    public void updateData(List<RankingInfo> list) {
        mRankingInfoList.clear();
        mRankingInfoList.addAll(list);
    }

    public void clearData() {
        mRankingInfoList.clear();
    }

    @Override
    public RankingAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.layout_rank_row, parent, false);

        return new RankingAdapter.MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(RankingAdapter.MyViewHolder holder, int position) {
        RankingInfo rankingInfo = mRankingInfoList.get(position);
        holder.mTvPosition.setText(rankingInfo.getRank()+"");
        holder.mTvTime.setText(Utils.convertSecond2HourMinSecString(rankingInfo.getTime()));
        holder.mTvSteps.setText(rankingInfo.getSteps() + " 歩");
        holder.mTvDistance.setText(rankingInfo.getDistance() + " km");
        if (rankingInfo.getProfileImage() != null && !rankingInfo.getProfileImage().toString().isEmpty()) {
            Picasso.with(mActivity).load(ApiUtils.BASE_URL + rankingInfo.getProfileImage().toString()).into(
                    holder.mImvUserIcon);
        }
        switch (rankingInfo.getRank()) {
            case 1:
                holder.mImvPosition.setBackground(Utils.getDrawableWrapper(mActivity, R.drawable.ic_first));
                break;
            case 2:
                holder.mImvPosition.setBackground(Utils.getDrawableWrapper(mActivity, R.drawable.ic_second));
                break;
            case 3:
                holder.mImvPosition.setBackground(Utils.getDrawableWrapper(mActivity, R.drawable.ic_third));
                break;
        }
    }

    @Override
    public int getItemCount() {
        return mRankingInfoList.size();
    }
}