Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I created an adapter for handling FirebasePagingAdapter codes....how can i acess swipe refresh layout inside that adapter? #3

Open
MrLincon opened this issue Aug 19, 2020 · 0 comments

Comments

@MrLincon
Copy link

package com.example.foody.Models;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;

import com.example.foody.R;
import com.firebase.ui.firestore.FirestoreRecyclerAdapter;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.firebase.ui.firestore.paging.FirestorePagingAdapter;
import com.firebase.ui.firestore.paging.FirestorePagingOptions;
import com.firebase.ui.firestore.paging.LoadingState;
import com.google.firebase.firestore.DocumentSnapshot;

public class FeedAdapter extends FirestorePagingAdapter<Feed, FeedAdapter.FeedHolder> {

private OnItemClickListener listener;
private Context mContext;
SwipeRefreshLayout mSwipeRefreshLayout;
private RecyclerView recyclerView;

public FeedAdapter(@NonNull FirestorePagingOptions<Feed> options) {
    super(options);
}

@Override
protected void onBindViewHolder(@NonNull FeedHolder holder, int position, @NonNull Feed model) {
    holder.Name.setText(model.getName());
}

@Override
protected void onLoadingStateChanged(@NonNull LoadingState state) {
    super.onLoadingStateChanged(state);
    switch (state) {
        case LOADING_INITIAL:
            mSwipeRefreshLayout.setRefreshing(true);
            Log.d("Paging Log", "Loading Initial data");
            break;
        case LOADING_MORE:
            mSwipeRefreshLayout.setRefreshing(true);
            Log.d("Paging Log", "Loading next page");
            break;
        case FINISHED:
            mSwipeRefreshLayout.setRefreshing(false);
            Log.d("Paging Log", "All data loaded");
            break;
        case LOADED:
            mSwipeRefreshLayout.setRefreshing(false);
            Log.d("Paging Log", "Total data loaded "+getItemCount());
            break;
        case ERROR:
            mSwipeRefreshLayout.setRefreshing(false);
            Log.d("Paging Log", "Error loading data");
            break;
    }
}

@NonNull
@Override
public FeedHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.feed_layout,
            parent, false);
    return new FeedHolder(view);
}

class FeedHolder extends RecyclerView.ViewHolder {
    TextView Name;
    public FeedHolder(View itemView) {
        super(itemView);
        Name = itemView.findViewById(R.id.name);

        mContext = itemView.getContext();

        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = getAdapterPosition();
                if (position != RecyclerView.NO_POSITION && listener != null) {

// listener.onItemClick(getSnapshots().getSnapshot(position));
}
}
});
}
}

public interface OnItemClickListener {
    void onItemClick(DocumentSnapshot documentSnapshot);
}

public void setOnItemClickListener(OnItemClickListener listener) {
    this.listener = listener;
}

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant