Skip to content

Instantly share code, notes, and snippets.

@thenixan
Created January 30, 2018 12:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thenixan/f2d0838d722de071269ed339d45c61b1 to your computer and use it in GitHub Desktop.
Save thenixan/f2d0838d722de071269ed339d45c61b1 to your computer and use it in GitHub Desktop.
class JsonReaderObservable<T>(elementType: Type, gson: Gson, private val reader: JsonReader) : Observable<T>() {
private val subject = ReplaySubject.create<T>()
init {
reader.beginArray()
while (reader.hasNext()) {
subject.onNext(gson.fromJson(reader, elementType))
}
reader.endArray()
subject.onComplete()
}
override fun subscribeActual(observer: Observer<in T>) {
subject.subscribe(observer)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment