mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 00:59:49 +01:00
Update libsignal-client to 0.14.0
This commit is contained in:
committed by
Cody Henthorne
parent
749bbf428d
commit
057231b9c3
@@ -6,13 +6,12 @@ import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.LiveData;
|
||||
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.util.DateUtils;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.signalservice.api.payments.Money;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -21,6 +20,7 @@ import java.text.DecimalFormatSymbols;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.Currency;
|
||||
import java.util.Locale;
|
||||
import java.util.Optional;
|
||||
|
||||
public final class FiatMoneyUtil {
|
||||
|
||||
@@ -40,7 +40,7 @@ public final class FiatMoneyUtil {
|
||||
.exchange(a);
|
||||
} catch (IOException e) {
|
||||
Log.w(TAG, e);
|
||||
return Optional.absent();
|
||||
return Optional.empty();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -7,9 +7,7 @@ import org.signal.core.util.logging.Log;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@ import com.airbnb.lottie.LottieAnimationView;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.payments.confirm.ConfirmPaymentState.Status;
|
||||
import org.thoughtcrime.securesms.util.SpanUtil;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder;
|
||||
import org.thoughtcrime.securesms.util.SpanUtil;
|
||||
import org.whispersystems.signalservice.api.payments.FormatterOptions;
|
||||
import org.whispersystems.signalservice.api.payments.Money;
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ import org.thoughtcrime.securesms.payments.Payee;
|
||||
import org.thoughtcrime.securesms.payments.preferences.RecipientHasNotEnabledPaymentsDialog;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.BottomSheetUtil;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModelList;
|
||||
import org.thoughtcrime.securesms.util.StringUtil;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModelList;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
import org.whispersystems.signalservice.api.payments.FormatterOptions;
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ package org.thoughtcrime.securesms.payments.confirm;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import org.thoughtcrime.securesms.payments.Payee;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.payments.Payee;
|
||||
import org.whispersystems.signalservice.api.payments.Money;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -9,6 +9,7 @@ import androidx.lifecycle.ViewModel;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.database.PaymentDatabase.PaymentTransaction;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
@@ -17,14 +18,13 @@ import org.thoughtcrime.securesms.payments.FiatMoneyUtil;
|
||||
import org.thoughtcrime.securesms.payments.PaymentTransactionLiveData;
|
||||
import org.thoughtcrime.securesms.payments.PaymentsAddressException;
|
||||
import org.thoughtcrime.securesms.payments.confirm.ConfirmPaymentRepository.ConfirmPaymentResult;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.util.DefaultValueLiveData;
|
||||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
import org.thoughtcrime.securesms.util.livedata.Store;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.signalservice.api.payments.Money;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -68,7 +68,7 @@ final class ConfirmPaymentViewModel extends ViewModel {
|
||||
this.paymentDone = Transformations.distinctUntilChanged(Transformations.map(store.getStateLiveData(), state -> state.getStatus().isTerminalStatus()));
|
||||
|
||||
LiveData<Optional<FiatMoney>> exchange = FiatMoneyUtil.getExchange(amount);
|
||||
this.store.update(exchange, (exchange1, confirmPaymentState1) -> confirmPaymentState1.updateExchange(exchange1.orNull()));
|
||||
this.store.update(exchange, (exchange1, confirmPaymentState1) -> confirmPaymentState1.updateExchange(exchange1.orElse(null)));
|
||||
|
||||
LiveData<ConfirmPaymentState.Status> statusLiveData = Transformations.map(store.getStateLiveData(), ConfirmPaymentState::getStatus);
|
||||
LiveData<ConfirmPaymentState.Status> timeoutSignal = Transformations.switchMap(statusLiveData,
|
||||
|
||||
@@ -11,20 +11,19 @@ import androidx.lifecycle.ViewModel;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.payments.Balance;
|
||||
import org.thoughtcrime.securesms.payments.CreatePaymentDetails;
|
||||
import org.thoughtcrime.securesms.payments.FiatMoneyUtil;
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.payments.preferences.model.PayeeParcelable;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.DefaultValueLiveData;
|
||||
import org.thoughtcrime.securesms.util.ProfileUtil;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
import org.thoughtcrime.securesms.util.livedata.Store;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.signalservice.api.payments.FormatterOptions;
|
||||
import org.whispersystems.signalservice.api.payments.Money;
|
||||
import org.whispersystems.signalservice.api.util.OptionalUtil;
|
||||
@@ -33,6 +32,7 @@ import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Currency;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
public class CreatePaymentViewModel extends ViewModel {
|
||||
|
||||
@@ -73,18 +73,18 @@ public class CreatePaymentViewModel extends ViewModel {
|
||||
LiveData<Optional<CurrencyExchange.ExchangeRate>> liveExchangeRate = LiveDataUtil.mapAsync(SignalStore.paymentsValues().liveCurrentCurrency(),
|
||||
currency -> {
|
||||
try {
|
||||
return Optional.fromNullable(ApplicationDependencies.getPayments()
|
||||
return Optional.ofNullable(ApplicationDependencies.getPayments()
|
||||
.getCurrencyExchange(true)
|
||||
.getExchangeRate(currency));
|
||||
} catch (IOException e1) {
|
||||
Log.w(TAG, "Unable to get fresh exchange data, falling back to cached", e1);
|
||||
try {
|
||||
return Optional.fromNullable(ApplicationDependencies.getPayments()
|
||||
return Optional.ofNullable(ApplicationDependencies.getPayments()
|
||||
.getCurrencyExchange(false)
|
||||
.getExchangeRate(currency));
|
||||
} catch (IOException e2) {
|
||||
Log.w(TAG, "Unable to get any exchange data", e2);
|
||||
return Optional.absent();
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -119,7 +119,7 @@ public class CreatePaymentViewModel extends ViewModel {
|
||||
void clearAmount() {
|
||||
inputState.update(s -> {
|
||||
final Money money = Money.MobileCoin.ZERO;
|
||||
final Optional<FiatMoney> fiat = OptionalUtil.flatMap(s.getExchangeRate(), r -> r.exchange(money));
|
||||
final Optional<FiatMoney> fiat = s.getExchangeRate().flatMap(r -> r.exchange(money));
|
||||
|
||||
return s.updateAmount("0", "0", Money.MobileCoin.ZERO, fiat);
|
||||
});
|
||||
@@ -155,7 +155,7 @@ public class CreatePaymentViewModel extends ViewModel {
|
||||
{
|
||||
String newFiatAmount = updateAmountString(context, inputState.getFiatAmount(), glyph, currency.getDefaultFractionDigits());
|
||||
FiatMoney newFiat = stringToFiatValueOrZero(newFiatAmount, currency);
|
||||
Money newMoney = OptionalUtil.flatMap(inputState.getExchangeRate(), e -> e.exchange(newFiat)).get();
|
||||
Money newMoney = inputState.getExchangeRate().flatMap(e -> e.exchange(newFiat)).get();
|
||||
String newMoneyAmount;
|
||||
|
||||
if (newFiatAmount.equals("0")) {
|
||||
@@ -177,7 +177,7 @@ public class CreatePaymentViewModel extends ViewModel {
|
||||
{
|
||||
String newMoneyAmount = updateAmountString(context, inputState.getMoneyAmount(), glyph, inputState.getMoney().getCurrency().getDecimalPrecision());
|
||||
Money.MobileCoin newMoney = stringToMobileCoinValueOrZero(newMoneyAmount);
|
||||
Optional<FiatMoney> newFiat = OptionalUtil.flatMap(inputState.getExchangeRate(), e -> e.exchange(newMoney));
|
||||
Optional<FiatMoney> newFiat = inputState.getExchangeRate().flatMap(e -> e.exchange(newMoney));
|
||||
String newFiatAmount;
|
||||
|
||||
if (!withinMobileCoinBounds(newMoney)) {
|
||||
@@ -187,7 +187,7 @@ public class CreatePaymentViewModel extends ViewModel {
|
||||
if (newMoneyAmount.equals("0")) {
|
||||
newFiatAmount = "0";
|
||||
} else {
|
||||
newFiatAmount = newFiat.transform(f -> FiatMoneyUtil.format(context.getResources(), f, FiatMoneyUtil.formatOptions().withDisplayTime(false).numberOnly())).or("0");
|
||||
newFiatAmount = newFiat.map(f -> FiatMoneyUtil.format(context.getResources(), f, FiatMoneyUtil.formatOptions().withDisplayTime(false).numberOnly())).orElse("0");
|
||||
}
|
||||
|
||||
return inputState.updateAmount(newMoneyAmount, newFiatAmount, newMoney, newFiat);
|
||||
|
||||
@@ -2,21 +2,22 @@ package org.thoughtcrime.securesms.payments.create;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
|
||||
import org.whispersystems.signalservice.api.payments.Money;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
final class InputState {
|
||||
private final InputTarget inputTarget;
|
||||
private final String moneyAmount;
|
||||
private final String fiatAmount;
|
||||
private final Optional<FiatMoney> fiatMoney;
|
||||
private final Money money;
|
||||
private final String fiatAmount;
|
||||
private final Optional<FiatMoney> fiatMoney;
|
||||
private final Money money;
|
||||
private final Optional<CurrencyExchange.ExchangeRate> exchangeRate;
|
||||
|
||||
InputState() {
|
||||
this(InputTarget.MONEY, "0", "0", Money.MobileCoin.ZERO, Optional.absent(), Optional.absent());
|
||||
this(InputTarget.MONEY, "0", "0", Money.MobileCoin.ZERO, Optional.empty(), Optional.empty());
|
||||
}
|
||||
|
||||
private InputState(@NonNull InputTarget inputTarget,
|
||||
|
||||
@@ -5,7 +5,6 @@ import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.signalservice.api.payments.Money;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -15,6 +14,7 @@ import java.util.Currency;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
public final class CurrencyExchange {
|
||||
private final Map<String, BigDecimal> conversions;
|
||||
@@ -68,14 +68,14 @@ public final class CurrencyExchange {
|
||||
if (rate != null) {
|
||||
return Optional.of(new FiatMoney(amount.multiply(rate).setScale(currency.getDefaultFractionDigits(), RoundingMode.HALF_EVEN), currency, timestamp));
|
||||
}
|
||||
return Optional.absent();
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
public @NonNull Optional<Money> exchange(@NonNull FiatMoney fiatMoney) {
|
||||
if (rate != null) {
|
||||
return Optional.of(Money.mobileCoin(fiatMoney.getAmount().setScale(12, RoundingMode.HALF_EVEN).divide(rate, RoundingMode.HALF_EVEN)));
|
||||
} else {
|
||||
return Optional.absent();
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,8 +24,8 @@ import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
|
||||
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ package org.thoughtcrime.securesms.payments.preferences;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
|
||||
import org.thoughtcrime.securesms.payments.preferences.model.PaymentItem;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
@@ -10,6 +10,7 @@ import androidx.lifecycle.ViewModelProvider;
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.components.settings.SettingHeader;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
@@ -21,7 +22,6 @@ import org.thoughtcrime.securesms.payments.Payment;
|
||||
import org.thoughtcrime.securesms.payments.UnreadPaymentsRepository;
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyExchangeRepository;
|
||||
import org.signal.core.util.money.FiatMoney;
|
||||
import org.thoughtcrime.securesms.payments.preferences.model.InProgress;
|
||||
import org.thoughtcrime.securesms.payments.preferences.model.InfoCard;
|
||||
import org.thoughtcrime.securesms.payments.preferences.model.IntroducingPayments;
|
||||
@@ -29,14 +29,14 @@ import org.thoughtcrime.securesms.payments.preferences.model.NoRecentActivity;
|
||||
import org.thoughtcrime.securesms.payments.preferences.model.PaymentItem;
|
||||
import org.thoughtcrime.securesms.payments.preferences.model.SeeAll;
|
||||
import org.thoughtcrime.securesms.util.AsynchronousCallback;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModelList;
|
||||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModelList;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
import org.thoughtcrime.securesms.util.livedata.Store;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.signalservice.api.payments.Money;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class PaymentsHomeViewModel extends ViewModel {
|
||||
|
||||
@@ -82,7 +82,7 @@ public class PaymentsHomeViewModel extends ViewModel {
|
||||
LiveData<Optional<FiatMoney>> liveExchangeAmount = LiveDataUtil.combineLatest(this.balance,
|
||||
liveExchangeRate,
|
||||
(balance, exchangeRate) -> exchangeRate.exchange(balance));
|
||||
this.store.update(liveExchangeAmount, (amount, state) -> state.updateCurrencyAmount(amount.orNull()));
|
||||
this.store.update(liveExchangeAmount, (amount, state) -> state.updateCurrencyAmount(amount.orElse(null)));
|
||||
|
||||
refreshExchangeRates(true);
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@ import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyExchangeRepository;
|
||||
import org.thoughtcrime.securesms.payments.currency.CurrencyUtil;
|
||||
import org.thoughtcrime.securesms.util.AsynchronousCallback;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModelList;
|
||||
import org.thoughtcrime.securesms.util.SetUtil;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModelList;
|
||||
import org.thoughtcrime.securesms.util.livedata.Store;
|
||||
import org.whispersystems.libsignal.util.Pair;
|
||||
|
||||
|
||||
@@ -17,9 +17,9 @@ import org.thoughtcrime.securesms.payments.State;
|
||||
import org.thoughtcrime.securesms.payments.preferences.PaymentType;
|
||||
import org.thoughtcrime.securesms.payments.preferences.details.PaymentDetailsParcelable;
|
||||
import org.thoughtcrime.securesms.util.DateUtils;
|
||||
import org.thoughtcrime.securesms.util.SpanUtil;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModelList;
|
||||
import org.thoughtcrime.securesms.util.SpanUtil;
|
||||
import org.whispersystems.signalservice.api.payments.FormatterOptions;
|
||||
import org.whispersystems.signalservice.api.payments.PaymentsConstants;
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.components.AvatarImageView;
|
||||
import org.thoughtcrime.securesms.payments.preferences.PaymentsHomeAdapter;
|
||||
import org.thoughtcrime.securesms.payments.preferences.model.PaymentItem;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder;
|
||||
import org.thoughtcrime.securesms.util.SpanUtil;
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder;
|
||||
import org.thoughtcrime.securesms.util.viewholders.RecipientMappingModel.RecipientIdMappingModel;
|
||||
import org.thoughtcrime.securesms.util.viewholders.RecipientViewHolder;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user