Skip to content

Instantly share code, notes, and snippets.

View PatilShreyas's full-sized avatar
👨‍💻
Might be writing code at the moment

Shreyas Patil PatilShreyas

👨‍💻
Might be writing code at the moment
View GitHub Profile
public class Post {
public String title;
public String body;
public Post(){}
public Post(String title, String body) {
this.title = title;
this.body = body;
}
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private DatabaseReference mDatabase;
private SwipeRefreshLayout mSwipeRefreshLayout;
FirebaseRecyclerPagingAdapter<Post, PostViewHolder> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSwipeRefreshLayout = findViewById(R.id.swipe_refresh_layout);
//Initialize RecyclerView
mRecyclerView = findViewById(R.id.recycler_view);
mRecyclerView.setHasFixedSize(true);
PagedList.Config config = new PagedList.Config.Builder()
.setEnablePlaceholders(false)
.setPrefetchDistance(5)
.setPageSize(10)
.build();
DatabasePagingOptions<Post> options = new DatabasePagingOptions.Builder<Post>()
.setLifecycleOwner(this)
.setQuery(mDatabase, config, Post.class)
.build();
mAdapter = new FirebaseRecyclerPagingAdapter<Post, PostViewHolder>(options) {
@NonNull
@Override
public PostViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new PostViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false));
}
@Override
protected void onBindViewHolder(@NonNull PostViewHolder holder,
int position,
@Override
protected void onBindViewHolder(@NonNull PostViewHolder holder,
int position,
@NonNull Post model) {
DatabaseReference reference = getRef(position);
}
@Override
protected void onError(@NonNull DatabaseError databaseError) {
mSwipeRefreshLayout.setRefreshing(false);
databaseError.toException().printStackTrace();
// Handle Error
}
@Override
protected void onError(@NonNull DatabaseError databaseError) {
retry();
}
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mAdapter.refresh();
}
});