Skip to content

Instantly share code, notes, and snippets.

@MisterRager
Created March 21, 2018 23:48
Show Gist options
  • Save MisterRager/1d76b342b2a24af69aa9b6e8be775db1 to your computer and use it in GitHub Desktop.
Save MisterRager/1d76b342b2a24af69aa9b6e8be775db1 to your computer and use it in GitHub Desktop.
Watch a ContentProvider for updates
import android.database.ContentObserver
import android.net.Uri
import android.os.Handler
import io.reactivex.ObservableEmitter
import io.reactivex.ObservableOnSubscribe
class ContentProviderUpdates(handler: Handler) : ObservableOnSubscribe<Uri>, ContentObserver(handler) {
private var emitter: ObservableEmitter<Uri>? = null
override fun subscribe(emitter: ObservableEmitter<Uri>) {
this.emitter = emitter
}
override fun onChange(selfChange: Boolean, uri: Uri?) {
uri?.apply { emitter?.onNext(this) }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment