Skip to content

Instantly share code, notes, and snippets.

@mikelpr
Created August 28, 2017 01:52
Show Gist options
  • Save mikelpr/0af1e803cf0e387ee29a224b9164ce4d to your computer and use it in GitHub Desktop.
Save mikelpr/0af1e803cf0e387ee29a224b9164ce4d to your computer and use it in GitHub Desktop.
Android VSYNC observable
import android.view.Choreographer
import io.reactivex.Observable
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
val vsync: Observable<Long> = {
Single.create<Long>{emitter ->
Choreographer.getInstance().postFrameCallback{emitter.onSuccess(it)}
}
.toObservable()
.repeat()
.subscribeOn(AndroidSchedulers.mainThread())
.share()
}()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment