Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. package hr.foi.air.discountlocator.modules;
  2.  
  3. import android.content.Context;
  4. import android.graphics.drawable.Drawable;
  5. import android.os.Bundle;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9.  
  10. import androidx.annotation.NonNull;
  11. import androidx.annotation.Nullable;
  12. import androidx.fragment.app.Fragment;
  13. import androidx.recyclerview.widget.LinearLayoutManager;
  14. import androidx.recyclerview.widget.RecyclerView;
  15.  
  16. import java.util.ArrayList;
  17. import java.util.List;
  18.  
  19. import butterknife.BindView;
  20. import butterknife.ButterKnife;
  21. import hr.foi.air.core.DataPresenter;
  22. import hr.foi.air.database.entities.Discount;
  23. import hr.foi.air.database.entities.Store;
  24. import hr.foi.air.discountlocator.R;
  25. import hr.foi.air.discountlocator.recyclerview.ExpandableStoreItem;
  26. import hr.foi.air.discountlocator.recyclerview.StoreRecyclerAdapter;
  27.  
  28. public class ListViewModule extends Fragment implements DataPresenter {
  29. @BindView(R.id.main_recycler)
  30. RecyclerView recyclerView;
  31.  
  32. private boolean moduleReadyFlag = false;
  33. private boolean dataReadyFlag = false;
  34.  
  35. private List<Store> stores;
  36. private List<Discount> discounts;
  37.  
  38. @Nullable
  39. @Override
  40. public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  41. return inflater.inflate(R.layout.fragment_list_view, container, false);
  42. }
  43.  
  44. @Override
  45. public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
  46. super.onViewCreated(view, savedInstanceState);
  47.  
  48. ButterKnife.bind(this, view);
  49.  
  50. moduleReadyFlag = true;
  51. tryToDisplayData();
  52. }
  53.  
  54. public void displayData() {
  55. List<ExpandableStoreItem> storeItems = new ArrayList<>();
  56. for(Store s : stores)
  57. storeItems.add(new ExpandableStoreItem(s, discounts));
  58.  
  59. recyclerView.setAdapter(new StoreRecyclerAdapter(getContext(), storeItems));
  60. recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
  61. }
  62.  
  63. @Override
  64. public Drawable getIcon(Context context) {
  65. return context.getDrawable(android.R.drawable.ic_menu_agenda);
  66. }
  67.  
  68. @Override
  69. public String getName(Context context) {
  70. return "List view";
  71. }
  72.  
  73. @Override
  74. public Fragment getFragment() {
  75. return this;
  76. }
  77.  
  78. @Override
  79. public void setData(List<Store> stores, List<Discount> discounts) {
  80. this.stores = stores;
  81. this.discounts = discounts;
  82.  
  83. dataReadyFlag = true;
  84. tryToDisplayData();
  85. }
  86.  
  87. private void tryToDisplayData() {
  88. if (moduleReadyFlag && dataReadyFlag){
  89. displayData();
  90. }
  91. }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement