Fix bug where wallpaper didn't update after changing.

This commit is contained in:
Greyson Parrelli
2022-03-16 17:36:17 -04:00
committed by Cody Henthorne
parent 0359f27cd9
commit 604f6709db
3 changed files with 20 additions and 3 deletions

View File

@@ -29,6 +29,8 @@ import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.atomic.AtomicReference;
import io.reactivex.rxjava3.core.Observable;
public final class LiveRecipient {
private static final String TAG = Log.tag(LiveRecipient.class);
@@ -95,6 +97,19 @@ public final class LiveRecipient {
ThreadUtil.runOnMain(() -> observableLiveData.removeObservers(owner));
}
public Observable<Recipient> asObservable() {
return Observable.create(emitter -> {
Recipient current = recipient.get();
if (current != null && current.getId() != RecipientId.UNKNOWN) {
emitter.onNext(current);
}
RecipientForeverObserver foreverObserver = emitter::onNext;
observeForever(foreverObserver);
emitter.setCancellable(() -> removeForeverObserver(foreverObserver));
});
}
/**
* Watch the recipient for changes. The callback could be invoked at any time. You MUST call
* {@link #removeForeverObserver(RecipientForeverObserver)} when finished. You should use