Blame view

app/src/main/java/com/dinhcv/lifelogpedometer/adapter/RankingAdapter.java 3.39 KB
7f095a929   chudinhbka@gmail.com   Create GIT Project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
  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();
      }
  }