Remove local fingerprint from remote fingerprints observable
This commit is contained in:
parent
f4c4033686
commit
69120efb25
|
@ -11,6 +11,7 @@ import org.mercury_im.messenger.core.viewmodel.openpgp.FingerprintViewItem;
|
||||||
import org.mercury_im.messenger.entity.Account;
|
import org.mercury_im.messenger.entity.Account;
|
||||||
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -46,7 +47,21 @@ public class AccountDetailsViewModel implements MercuryViewModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Observable<List<FingerprintViewItem>> observeRemoteFingerprints(UUID accountId) {
|
public Observable<List<FingerprintViewItem>> observeRemoteFingerprints(UUID accountId) {
|
||||||
return accountRepository.getAccount(accountId).toSingle()
|
return observeLocalFingerprint(accountId)
|
||||||
.flatMapObservable(account -> openPgpRepository.observeFingerprints(accountId, account.getJid()));
|
.flatMap(optional -> accountRepository.getAccount(accountId).toSingle()
|
||||||
|
.flatMapObservable(account -> openPgpRepository.observeFingerprints(accountId, account.getJid())
|
||||||
|
.map(list -> {
|
||||||
|
if (!optional.isPresent()) {
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<FingerprintViewItem> remoteFingerprints = new ArrayList<>();
|
||||||
|
for(FingerprintViewItem f : list) {
|
||||||
|
if (!f.getFingerprint().equals(optional.getItem())) {
|
||||||
|
remoteFingerprints.add(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return remoteFingerprints;
|
||||||
|
})));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue