Home

Awesome

SnappyRecyclerAdapter

This library helps you to manage RecyclerViewAdapter easier. This library is very useful for rendering a sorted data in real time (For example: chat application)

Features

Usage

This library requires RxJava / RxAndroid and AppCompat version 24.2.+(or newer) library to use.

compile 'io.reactivex:rxandroid:{lastest_version}'
compile 'io.reactivex:rxjava:{lastest_version}'
compile ('me.silong:observablerm:{latest_version}'){
    transitive = true
}
compile 'com.android.support:appcompat-v7:24.+'
compile 'com.android.support:recyclerview-v7:24.+'

Code example: please read sample app

Create your RecyclerViewAdapter:

public class MyAdapter<VH> extends RecyclerViewAdapter<VH> {
    private final RxSortedList<T> mRxSortedList;
    public MyRecyclerViewAdapter() {
      mRxSortedList = new RxSortedList<>(T.class, new RxRecyclerViewCallback<T>(this) {
            @Override
            public boolean areContentsTheSame(T oldData, T newData) {
              return //return whether content of oldData and newData are the same
            }
      
            @Override
            public boolean areItemsTheSame(T oldData, T newData) {
              return //return whether oldData and newData are the same (checking object id is recommended)
            }
      
            @Override
            public int compare(T o1, T o2) {
              return //sort order. 
            }
          });
    }
    @Override
    public int getItemCount() {
      return mRxSortedList.size();
    }
    ...
}

Add item:

mObservableAdapterManager.add(item).subscribe();

Add item with callback:

mObservableAdapterManager.add(item).subscribe(o -> { ... }, throwable -> { ... }); 

The library also supports remove, set, clear method.

Issue

Welcome everyone to discuss about this library [here] (https://github.com/longbkiter07/SnappyRecyclerAdapter/issues).

Thanks

Thanks to Henry for deployment script.

License

Copyright(c) 2016 "Si Long <long.bkiter07@gmail.com>"

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.