Skip to content

Instantly share code, notes, and snippets.

@Takhion
Last active August 29, 2015 14:20
Show Gist options
  • Save Takhion/8bfee0eb01b7617d11cf to your computer and use it in GitHub Desktop.
Save Takhion/8bfee0eb01b7617d11cf to your computer and use it in GitHub Desktop.
import android.support.v4.util.Pair;
import rx.Observable;
public class HistoryTransformer<T> implements Observable.Transformer<T, Pair<T,T>> {
@Override
public Observable<Pair<T,T>> call(Observable<T> observable) {
//noinspection unchecked
return observable
.map(value -> {
final Object[] array = new Object[2];
array[0] = value;
return array;
})
.scan((oldArray, newArray) -> {
if (oldArray != null) { newArray[1] = oldArray[0]; }
return newArray;
})
.map(array -> new Pair<>((T)array[0], (T)array[1]));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment