Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.weatherapp.common
- import androidx.annotation.MainThread
- import androidx.lifecycle.LifecycleOwner
- import androidx.lifecycle.MutableLiveData
- import androidx.lifecycle.Observer
- import java.util.concurrent.atomic.AtomicBoolean
- class MutableLiveEvent<T> : MutableLiveData<T>() {
- private val pending = AtomicBoolean(false)
- @MainThread
- override fun observe(owner: LifecycleOwner, observer: Observer<in T>) {
- super.observe(owner, Observer { t ->
- if (pending.compareAndSet(true, false)) {
- observer.onChanged(t)
- }
- })
- }
- @MainThread
- override fun setValue(t: T?) {
- pending.set(true)
- super.setValue(t)
- }
- @MainThread
- fun call() {
- value = null
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement