Repository navigation
Expand file tree
/
Copy pathRecyclerViewAdapter.java
More file actions
90 lines (73 loc) · 3.04 KB
/
Copy pathRecyclerViewAdapter.java
File metadata and controls
90 lines (73 loc) · 3.04 KB
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
package com.example.decentspec_v3;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.decentspec_v3.database.SampleFile;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static com.example.decentspec_v3.database.SampleFile.STAGE_RECEIVED;
import static com.example.decentspec_v3.database.SampleFile.STAGE_RECEIVING;
import static com.example.decentspec_v3.database.SampleFile.STAGE_TRAINED;
import static com.example.decentspec_v3.database.SampleFile.STAGE_TRAINING;
// with reference to https://medium.com/@atifmukhtar/recycler-view-with-mvvm-livedata-a1fd062d2280
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Activity context;
List<SampleFile> fileArrayList;
public RecyclerViewAdapter(Activity context, List<SampleFile> fileArrayList) {
this.context = context;
// this.fileArrayList = fileArrayList.subList(0, fileArrayList.size());
// Collections.reverse(this.fileArrayList);
this.fileArrayList = fileArrayList;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View rootView = LayoutInflater.from(context).inflate(R.layout.database_cell, parent, false);
return new RecyclerViewViewHolder(rootView);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
SampleFile file = fileArrayList.get(position);
RecyclerViewViewHolder viewHolder= (RecyclerViewViewHolder) holder;
viewHolder.nameText.setText(file.fileName);
viewHolder.stageText.setText(stage2String(file.stage));
// viewHolder.progressBar.setText(int2Bar(file.progress));
viewHolder.progressBar.setText("size=" + file.size);
}
@Override
public int getItemCount() {
return fileArrayList.size();
}
class RecyclerViewViewHolder extends RecyclerView.ViewHolder {
TextView nameText;
TextView stageText;
TextView progressBar;
public RecyclerViewViewHolder(View itemView) {
super(itemView);
nameText = itemView.findViewById(R.id.col1);
stageText = itemView.findViewById(R.id.col2);
progressBar = itemView.findViewById(R.id.col3);
}
}
// utility methods
private String stage2String(int stage) {
switch (stage) {
case STAGE_RECEIVING: return "Receiving ...";
case STAGE_RECEIVED: return "Received";
case STAGE_TRAINING: return "Training ...";
case STAGE_TRAINED: return "Trained";
default: return "unknown: " + stage;
}
}
private String int2Bar(int value) {
StringBuilder sb = new StringBuilder(20);
for (int i = 0; i < value; i++) {
sb.append("█ ");
}
return sb.toString();
}
}