Update libsignal-client to 0.14.0

This commit is contained in:
Greyson Parrelli
2022-03-14 15:49:46 -04:00
committed by Cody Henthorne
parent 749bbf428d
commit 057231b9c3
650 changed files with 2154 additions and 2384 deletions

View File

@@ -21,10 +21,10 @@ import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.database.model.DistributionListRecord;
import org.thoughtcrime.securesms.database.model.RecipientRecord;
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
import org.whispersystems.libsignal.util.guava.Optional;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.atomic.AtomicReference;
@@ -218,7 +218,7 @@ public final class LiveRecipient {
if (groupRecord.isPresent()) {
String title = groupRecord.get().getTitle();
List<Recipient> members = Stream.of(groupRecord.get().getMembers()).filterNot(RecipientId::isUnknown).map(this::fetchAndCacheRecipientFromDisk).toList();
Optional<Long> avatarId = Optional.absent();
Optional<Long> avatarId = Optional.empty();
if (groupRecord.get().hasAvatar()) {
avatarId = Optional.of(groupRecord.get().getAvatarId());
@@ -227,7 +227,7 @@ public final class LiveRecipient {
return new RecipientDetails(title, null, avatarId, false, false, record.getRegistered(), record, members, false);
}
return new RecipientDetails(null, null, Optional.absent(), false, false, record.getRegistered(), record, null, false);
return new RecipientDetails(null, null, Optional.empty(), false, false, record.getRegistered(), record, null, false);
}
@WorkerThread

View File

@@ -155,11 +155,11 @@ public final class LiveRecipientCache {
}
if (localAci != null) {
selfId = recipientDatabase.getByServiceId(localAci).orNull();
selfId = recipientDatabase.getByServiceId(localAci).orElse(null);
}
if (selfId == null && localE164 != null) {
selfId = recipientDatabase.getByE164(localE164).orNull();
selfId = recipientDatabase.getByE164(localE164).orElse(null);
}
if (selfId == null) {

View File

@@ -47,11 +47,11 @@ import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.StringUtil;
import org.thoughtcrime.securesms.util.Util;
import org.thoughtcrime.securesms.wallpaper.ChatWallpaper;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.libsignal.util.guava.Preconditions;
import org.whispersystems.signalservice.api.push.PNI;
import org.whispersystems.signalservice.api.push.ServiceId;
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
import org.whispersystems.signalservice.api.util.OptionalUtil;
import org.whispersystems.signalservice.api.util.Preconditions;
import org.whispersystems.signalservice.api.util.UuidUtil;
import java.util.ArrayList;
@@ -63,6 +63,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import static org.thoughtcrime.securesms.database.RecipientDatabase.InsightsBannerTier;
@@ -187,7 +188,7 @@ public class Recipient {
*/
@WorkerThread
public static @NonNull Recipient externalPush(@NonNull SignalServiceAddress signalServiceAddress) {
return externalPush(signalServiceAddress.getServiceId(), signalServiceAddress.getNumber().orNull(), false);
return externalPush(signalServiceAddress.getServiceId(), signalServiceAddress.getNumber().orElse(null), false);
}
/**
@@ -215,7 +216,7 @@ public class Recipient {
*/
@WorkerThread
public static @NonNull Recipient externalHighTrustPush(@NonNull Context context, @NonNull SignalServiceAddress signalServiceAddress) {
return externalPush(signalServiceAddress.getServiceId(), signalServiceAddress.getNumber().orNull(), true);
return externalPush(signalServiceAddress.getServiceId(), signalServiceAddress.getNumber().orElse(null), true);
}
/**
@@ -353,7 +354,7 @@ public class Recipient {
this.groupId = null;
this.distributionListId = null;
this.participants = Collections.emptyList();
this.groupAvatarId = Optional.absent();
this.groupAvatarId = Optional.empty();
this.isSelf = false;
this.blocked = false;
this.muteUntil = 0;
@@ -362,7 +363,7 @@ public class Recipient {
this.messageRingtone = null;
this.callRingtone = null;
this.insightsBannerTier = InsightsBannerTier.TIER_TWO;
this.defaultSubscriptionId = Optional.absent();
this.defaultSubscriptionId = Optional.empty();
this.expireMessages = 0;
this.registered = RegisteredState.UNKNOWN;
this.profileKey = null;
@@ -393,7 +394,7 @@ public class Recipient {
this.aboutEmoji = null;
this.systemProfileName = ProfileName.EMPTY;
this.systemContactName = null;
this.extras = Optional.absent();
this.extras = Optional.empty();
this.hasGroupsInCommon = false;
this.badges = Collections.emptyList();
this.isReleaseNotesRecipient = false;
@@ -401,9 +402,9 @@ public class Recipient {
public Recipient(@NonNull RecipientId id, @NonNull RecipientDetails details, boolean resolved) {
this.id = id;
this.resolving = !resolved;
this.serviceId = details.serviceId;
this.pni = details.pni;
this.resolving = !resolved;
this.serviceId = details.serviceId;
this.pni = details.pni;
this.username = details.username;
this.e164 = details.e164;
this.email = details.email;
@@ -621,45 +622,45 @@ public class Recipient {
getSystemProfileName().getGivenName(),
getProfileName().getGivenName(),
getDisplayName(context),
getUsername().orNull());
getUsername().orElse(null));
return StringUtil.isolateBidi(name);
}
public @NonNull Optional<ServiceId> getServiceId() {
return Optional.fromNullable(serviceId);
return Optional.ofNullable(serviceId);
}
public @NonNull Optional<PNI> getPni() {
return Optional.fromNullable(pni);
return Optional.ofNullable(pni);
}
public @NonNull Optional<String> getUsername() {
if (FeatureFlags.usernames()) {
return Optional.fromNullable(username);
return Optional.ofNullable(username);
} else {
return Optional.absent();
return Optional.empty();
}
}
public @NonNull Optional<String> getE164() {
return Optional.fromNullable(e164);
return Optional.ofNullable(e164);
}
public @NonNull Optional<String> getEmail() {
return Optional.fromNullable(email);
return Optional.ofNullable(email);
}
public @NonNull Optional<GroupId> getGroupId() {
return Optional.fromNullable(groupId);
return Optional.ofNullable(groupId);
}
public @NonNull Optional<DistributionListId> getDistributionListId() {
return Optional.fromNullable(distributionListId);
return Optional.ofNullable(distributionListId);
}
public @NonNull Optional<String> getSmsAddress() {
return Optional.fromNullable(e164).or(Optional.fromNullable(email));
return OptionalUtil.or(Optional.ofNullable(e164), Optional.ofNullable(email));
}
public @NonNull PNI requirePni() {
@@ -705,7 +706,7 @@ public class Recipient {
}
public boolean hasSmsAddress() {
return getE164().or(getEmail()).isPresent();
return OptionalUtil.or(getE164(), getEmail()).isPresent();
}
public boolean hasE164() {
@@ -721,7 +722,7 @@ public class Recipient {
}
public boolean shouldHideStory() {
return extras.transform(Extras::hideStory).or(false);
return extras.map(Extras::hideStory).orElse(false);
}
public @NonNull GroupId requireGroupId() {

View File

@@ -12,25 +12,24 @@ import org.thoughtcrime.securesms.conversation.colors.AvatarColor;
import org.thoughtcrime.securesms.conversation.colors.ChatColors;
import org.thoughtcrime.securesms.database.RecipientDatabase.InsightsBannerTier;
import org.thoughtcrime.securesms.database.RecipientDatabase.MentionSetting;
import org.thoughtcrime.securesms.database.model.DistributionListId;
import org.thoughtcrime.securesms.database.model.RecipientRecord;
import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState;
import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode;
import org.thoughtcrime.securesms.database.RecipientDatabase.VibrateState;
import org.thoughtcrime.securesms.database.model.DistributionListId;
import org.thoughtcrime.securesms.database.model.RecipientRecord;
import org.thoughtcrime.securesms.groups.GroupId;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.profiles.ProfileName;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util;
import org.thoughtcrime.securesms.wallpaper.ChatWallpaper;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.push.ACI;
import org.whispersystems.signalservice.api.push.PNI;
import org.whispersystems.signalservice.api.push.ServiceId;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
public class RecipientDetails {
@@ -147,7 +146,7 @@ public class RecipientDetails {
this.systemProfileName = record.getSystemProfileName();
this.groupName = groupName;
this.systemContactName = systemContactName;
this.extras = Optional.fromNullable(record.getExtras());
this.extras = Optional.ofNullable(record.getExtras());
this.hasGroupsInCommon = record.hasGroupsInCommon();
this.badges = record.getBadges();
this.isReleaseChannel = isReleaseChannel;
@@ -175,7 +174,7 @@ public class RecipientDetails {
this.participants = new LinkedList<>();
this.profileName = ProfileName.EMPTY;
this.insightsBannerTier = InsightsBannerTier.TIER_TWO;
this.defaultSubscriptionId = Optional.absent();
this.defaultSubscriptionId = Optional.empty();
this.registered = RegisteredState.UNKNOWN;
this.profileKey = null;
this.profileKeyCredential = null;
@@ -203,7 +202,7 @@ public class RecipientDetails {
this.aboutEmoji = null;
this.systemProfileName = ProfileName.EMPTY;
this.systemContactName = null;
this.extras = Optional.absent();
this.extras = Optional.empty();
this.hasGroupsInCommon = false;
this.badges = Collections.emptyList();
this.isReleaseChannel = false;
@@ -225,11 +224,11 @@ public class RecipientDetails {
}
}
return new RecipientDetails(null, settings.getSystemDisplayName(), Optional.absent(), systemContact, isSelf, registeredState, settings, null, isReleaseChannel);
return new RecipientDetails(null, settings.getSystemDisplayName(), Optional.empty(), systemContact, isSelf, registeredState, settings, null, isReleaseChannel);
}
public static @NonNull RecipientDetails forDistributionList(String title, @Nullable List<Recipient> members, @NonNull RecipientRecord record) {
return new RecipientDetails(title, null, Optional.absent(), false, false, record.getRegistered(), record, members, false);
return new RecipientDetails(title, null, Optional.empty(), false, false, record.getRegistered(), record, members, false);
}
public static @NonNull RecipientDetails forUnknown() {

View File

@@ -54,7 +54,7 @@ public class RecipientId implements Parcelable, Comparable<RecipientId>, Databas
@AnyThread
public static @NonNull RecipientId from(@NonNull SignalServiceAddress address) {
return from(address.getServiceId(), address.getNumber().orNull(), false);
return from(address.getServiceId(), address.getNumber().orElse(null), false);
}
/**
@@ -77,7 +77,7 @@ public class RecipientId implements Parcelable, Comparable<RecipientId>, Databas
*/
@AnyThread
public static @NonNull RecipientId fromHighTrust(@NonNull SignalServiceAddress address) {
return from(address.getServiceId(), address.getNumber().orNull(), true);
return from(address.getServiceId(), address.getNumber().orElse(null), true);
}
/**

View File

@@ -4,11 +4,11 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.signal.core.util.logging.Log;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.push.ServiceId;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Optional;
/**
* Thread safe cache that allows faster looking up of {@link RecipientId}s without hitting the database.

View File

@@ -27,13 +27,13 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.mms.OutgoingExpirationUpdateMessage;
import org.thoughtcrime.securesms.sms.MessageSender;
import org.thoughtcrime.securesms.storage.StorageSyncHelper;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
import org.whispersystems.signalservice.api.push.exceptions.NotFoundException;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
public class RecipientUtil {
@@ -63,7 +63,7 @@ public class RecipientUtil {
}
if (recipient.hasServiceId()) {
return new SignalServiceAddress(recipient.requireServiceId(), Optional.fromNullable(recipient.resolve().getE164().orNull()));
return new SignalServiceAddress(recipient.requireServiceId(), Optional.ofNullable(recipient.resolve().getE164().orElse(null)));
} else {
throw new NotFoundException(recipient.getId() + " is not registered!");
}
@@ -82,7 +82,7 @@ public class RecipientUtil {
return Stream.of(recipients)
.map(Recipient::resolve)
.map(r -> new SignalServiceAddress(r.requireServiceId(), r.getE164().orNull()))
.map(r -> new SignalServiceAddress(r.requireServiceId(), r.getE164().orElse(null)))
.toList();
}

View File

@@ -199,7 +199,7 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF
}
String usernameNumberString = recipient.hasAUserSetDisplayName(requireContext()) && !recipient.isSelf()
? recipient.getSmsAddress().transform(PhoneNumberFormatter::prettyPrint).or("").trim()
? recipient.getSmsAddress().map(PhoneNumberFormatter::prettyPrint).orElse("").trim()
: "";
usernameNumber.setText(usernameNumberString);
usernameNumber.setVisibility(TextUtils.isEmpty(usernameNumberString) ? View.GONE : View.VISIBLE);

View File

@@ -54,7 +54,7 @@ final class RecipientDialogRepository {
void getIdentity(@NonNull Consumer<IdentityRecord> callback) {
SignalExecutors.BOUNDED.execute(
() -> callback.accept(ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId).orNull()));
() -> callback.accept(ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId).orElse(null)));
}
void getRecipient(@NonNull RecipientCallback recipientCallback) {

View File

@@ -7,7 +7,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;