Example usage for android.support.v4.util SparseArrayCompat clear

List of usage examples for android.support.v4.util SparseArrayCompat clear

Introduction

In this page you can find the example usage for android.support.v4.util SparseArrayCompat clear.

Prototype

public void clear() 

Source Link

Usage

From source file:com.mvcoding.financius.data.paging.PageLoader.java

@NonNull
public Observable<PageResult<T>> load(@NonNull DataConverter<T> dataConverter,
        @NonNull DatabaseQuery databaseQuery, @NonNull Observable<Page> pageObservable) {
    final SparseArrayCompat<T> cache = new SparseArrayCompat<>();
    final Observable<Cursor> cursorObservable = database.load(databaseQuery).doOnNext(cursor -> cache.clear());

    return Observable.combineLatest(pageObservable, cursorObservable, (page, cursor) -> {
        final List<T> items = new ArrayList<>();
        for (int i = page.getStart(), size = Math.min(cursor.getCount(),
                page.getStart() + page.getSize()); i < size; i++) {
            T item = cache.get(i);//from w  w w . ja v a2s  .co  m
            if (item == null) {
                cursor.moveToPosition(i);
                item = dataConverter.from(cursor);
                cache.put(i, item);
            }
            items.add(item);
        }

        return new PageResult<>(page, items, cache.size() == items.size());
    });
}