kopia lustrzana https://github.com/ryukoposting/Signal-Android
Add distinctUntilChanged operator to security info flowable.
rodzic
57e476988e
commit
b2c974a684
|
@ -131,7 +131,7 @@ class ConversationRepository {
|
|||
}
|
||||
|
||||
/**
|
||||
* Watchest the given recipient id for changes, and gets the security info for the recipient
|
||||
* Watches the given recipient id for changes, and gets the security info for the recipient
|
||||
* whenever a change occurs.
|
||||
*
|
||||
* @param recipientId The recipient id we are interested in
|
||||
|
@ -140,6 +140,7 @@ class ConversationRepository {
|
|||
*/
|
||||
@NonNull Observable<ConversationSecurityInfo> getSecurityInfo(@NonNull RecipientId recipientId) {
|
||||
return Recipient.observable(recipientId)
|
||||
.distinctUntilChanged((lhs, rhs) -> lhs.isPushGroup() == rhs.isPushGroup() && lhs.getRegistered().equals(rhs.getRegistered()))
|
||||
.switchMapSingle(this::getSecurityInfo)
|
||||
.subscribeOn(Schedulers.io());
|
||||
}
|
||||
|
@ -154,7 +155,7 @@ class ConversationRepository {
|
|||
registeredState = RecipientDatabase.RegisteredState.REGISTERED;
|
||||
} else {
|
||||
Log.i(TAG, "Checking through resolved recipient");
|
||||
registeredState = recipient.resolve().getRegistered();
|
||||
registeredState = recipient.getRegistered();
|
||||
}
|
||||
|
||||
Log.i(TAG, "Resolved registered state: " + registeredState);
|
||||
|
|
|
@ -135,8 +135,7 @@ public class ConversationViewModel extends ViewModel {
|
|||
.map(Recipient::resolved)
|
||||
.subscribe(recipientCache);
|
||||
|
||||
conversationStateStore.update(Observable.combineLatest(recipientId, conversationStateTick, (id, tick) -> id)
|
||||
.distinctUntilChanged()
|
||||
conversationStateStore.update(Observable.combineLatest(recipientId.distinctUntilChanged(), conversationStateTick, (id, tick) -> id)
|
||||
.switchMap(conversationRepository::getSecurityInfo)
|
||||
.toFlowable(BackpressureStrategy.LATEST),
|
||||
(securityInfo, state) -> state.withSecurityInfo(securityInfo));
|
||||
|
@ -313,7 +312,8 @@ public class ConversationViewModel extends ViewModel {
|
|||
|
||||
@NonNull Flowable<ConversationSecurityInfo> getConversationSecurityInfo(@NonNull RecipientId recipientId) {
|
||||
return getConversationState().map(ConversationState::getSecurityInfo)
|
||||
.filter(info -> info.isInitialized() && Objects.equals(info.getRecipientId(), recipientId));
|
||||
.filter(info -> info.isInitialized() && Objects.equals(info.getRecipientId(), recipientId))
|
||||
.distinctUntilChanged();
|
||||
}
|
||||
|
||||
void updateSecurityInfo() {
|
||||
|
|
Ładowanie…
Reference in New Issue