ComparisionChildAdapter.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package com.cygnusa.hyperm.adapter;
  2. import android.content.Context;
  3. import androidx.core.content.ContextCompat;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.BaseExpandableListAdapter;
  8. import android.widget.ImageView;
  9. import android.widget.TextView;
  10. import com.cygnusa.hyperm.R;
  11. import com.cygnusa.hyperm.wrappers.ComparisonCategory;
  12. import com.cygnusa.hyperm.wrappers.ComparisonCompareDataCategory;
  13. import com.cygnusa.hyperm.wrappers.ComparisonCompareDataField;
  14. import java.util.List;
  15. public class ComparisionChildAdapter extends BaseExpandableListAdapter {
  16. private Context _context;
  17. private List<ComparisonCompareDataCategory> comparisonCategories;
  18. List<ComparisonCategory> checkColorList;
  19. public ComparisionChildAdapter(Context context, List<ComparisonCompareDataCategory> comparisonCategories, List<ComparisonCategory> comparisonCategoryList) {
  20. this._context = context;
  21. this.comparisonCategories = comparisonCategories;
  22. this.checkColorList = comparisonCategoryList;
  23. }
  24. @Override
  25. public int getGroupCount() {
  26. return comparisonCategories.size();
  27. }
  28. @Override
  29. public int getChildrenCount(int groupPosition) {
  30. return comparisonCategories.get(groupPosition).getFields().size();
  31. }
  32. @Override
  33. public ComparisonCompareDataCategory getGroup(int groupPosition) {
  34. return comparisonCategories.get(groupPosition);
  35. }
  36. @Override
  37. public ComparisonCompareDataField getChild(int groupPosition, int childPosition) {
  38. return comparisonCategories.get(groupPosition).getFields().get(childPosition);
  39. }
  40. @Override
  41. public long getGroupId(int groupPosition) {
  42. return groupPosition;
  43. }
  44. @Override
  45. public long getChildId(int groupPosition, int childPosition) {
  46. return childPosition;
  47. }
  48. @Override
  49. public boolean hasStableIds() {
  50. return false;
  51. }
  52. @Override
  53. public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
  54. ComparisonCompareDataCategory category = getGroup(groupPosition);
  55. ParentViewHolder holder;
  56. if (convertView == null) {
  57. LayoutInflater infalInflater = (LayoutInflater) this._context
  58. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  59. convertView = infalInflater.inflate(R.layout.list_header, null);
  60. holder = new ParentViewHolder(convertView);
  61. convertView.setTag(holder);
  62. } else {
  63. holder = (ParentViewHolder) convertView.getTag();
  64. }
  65. holder.list_header.setText(category.getTitle());
  66. holder.list_header.setTextColor(ContextCompat.getColor(_context, R.color.material_bluegrey800));
  67. holder.list_header.setCompoundDrawablesWithIntrinsicBounds(0, 0, android.R.drawable.arrow_down_float, 0);
  68. return convertView;
  69. }
  70. @Override
  71. public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
  72. ComparisonCompareDataField field = getChild(groupPosition, childPosition);
  73. ChildViewHolder holder;
  74. if (convertView == null) {
  75. LayoutInflater infalInflater = (LayoutInflater) this._context
  76. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  77. assert infalInflater != null;
  78. convertView = infalInflater.inflate(R.layout.child_list_item_new, null);
  79. holder = new ChildViewHolder(convertView);
  80. convertView.setTag(holder);
  81. } else {
  82. holder = (ChildViewHolder) convertView.getTag();
  83. }
  84. holder.list_item_value.setText(field.getValue());
  85. String fieldValue = field.getValue().trim();
  86. String childValue = checkColorList.get(groupPosition).getFields().get(childPosition).getValue().trim();
  87. if(fieldValue.equalsIgnoreCase(childValue)){
  88. holder.list_item_color.setVisibility(View.GONE);
  89. holder.list_item_value.setVisibility(View.VISIBLE);
  90. holder.list_item_value.setText(childValue+"");
  91. }
  92. // if (fieldValue.equalsIgnoreCase(childValue)) {
  93. // holder.list_item_color.setVisibility(View.VISIBLE);
  94. // holder.list_item_value.setVisibility(View.GONE);
  95. // holder.list_item_color.setImageDrawable(ContextCompat.getDrawable(_context, R.mipmap.right));
  96. // } else if (TextUtils.isEmpty(fieldValue) || fieldValue.equalsIgnoreCase("") || fieldValue.equalsIgnoreCase("NA")) {
  97. // holder.list_item_color.setVisibility(View.VISIBLE);
  98. // holder.list_item_value.setVisibility(View.GONE);
  99. // holder.list_item_color.setImageDrawable(ContextCompat.getDrawable(_context, R.mipmap.cancel));
  100. // } else {
  101. // holder.list_item_color.setVisibility(View.GONE);
  102. // holder.list_item_value.setVisibility(View.VISIBLE);
  103. // }
  104. return convertView;
  105. }
  106. @Override
  107. public boolean isChildSelectable(int groupPosition, int childPosition) {
  108. return true;
  109. }
  110. static class ParentViewHolder {
  111. TextView list_header;
  112. ParentViewHolder(View view) {
  113. list_header = view.findViewById(R.id.list_header);
  114. }
  115. }
  116. static class ChildViewHolder {
  117. TextView list_item_value;
  118. ImageView list_item_color;
  119. ChildViewHolder(View view) {
  120. list_item_value = view.findViewById(R.id.list_item_value);
  121. list_item_color = view.findViewById(R.id.list_item_color);
  122. }
  123. }
  124. }