Advertisement
Roctik

Untitled

Aug 5th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. package com.polexexpress.polexonlinestorage.ui.adapter;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.ProgressBar;
  8. import android.widget.TextView;
  9.  
  10. import androidx.annotation.NonNull;
  11. import androidx.recyclerview.widget.RecyclerView;
  12.  
  13. import com.polexexpress.polexonlinestorage.R;
  14. import com.polexexpress.polexonlinestorage.model.SearchInvoice;
  15.  
  16. import java.util.ArrayList;
  17.  
  18. import static com.polexexpress.polexonlinestorage.other.Const.getTypeIcon;
  19.  
  20. public class InvoiceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  21.  
  22. private ArrayList<SearchInvoice> data;
  23. private static View.OnClickListener mOnItemClickListener;
  24. private final int VIEW_TYPE_ITEM = 0;
  25. private final int VIEW_TYPE_LOADING = 1;
  26.  
  27. public InvoiceAdapter(ArrayList<SearchInvoice> data) {
  28. this.data = data;
  29. }
  30.  
  31. @NonNull
  32. @Override
  33. public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i){
  34.  
  35. if (i == VIEW_TYPE_ITEM) {
  36. View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.delivery_list, viewGroup, false);
  37. return new InvoiceViewHolder(view);
  38. } else {
  39. View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_loading, viewGroup, false);
  40. return new LoadingViewHolder(view);
  41. }
  42.  
  43. }
  44.  
  45. @SuppressLint("SetTextI18n")
  46. @Override
  47. public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
  48. if (viewHolder instanceof InvoiceViewHolder) {
  49.  
  50. populateItemRows((InvoiceViewHolder) viewHolder, position);
  51. } else if (viewHolder instanceof LoadingViewHolder) {
  52. showLoadingView((LoadingViewHolder) viewHolder, position);
  53. }
  54.  
  55.  
  56. }
  57.  
  58. @Override
  59. public int getItemCount() {
  60. return data.size();
  61. }
  62. @Override
  63. public int getItemViewType(int position) {
  64. return data.get(position) == null ? VIEW_TYPE_LOADING : VIEW_TYPE_ITEM;
  65. }
  66.  
  67. public void setOnItemClickListener(View.OnClickListener itemClickListener) {
  68. mOnItemClickListener = itemClickListener;
  69. }
  70.  
  71. @Override
  72. public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
  73. super.onAttachedToRecyclerView(recyclerView);
  74. }
  75.  
  76. static class InvoiceViewHolder extends RecyclerView.ViewHolder {
  77.  
  78. TextView num;
  79. TextView date;
  80. TextView count;
  81.  
  82. InvoiceViewHolder(@NonNull View itemView) {
  83. super(itemView);
  84. num = itemView.findViewById(R.id.item_num);
  85. date = itemView.findViewById(R.id.item_date);
  86. count = itemView.findViewById(R.id.item_count_places);
  87. itemView.setTag(this);
  88. itemView.setOnClickListener(mOnItemClickListener);
  89. }
  90. }
  91. private class LoadingViewHolder extends RecyclerView.ViewHolder {
  92.  
  93. ProgressBar progressBar;
  94.  
  95. public LoadingViewHolder(@NonNull View itemView) {
  96. super(itemView);
  97. progressBar = itemView.findViewById(R.id.progress_load);
  98. }
  99. }
  100. private void showLoadingView(LoadingViewHolder viewHolder, int position) {
  101. viewHolder.progressBar.setVisibility(View.VISIBLE);
  102.  
  103. }
  104. @SuppressLint("SetTextI18n")
  105. private void populateItemRows(InvoiceViewHolder invoiceViewHolder, int i) {
  106.  
  107. if (data.get(i).getPlaceNumber() != null)
  108. invoiceViewHolder.count.setText(data.get(i).getPlaceNumber() + " мест");
  109. else
  110. invoiceViewHolder.count.setText("Пусто");
  111. invoiceViewHolder.date.setText(data.get(i).getDate());
  112. invoiceViewHolder.num.setText(data.get(i).getTrackNo());
  113.  
  114. }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement