Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hr.foi.air.discountlocator.modules;
- import android.content.Context;
- import android.graphics.drawable.Drawable;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.fragment.app.Fragment;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
- import java.util.ArrayList;
- import java.util.List;
- import butterknife.BindView;
- import butterknife.ButterKnife;
- import hr.foi.air.core.DataPresenter;
- import hr.foi.air.database.entities.Discount;
- import hr.foi.air.database.entities.Store;
- import hr.foi.air.discountlocator.R;
- import hr.foi.air.discountlocator.recyclerview.ExpandableStoreItem;
- import hr.foi.air.discountlocator.recyclerview.StoreRecyclerAdapter;
- public class ListViewModule extends Fragment implements DataPresenter {
- @BindView(R.id.main_recycler)
- RecyclerView recyclerView;
- private boolean moduleReadyFlag = false;
- private boolean dataReadyFlag = false;
- private List<Store> stores;
- private List<Discount> discounts;
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- return inflater.inflate(R.layout.fragment_list_view, container, false);
- }
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- ButterKnife.bind(this, view);
- moduleReadyFlag = true;
- tryToDisplayData();
- }
- public void displayData() {
- List<ExpandableStoreItem> storeItems = new ArrayList<>();
- for(Store s : stores)
- storeItems.add(new ExpandableStoreItem(s, discounts));
- recyclerView.setAdapter(new StoreRecyclerAdapter(getContext(), storeItems));
- recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
- }
- @Override
- public Drawable getIcon(Context context) {
- return context.getDrawable(android.R.drawable.ic_menu_agenda);
- }
- @Override
- public String getName(Context context) {
- return "List view";
- }
- @Override
- public Fragment getFragment() {
- return this;
- }
- @Override
- public void setData(List<Store> stores, List<Discount> discounts) {
- this.stores = stores;
- this.discounts = discounts;
- dataReadyFlag = true;
- tryToDisplayData();
- }
- private void tryToDisplayData() {
- if (moduleReadyFlag && dataReadyFlag){
- displayData();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement