mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 00:29:11 +01:00
Update libsignal-client to 0.14.0
This commit is contained in:
committed by
Cody Henthorne
parent
749bbf428d
commit
057231b9c3
@@ -10,6 +10,7 @@ import androidx.core.util.Consumer;
|
||||
import org.signal.core.util.StreamUtil;
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.thoughtcrime.securesms.conversation.colors.AvatarColor;
|
||||
import org.thoughtcrime.securesms.database.GroupDatabase;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.groups.GroupChangeException;
|
||||
import org.thoughtcrime.securesms.groups.GroupId;
|
||||
@@ -19,9 +20,9 @@ import org.thoughtcrime.securesms.profiles.ProfileName;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Optional;
|
||||
|
||||
class EditGroupProfileRepository implements EditProfileRepository {
|
||||
|
||||
@@ -76,11 +77,11 @@ class EditGroupProfileRepository implements EditProfileRepository {
|
||||
|
||||
return SignalDatabase.groups()
|
||||
.getGroup(recipientId)
|
||||
.transform(groupRecord -> {
|
||||
.map(groupRecord -> {
|
||||
String title = groupRecord.getTitle();
|
||||
return title == null ? "" : title;
|
||||
})
|
||||
.or(() -> recipient.getGroupName(context));
|
||||
.orElseGet(() -> recipient.getGroupName(context));
|
||||
}, nameConsumer::accept);
|
||||
}
|
||||
|
||||
@@ -91,11 +92,8 @@ class EditGroupProfileRepository implements EditProfileRepository {
|
||||
|
||||
return SignalDatabase.groups()
|
||||
.getGroup(recipientId)
|
||||
.transform(groupRecord -> {
|
||||
String description = groupRecord.getDescription();
|
||||
return description == null ? "" : description;
|
||||
})
|
||||
.or("");
|
||||
.map(GroupDatabase.GroupRecord::getDescription)
|
||||
.orElse("");
|
||||
}, descriptionConsumer::accept);
|
||||
}
|
||||
|
||||
@@ -123,14 +121,12 @@ class EditGroupProfileRepository implements EditProfileRepository {
|
||||
|
||||
@Override
|
||||
public void getCurrentUsername(@NonNull Consumer<Optional<String>> callback) {
|
||||
callback.accept(Optional.absent());
|
||||
callback.accept(Optional.empty());
|
||||
}
|
||||
|
||||
@WorkerThread
|
||||
private RecipientId getRecipientId() {
|
||||
return SignalDatabase.recipients().getByGroupId(groupId)
|
||||
.or(() -> {
|
||||
throw new AssertionError("Recipient ID for Group ID does not exist.");
|
||||
});
|
||||
.orElseThrow(() -> new AssertionError("Recipient ID for Group ID does not exist."));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,6 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.navigation.NavDirections;
|
||||
import androidx.navigation.NavGraph;
|
||||
import androidx.navigation.Navigation;
|
||||
import androidx.navigation.fragment.NavHostFragment;
|
||||
|
||||
import org.thoughtcrime.securesms.BaseActivity;
|
||||
|
||||
@@ -34,8 +34,6 @@ import org.thoughtcrime.securesms.LoggingFragment;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.avatar.Avatars;
|
||||
import org.thoughtcrime.securesms.avatar.picker.AvatarPickerFragment;
|
||||
import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
|
||||
import org.thoughtcrime.securesms.conversation.colors.AvatarColor;
|
||||
import org.thoughtcrime.securesms.groups.GroupId;
|
||||
import org.thoughtcrime.securesms.groups.ParcelableGroupId;
|
||||
import org.thoughtcrime.securesms.mediasend.Media;
|
||||
|
||||
@@ -6,7 +6,9 @@ import androidx.core.util.Consumer;
|
||||
|
||||
import org.thoughtcrime.securesms.conversation.colors.AvatarColor;
|
||||
import org.thoughtcrime.securesms.profiles.ProfileName;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
interface EditProfileRepository {
|
||||
|
||||
|
||||
@@ -25,11 +25,11 @@ import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.thoughtcrime.securesms.registration.RegistrationUtil;
|
||||
import org.thoughtcrime.securesms.util.concurrent.ListenableFuture;
|
||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class EditSelfProfileRepository implements EditProfileRepository {
|
||||
|
||||
@@ -34,11 +34,11 @@ import org.thoughtcrime.securesms.util.StringUtil;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
import org.thoughtcrime.securesms.util.adapter.AlwaysChangedDiffUtil;
|
||||
import org.thoughtcrime.securesms.util.text.AfterTextChanged;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.signalservice.api.crypto.ProfileCipher;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Let's you edit the 'About' section of your profile.
|
||||
@@ -116,7 +116,7 @@ public class EditAboutFragment extends Fragment implements ManageProfileActivity
|
||||
onEmojiSelectedInternal(savedInstanceState.getString(KEY_SELECTED_EMOJI, ""));
|
||||
} else {
|
||||
this.bodyView.setText(Recipient.self().getAbout());
|
||||
onEmojiSelectedInternal(Optional.fromNullable(Recipient.self().getAboutEmoji()).or(""));
|
||||
onEmojiSelectedInternal(Optional.ofNullable(Recipient.self().getAboutEmoji()).orElse(""));
|
||||
}
|
||||
|
||||
ViewUtil.focusAndMoveCursorToEndAndOpenKeyboard(bodyView);
|
||||
|
||||
@@ -7,7 +7,6 @@ import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
import org.thoughtcrime.securesms.profiles.ProfileName;
|
||||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
|
||||
public final class EditAboutViewModel extends ViewModel {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package org.thoughtcrime.securesms.profiles.manage;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Editable;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.LiveData;
|
||||
|
||||
@@ -9,7 +9,6 @@ import androidx.fragment.app.Fragment;
|
||||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.NavDirections;
|
||||
import androidx.navigation.NavGraph;
|
||||
import androidx.navigation.Navigation;
|
||||
import androidx.navigation.fragment.NavHostFragment;
|
||||
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
|
||||
|
||||
@@ -42,9 +42,9 @@ import org.thoughtcrime.securesms.util.NameUtil;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
import org.thoughtcrime.securesms.util.views.SimpleProgressDialog;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Optional;
|
||||
|
||||
public class ManageProfileFragment extends LoggingFragment {
|
||||
|
||||
@@ -141,7 +141,7 @@ public class ManageProfileFragment extends LoggingFragment {
|
||||
viewModel = ViewModelProviders.of(this, new ManageProfileViewModel.Factory()).get(ManageProfileViewModel.class);
|
||||
|
||||
LiveData<Optional<byte[]>> avatarImage = Transformations.map(LiveDataUtil.distinctUntilChanged(viewModel.getAvatar(), (b1, b2) -> Arrays.equals(b1.getAvatar(), b2.getAvatar())),
|
||||
b -> Optional.fromNullable(b.getAvatar()));
|
||||
b -> Optional.ofNullable(b.getAvatar()));
|
||||
avatarImage.observe(getViewLifecycleOwner(), this::presentAvatarImage);
|
||||
|
||||
viewModel.getAvatar().observe(getViewLifecycleOwner(), this::presentAvatarPlaceholder);
|
||||
@@ -243,7 +243,7 @@ public class ManageProfileFragment extends LoggingFragment {
|
||||
|
||||
private void presentBadge(@NonNull Optional<Badge> badge) {
|
||||
if (badge.isPresent() && badge.get().getVisible() && !badge.get().isExpired()) {
|
||||
badgeView.setBadge(badge.orNull());
|
||||
badgeView.setBadge(badge.orElse(null));
|
||||
} else {
|
||||
badgeView.setBadge(null);
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ import org.thoughtcrime.securesms.util.DefaultValueLiveData;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.signalservice.api.util.StreamDetails;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
class ManageProfileViewModel extends ViewModel {
|
||||
|
||||
@@ -46,8 +46,8 @@ class ManageProfileViewModel extends ViewModel {
|
||||
private final LiveData<AvatarState> avatarState;
|
||||
private final SingleLiveEvent<Event> events;
|
||||
private final RecipientForeverObserver observer;
|
||||
private final ManageProfileRepository repository;
|
||||
private final MutableLiveData<Optional<Badge>> badge;
|
||||
private final ManageProfileRepository repository;
|
||||
private final MutableLiveData<Optional<Badge>> badge;
|
||||
|
||||
private byte[] previousAvatar;
|
||||
|
||||
@@ -59,7 +59,7 @@ class ManageProfileViewModel extends ViewModel {
|
||||
this.aboutEmoji = new MutableLiveData<>();
|
||||
this.events = new SingleLiveEvent<>();
|
||||
this.repository = new ManageProfileRepository();
|
||||
this.badge = new DefaultValueLiveData<>(Optional.absent());
|
||||
this.badge = new DefaultValueLiveData<>(Optional.empty());
|
||||
this.observer = this::onRecipientChanged;
|
||||
this.avatarState = LiveDataUtil.combineLatest(Recipient.self().live().getLiveData(), internalAvatarState, (self, state) -> new AvatarState(state, self));
|
||||
|
||||
@@ -154,10 +154,10 @@ class ManageProfileViewModel extends ViewModel {
|
||||
|
||||
private void onRecipientChanged(@NonNull Recipient recipient) {
|
||||
profileName.postValue(recipient.getProfileName());
|
||||
username.postValue(recipient.getUsername().orNull());
|
||||
username.postValue(recipient.getUsername().orElse(null));
|
||||
about.postValue(recipient.getAbout());
|
||||
aboutEmoji.postValue(recipient.getAboutEmoji());
|
||||
badge.postValue(Optional.fromNullable(recipient.getFeaturedBadge()));
|
||||
badge.postValue(Optional.ofNullable(recipient.getFeaturedBadge()));
|
||||
renderAvatar(AvatarHelper.getSelfProfileAvatarStream(ApplicationDependencies.getApplication()));
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ public class UsernameEditFragment extends LoggingFragment {
|
||||
submitButton.setOnClickListener(v -> viewModel.onUsernameSubmitted(usernameInput.getText().toString()));
|
||||
deleteButton.setOnClickListener(v -> viewModel.onUsernameDeleted());
|
||||
|
||||
usernameInput.setText(Recipient.self().getUsername().orNull());
|
||||
usernameInput.setText(Recipient.self().getUsername().orElse(null));
|
||||
usernameInput.addTextChangedListener(new SimpleTextWatcher() {
|
||||
@Override
|
||||
public void onTextChanged(String text) {
|
||||
|
||||
@@ -16,7 +16,9 @@ import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
import org.thoughtcrime.securesms.util.UsernameUtil;
|
||||
import org.thoughtcrime.securesms.util.UsernameUtil.InvalidReason;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
class UsernameEditViewModel extends ViewModel {
|
||||
|
||||
@@ -42,7 +44,7 @@ class UsernameEditViewModel extends ViewModel {
|
||||
return;
|
||||
}
|
||||
|
||||
if (username.equals(Recipient.self().getUsername().orNull())) {
|
||||
if (username.equals(Recipient.self().getUsername().orElse(null))) {
|
||||
uiState.setValue(new State(ButtonState.SUBMIT_DISABLED, UsernameStatus.NONE));
|
||||
return;
|
||||
}
|
||||
@@ -58,7 +60,7 @@ class UsernameEditViewModel extends ViewModel {
|
||||
}
|
||||
|
||||
void onUsernameSubmitted(@NonNull String username) {
|
||||
if (username.equals(Recipient.self().getUsername().orNull())) {
|
||||
if (username.equals(Recipient.self().getUsername().orElse(null))) {
|
||||
uiState.setValue(new State(ButtonState.SUBMIT_DISABLED, UsernameStatus.NONE));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,20 +1,15 @@
|
||||
package org.thoughtcrime.securesms.profiles.spoofing;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Outline;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewOutlineProvider;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.Px;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.components.AvatarImageView;
|
||||
@@ -23,7 +18,6 @@ import org.thoughtcrime.securesms.contacts.avatars.FallbackPhoto20dp;
|
||||
import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto;
|
||||
import org.thoughtcrime.securesms.conversation.colors.AvatarColor;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
|
||||
/**
|
||||
* Banner displayed within a conversation when a review is suggested.
|
||||
|
||||
@@ -76,7 +76,7 @@ class ReviewCardViewHolder extends RecyclerView.ViewHolder {
|
||||
setNonContactSublines(context, reviewCard);
|
||||
break;
|
||||
case YOUR_CONTACT:
|
||||
subtextLine1.setText(reviewCard.getReviewRecipient().getE164().orNull());
|
||||
subtextLine1.setText(reviewCard.getReviewRecipient().getE164().orElse(null));
|
||||
subtextLine2.setText(getGroupsInCommon(reviewCard.getInCommonGroupsCount()));
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user