Skip to content

Instantly share code, notes, and snippets.

@MisterRager
Created June 23, 2017 22:55
Show Gist options
  • Save MisterRager/88c3f85cb128bc654e8023129b396c21 to your computer and use it in GitHub Desktop.
Save MisterRager/88c3f85cb128bc654e8023129b396c21 to your computer and use it in GitHub Desktop.
/*
* Copyright (c) 2017 PlanGrid, Inc. All rights reserved.
*/
package com.plangrid.android.loaders.rx;
import android.database.Cursor;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import rx.Observable;
import rx.exceptions.Exceptions;
public class RxNonEmptyCursorTransformer extends RxLoaderTransformer<Cursor, CursorLoader> {
public RxNonEmptyCursorTransformer(LoaderManager loaderManager,
int loaderId,
LoaderStartBehavior loaderStartBehavior,
LoaderResetBehavior loaderResetBehavior) {
super(loaderManager, loaderId, loaderStartBehavior, loaderResetBehavior);
}
@Override public Observable<Cursor> call(Observable<CursorLoader> loaderObservable) {
return loaderObservable.publish(
loaderObs -> loaderObs.zipWith(super.call(loaderObs),
(loader, cursor) -> {
if (cursor == null || cursor.getCount() == 0) {
throw Exceptions.propagate(new RuntimeException("LOL"));
}
return cursor;
}));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment