Convert calling and payments apis to WebSocket.

This commit is contained in:
Cody Henthorne
2025-03-11 14:48:51 -04:00
committed by Greyson Parrelli
parent 224a85f5db
commit 92e590aa3b
17 changed files with 231 additions and 192 deletions

View File

@@ -9,6 +9,7 @@ import com.mobilecoin.lib.ClientConfig;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.whispersystems.signalservice.api.payments.PaymentsApi;
import org.whispersystems.signalservice.internal.push.AuthCredentials;
import java.io.IOException;
@@ -36,12 +37,12 @@ public abstract class MobileCoinConfig {
abstract @NonNull ClientConfig getConfig();
public static MobileCoinConfig getTestNet(SignalServiceAccountManager signalServiceAccountManager) {
return new MobileCoinTestNetConfig(signalServiceAccountManager);
public static MobileCoinConfig getTestNet(PaymentsApi paymentsApi) {
return new MobileCoinTestNetConfig(paymentsApi);
}
public static MobileCoinConfig getMainNet(SignalServiceAccountManager signalServiceAccountManager) {
return new MobileCoinMainNetConfig(signalServiceAccountManager);
public static MobileCoinConfig getMainNet(PaymentsApi paymentsApi) {
return new MobileCoinMainNetConfig(paymentsApi);
}
protected static Set<X509Certificate> getTrustRoots(@RawRes int pemResource) {

View File

@@ -10,7 +10,9 @@ import com.mobilecoin.lib.exceptions.AttestationException;
import org.thoughtcrime.securesms.R;
import org.signal.core.util.Base64;
import org.whispersystems.signalservice.api.NetworkResultUtil;
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.whispersystems.signalservice.api.payments.PaymentsApi;
import org.whispersystems.signalservice.internal.push.AuthCredentials;
import java.io.IOException;
@@ -20,11 +22,10 @@ import java.util.List;
import java.util.Set;
final class MobileCoinMainNetConfig extends MobileCoinConfig {
private final PaymentsApi paymentsApi;
private final SignalServiceAccountManager signalServiceAccountManager;
public MobileCoinMainNetConfig(@NonNull SignalServiceAccountManager signalServiceAccountManager) {
this.signalServiceAccountManager = signalServiceAccountManager;
public MobileCoinMainNetConfig(@NonNull PaymentsApi paymentsApi) {
this.paymentsApi = paymentsApi;
}
@Override
@@ -63,7 +64,7 @@ final class MobileCoinMainNetConfig extends MobileCoinConfig {
@Override
@NonNull AuthCredentials getAuth() throws IOException {
return signalServiceAccountManager.getPaymentsAuthorization();
return NetworkResultUtil.toBasicLegacy(paymentsApi.getAuthorization());
}
@Override

View File

@@ -7,9 +7,10 @@ import androidx.annotation.NonNull;
import com.mobilecoin.lib.ClientConfig;
import com.mobilecoin.lib.exceptions.AttestationException;
import org.thoughtcrime.securesms.R;
import org.signal.core.util.Base64;
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.thoughtcrime.securesms.R;
import org.whispersystems.signalservice.api.NetworkResultUtil;
import org.whispersystems.signalservice.api.payments.PaymentsApi;
import org.whispersystems.signalservice.internal.push.AuthCredentials;
import java.io.IOException;
@@ -19,11 +20,10 @@ import java.util.List;
import java.util.Set;
final class MobileCoinTestNetConfig extends MobileCoinConfig {
private final PaymentsApi paymentsApi;
private final SignalServiceAccountManager signalServiceAccountManager;
public MobileCoinTestNetConfig(@NonNull SignalServiceAccountManager signalServiceAccountManager) {
this.signalServiceAccountManager = signalServiceAccountManager;
public MobileCoinTestNetConfig(@NonNull PaymentsApi paymentsApi) {
this.paymentsApi = paymentsApi;
}
@Override
@@ -51,7 +51,7 @@ final class MobileCoinTestNetConfig extends MobileCoinConfig {
@Override
@NonNull AuthCredentials getAuth() throws IOException {
return signalServiceAccountManager.getPaymentsAuthorization();
return NetworkResultUtil.toBasicLegacy(paymentsApi.getAuthorization());
}
@Override

View File

@@ -4,9 +4,10 @@ import androidx.annotation.NonNull;
import androidx.annotation.WorkerThread;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.net.SignalNetwork;
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
import org.whispersystems.signalservice.api.NetworkResultUtil;
import org.whispersystems.signalservice.api.payments.CurrencyConversion;
import org.whispersystems.signalservice.api.payments.CurrencyConversions;
@@ -46,7 +47,7 @@ public final class Payments {
public synchronized @NonNull CurrencyExchange getCurrencyExchange(boolean refreshIfAble) throws IOException {
if (currencyConversions == null || shouldRefresh(refreshIfAble, currencyConversions.getTimestamp())) {
Log.i(TAG, "Currency conversion data is unavailable or a refresh was requested and available");
CurrencyConversions newCurrencyConversions = AppDependencies.getSignalServiceAccountManager().getCurrencyConversions();
CurrencyConversions newCurrencyConversions = NetworkResultUtil.toBasicLegacy(SignalNetwork.payments().getCurrencyConversions());
if (currencyConversions == null || (newCurrencyConversions != null && newCurrencyConversions.getTimestamp() > currencyConversions.getTimestamp())) {
currencyConversions = newCurrencyConversions;
}