Class FirebaseRecyclerPagingAdapter<T,​VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder>

  • All Implemented Interfaces:
    androidx.lifecycle.LifecycleObserver

    public abstract class FirebaseRecyclerPagingAdapter<T,​VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder>
    extends androidx.paging.PagingDataAdapter<com.google.firebase.database.DataSnapshot,​VH>
    implements androidx.lifecycle.LifecycleObserver
    Paginated RecyclerView Adapter for a Firebase Realtime Database query. Configured with DatabasePagingOptions.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class androidx.recyclerview.widget.RecyclerView.Adapter

        androidx.recyclerview.widget.RecyclerView.Adapter.StateRestorationPolicy
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      com.google.firebase.database.DatabaseReference getRef​(int position)  
      void init()
      Initializes Snapshots and LiveData
      void onBindViewHolder​(VH viewHolder, int position)  
      protected abstract void onBindViewHolder​(VH viewHolder, int position, T model)  
      void startListening()
      Start listening to paging / scrolling events and populating adapter data.
      void stopListening()
      Unsubscribe from paging / scrolling events, no more data will be populated, but the existing data will remain.
      void updateOptions​(DatabasePagingOptions<T> options)
      Re-initialize the Adapter with a new set of options.
      • Methods inherited from class androidx.paging.PagingDataAdapter

        addLoadStateListener, getItem, getItemCount, getItemId, getLoadStateFlow, peek, refresh, removeLoadStateListener, retry, setHasStableIds, setStateRestorationPolicy, snapshot, submitData, submitData, withLoadStateFooter, withLoadStateHeader, withLoadStateHeaderAndFooter
      • Methods inherited from class androidx.recyclerview.widget.RecyclerView.Adapter

        bindViewHolder, createViewHolder, findRelativeAdapterPositionIn, getItemViewType, getStateRestorationPolicy, hasObservers, hasStableIds, notifyDataSetChanged, notifyItemChanged, notifyItemChanged, notifyItemInserted, notifyItemMoved, notifyItemRangeChanged, notifyItemRangeChanged, notifyItemRangeInserted, notifyItemRangeRemoved, notifyItemRemoved, onAttachedToRecyclerView, onBindViewHolder, onCreateViewHolder, onDetachedFromRecyclerView, onFailedToRecycleView, onViewAttachedToWindow, onViewDetachedFromWindow, onViewRecycled, registerAdapterDataObserver, unregisterAdapterDataObserver
    • Method Detail

      • init

        public void init()
        Initializes Snapshots and LiveData
      • updateOptions

        public void updateOptions​(@NonNull
                                  DatabasePagingOptions<T> options)
        Re-initialize the Adapter with a new set of options. Can be used to change the query without re-constructing the entire adapter.
      • startListening

        public void startListening()
        Start listening to paging / scrolling events and populating adapter data.
      • stopListening

        public void stopListening()
        Unsubscribe from paging / scrolling events, no more data will be populated, but the existing data will remain.
      • onBindViewHolder

        public void onBindViewHolder​(@NonNull
                                     VH viewHolder,
                                     int position)
        Specified by:
        onBindViewHolder in class androidx.recyclerview.widget.RecyclerView.Adapter<VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder>
      • onBindViewHolder

        protected abstract void onBindViewHolder​(@NonNull
                                                 VH viewHolder,
                                                 int position,
                                                 @NonNull
                                                 T model)
        Parameters:
        model - the model object containing the data that should be used to populate the view.
        See Also:
        onBindViewHolder(RecyclerView.ViewHolder, int)
      • getRef

        @NonNull
        public com.google.firebase.database.DatabaseReference getRef​(int position)