Rewrite the AppDependencies system.

This commit is contained in:
Greyson Parrelli
2024-05-22 15:44:24 -04:00
committed by Cody Henthorne
parent a0131bf39b
commit b6a4e1f145
560 changed files with 2909 additions and 3036 deletions

View File

@@ -8,7 +8,7 @@ import androidx.annotation.RequiresApi;
import org.thoughtcrime.securesms.database.PaymentTable;
import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.payments.reconciliation.LedgerReconcile;
import org.thoughtcrime.securesms.recipients.Recipient;
@@ -42,7 +42,7 @@ public final class DataExportUtil {
@RequiresApi(api = 26)
private static @NonNull String createTsv(@NonNull List<Payment> payments) {
Context context = ApplicationDependencies.getApplication();
Context context = AppDependencies.getApplication();
StringBuilder sb = new StringBuilder();
sb.append(String.format(Locale.US, "%s\t%s\t%s\t%s\t%s%n", "Date Time", "From", "To", "Amount", "Fee"));

View File

@@ -7,7 +7,7 @@ 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.dependencies.AppDependencies;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.util.DateUtils;
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
@@ -33,10 +33,10 @@ public final class FiatMoneyUtil {
public static @NonNull LiveData<Optional<FiatMoney>> getExchange(@NonNull LiveData<Money> amount) {
return LiveDataUtil.mapAsync(amount, a -> {
try {
return ApplicationDependencies.getPayments()
.getCurrencyExchange(false)
.getExchangeRate(SignalStore.paymentsValues().currentCurrency())
.exchange(a);
return AppDependencies.getPayments()
.getCurrencyExchange(false)
.getExchangeRate(SignalStore.paymentsValues().currentCurrency())
.exchange(a);
} catch (IOException e) {
Log.w(TAG, e);
return Optional.empty();
@@ -68,7 +68,7 @@ public final class FiatMoneyUtil {
if (amount.getTimestamp() > 0 && options.displayTime) {
return resources.getString(R.string.CurrencyAmountFormatter_s_at_s,
formattedAmount,
DateUtils.getTimeString(ApplicationDependencies.getApplication(), Locale.getDefault(), amount.getTimestamp()));
DateUtils.getTimeString(AppDependencies.getApplication(), Locale.getDefault(), amount.getTimestamp()));
}
return formattedAmount;
}

View File

@@ -7,7 +7,7 @@ import androidx.annotation.RawRes;
import com.mobilecoin.lib.ClientConfig;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.whispersystems.signalservice.internal.push.AuthCredentials;
@@ -45,7 +45,7 @@ public abstract class MobileCoinConfig {
}
protected static Set<X509Certificate> getTrustRoots(@RawRes int pemResource) {
try (InputStream inputStream = ApplicationDependencies.getApplication().getResources().openRawResource(pemResource)) {
try (InputStream inputStream = AppDependencies.getApplication().getResources().openRawResource(pemResource)) {
Collection<? extends Certificate> certificates = CertificateFactory.getInstance("X.509")
.generateCertificates(inputStream);

View File

@@ -13,7 +13,7 @@ import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.util.DateUtils;
import org.whispersystems.signalservice.api.payments.Currency;
import org.whispersystems.signalservice.api.payments.FormatterOptions;
@@ -101,7 +101,7 @@ public final class MoneyView extends AppCompatTextView {
if (timestamp > 0L) {
balanceSpan = new SpannableString(getResources().getString(R.string.CurrencyAmountFormatter_s_at_s,
balance,
DateUtils.getTimeString(ApplicationDependencies.getApplication(), Locale.getDefault(), timestamp)));
DateUtils.getTimeString(AppDependencies.getApplication(), Locale.getDefault(), timestamp)));
} else {
balanceSpan = new SpannableString(balance);
}

View File

@@ -7,7 +7,7 @@ import org.signal.core.util.concurrent.SignalExecutors;
import org.thoughtcrime.securesms.database.DatabaseObserver;
import org.thoughtcrime.securesms.database.PaymentTable;
import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.util.concurrent.SerialMonoLifoExecutor;
import java.util.UUID;
@@ -30,12 +30,12 @@ public final class PaymentTransactionLiveData extends LiveData<PaymentTable.Paym
@Override
protected void onActive() {
getPaymentTransaction();
ApplicationDependencies.getDatabaseObserver().registerPaymentObserver(paymentId, observer);
AppDependencies.getDatabaseObserver().registerPaymentObserver(paymentId, observer);
}
@Override
protected void onInactive() {
ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer);
AppDependencies.getDatabaseObserver().unregisterObserver(observer);
}
private void getPaymentTransaction() {

View File

@@ -4,7 +4,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.WorkerThread;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
import org.whispersystems.signalservice.api.payments.CurrencyConversion;
@@ -46,7 +46,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 = ApplicationDependencies.getSignalServiceAccountManager().getCurrencyConversions();
CurrencyConversions newCurrencyConversions = AppDependencies.getSignalServiceAccountManager().getCurrencyConversions();
if (currencyConversions == null || (newCurrencyConversions != null && newCurrencyConversions.getTimestamp() > currencyConversions.getTimestamp())) {
currencyConversions = newCurrencyConversions;
}

View File

@@ -7,7 +7,7 @@ import androidx.annotation.WorkerThread;
import org.signal.core.util.concurrent.SignalExecutors;
import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import java.util.UUID;
import java.util.concurrent.Executor;
@@ -26,13 +26,13 @@ public class UnreadPaymentsRepository {
@WorkerThread
private void markAllPaymentsSeenInternal() {
Context context = ApplicationDependencies.getApplication();
Context context = AppDependencies.getApplication();
SignalDatabase.payments().markAllSeen();
}
@WorkerThread
private void markPaymentSeenInternal(@NonNull UUID paymentId) {
Context context = ApplicationDependencies.getApplication();
Context context = AppDependencies.getApplication();
SignalDatabase.payments().markPaymentSeen(paymentId);
}

View File

@@ -6,7 +6,7 @@ import androidx.core.util.Consumer;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.jobs.PaymentLedgerUpdateJob;
import org.thoughtcrime.securesms.jobs.ProfileUploadJob;
import org.thoughtcrime.securesms.keyvalue.PaymentsValues;
@@ -30,7 +30,7 @@ class PaymentsRecoveryPhraseRepository {
case ENTROPY_CHANGED:
Log.i(TAG, "restoreMnemonic: mnemonic resulted in entropy mismatch, flushing cached values");
SignalDatabase.payments().deleteAll();
ApplicationDependencies.getPayments().closeWallet();
AppDependencies.getPayments().closeWallet();
updateProfileAndFetchLedger();
break;
case ENTROPY_UNCHANGED:
@@ -47,9 +47,9 @@ class PaymentsRecoveryPhraseRepository {
}
private void updateProfileAndFetchLedger() {
ApplicationDependencies.getJobManager()
.startChain(new ProfileUploadJob())
.then(PaymentLedgerUpdateJob.updateLedger())
.enqueue();
AppDependencies.getJobManager()
.startChain(new ProfileUploadJob())
.then(PaymentLedgerUpdateJob.updateLedger())
.enqueue();
}
}

View File

@@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.logging.Log;
import org.signal.core.util.money.FiatMoney;
import org.thoughtcrime.securesms.database.PaymentTable.PaymentTransaction;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.payments.CreatePaymentDetails;
import org.thoughtcrime.securesms.payments.FiatMoneyUtil;
@@ -201,7 +201,7 @@ final class ConfirmPaymentViewModel extends ViewModel {
return modelClass.cast(new ConfirmPaymentViewModel(new ConfirmPaymentState(createPaymentDetails.getPayee(),
createPaymentDetails.getAmount(),
createPaymentDetails.getNote()),
new ConfirmPaymentRepository(ApplicationDependencies.getPayments().getWallet())));
new ConfirmPaymentRepository(AppDependencies.getPayments().getWallet())));
}
}
}

View File

@@ -12,7 +12,7 @@ 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.dependencies.AppDependencies;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.payments.Balance;
import org.thoughtcrime.securesms.payments.CreatePaymentDetails;
@@ -74,15 +74,15 @@ public class CreatePaymentViewModel extends ViewModel {
LiveData<Optional<CurrencyExchange.ExchangeRate>> liveExchangeRate = LiveDataUtil.mapAsync(SignalStore.paymentsValues().liveCurrentCurrency(),
currency -> {
try {
return Optional.ofNullable(ApplicationDependencies.getPayments()
.getCurrencyExchange(true)
.getExchangeRate(currency));
return Optional.ofNullable(AppDependencies.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.ofNullable(ApplicationDependencies.getPayments()
.getCurrencyExchange(false)
.getExchangeRate(currency));
return Optional.ofNullable(AppDependencies.getPayments()
.getCurrencyExchange(false)
.getExchangeRate(currency));
} catch (IOException e2) {
Log.w(TAG, "Unable to get any exchange data", e2);
return Optional.empty();
@@ -90,7 +90,7 @@ public class CreatePaymentViewModel extends ViewModel {
}
});
inputState.update(liveExchangeRate, (rate, state) -> updateAmount(ApplicationDependencies.getApplication(), state.updateExchangeRate(rate), AmountKeyboardGlyph.NONE));
inputState.update(liveExchangeRate, (rate, state) -> updateAmount(AppDependencies.getApplication(), state.updateExchangeRate(rate), AmountKeyboardGlyph.NONE));
}
@NonNull LiveData<Boolean> getEnclaveFailure() {

View File

@@ -11,7 +11,7 @@ import androidx.navigation.Navigation;
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.jobs.PaymentLedgerUpdateJob;
import org.thoughtcrime.securesms.payments.preferences.details.PaymentDetailsFragmentArgs;
import org.thoughtcrime.securesms.payments.preferences.details.PaymentDetailsParcelable;
@@ -58,7 +58,7 @@ public class PaymentsActivity extends PassphraseRequiredActivity {
dynamicTheme.onResume(this);
ApplicationDependencies.getJobManager()
.add(PaymentLedgerUpdateJob.updateLedger());
AppDependencies.getJobManager()
.add(PaymentLedgerUpdateJob.updateLedger());
}
}

View File

@@ -5,7 +5,7 @@ import androidx.core.util.Consumer;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.jobs.PaymentLedgerUpdateJob;
import org.thoughtcrime.securesms.jobs.ProfileUploadJob;
import org.thoughtcrime.securesms.jobs.SendPaymentsActivatedJob;
@@ -25,11 +25,11 @@ public class PaymentsHomeRepository {
SignalExecutors.BOUNDED.execute(() -> {
SignalStore.paymentsValues().setMobileCoinPaymentsEnabled(true);
try {
ProfileUtil.uploadProfile(ApplicationDependencies.getApplication());
ApplicationDependencies.getJobManager()
.startChain(PaymentLedgerUpdateJob.updateLedger())
.then(new SendPaymentsActivatedJob())
.enqueue();
ProfileUtil.uploadProfile(AppDependencies.getApplication());
AppDependencies.getJobManager()
.startChain(PaymentLedgerUpdateJob.updateLedger())
.then(new SendPaymentsActivatedJob())
.enqueue();
callback.onComplete(null);
} catch (PaymentsRegionException e) {
SignalStore.paymentsValues().setMobileCoinPaymentsEnabled(false);
@@ -50,7 +50,7 @@ public class PaymentsHomeRepository {
private void tryToRestoreProfile() {
try {
ProfileUtil.uploadProfile(ApplicationDependencies.getApplication());
ProfileUtil.uploadProfile(AppDependencies.getApplication());
Log.i(TAG, "Restored profile");
} catch (IOException e) {
Log.w(TAG, "Problem uploading profile", e);
@@ -60,7 +60,7 @@ public class PaymentsHomeRepository {
public void deactivatePayments(@NonNull Consumer<Boolean> consumer) {
SignalExecutors.BOUNDED.execute(() -> {
SignalStore.paymentsValues().setMobileCoinPaymentsEnabled(false);
ApplicationDependencies.getJobManager().add(new ProfileUploadJob());
AppDependencies.getJobManager().add(new ProfileUploadJob());
consumer.accept(!SignalStore.paymentsValues().mobileCoinPaymentsEnabled());
});
}

View File

@@ -13,7 +13,7 @@ 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;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.keyvalue.PaymentsAvailability;
import org.thoughtcrime.securesms.keyvalue.PaymentsValues;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
@@ -284,7 +284,7 @@ public class PaymentsHomeViewModel extends ViewModel {
//noinspection ConstantConditions
return modelClass.cast(new PaymentsHomeViewModel(new PaymentsHomeRepository(),
new PaymentsRepository(),
new CurrencyExchangeRepository(ApplicationDependencies.getPayments())));
new CurrencyExchangeRepository(AppDependencies.getPayments())));
}
}

View File

@@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.settings.SettingHeader;
import org.thoughtcrime.securesms.components.settings.SettingProgress;
import org.thoughtcrime.securesms.components.settings.SingleSelectSetting;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.payments.currency.CurrencyExchange;
import org.thoughtcrime.securesms.payments.currency.CurrencyExchangeRepository;
@@ -206,7 +206,7 @@ public final class SetCurrencyViewModel extends ViewModel {
@Override
public @NonNull <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
//noinspection ConstantConditions
return modelClass.cast(new SetCurrencyViewModel(new CurrencyExchangeRepository(ApplicationDependencies.getPayments())));
return modelClass.cast(new SetCurrencyViewModel(new CurrencyExchangeRepository(AppDependencies.getPayments())));
}
}
}

View File

@@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.payments.preferences.addmoney
import androidx.annotation.MainThread
import io.reactivex.rxjava3.core.Single
import io.reactivex.rxjava3.schedulers.Schedulers
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.signal.core.util.Result as SignalResult
@@ -15,7 +15,7 @@ internal class PaymentsAddMoneyRepository {
}
return Single.fromCallable<SignalResult<AddressAndUri, Error>> {
val publicAddress = ApplicationDependencies.getPayments().wallet.mobileCoinPublicAddress
val publicAddress = AppDependencies.payments.wallet.mobileCoinPublicAddress
val paymentAddressBase58 = publicAddress.paymentAddressBase58
val paymentAddressUri = publicAddress.paymentAddressUri
SignalResult.success(AddressAndUri(paymentAddressBase58, paymentAddressUri))

View File

@@ -7,7 +7,7 @@ import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.payments.MobileCoinPublicAddress;
final class PaymentsTransferViewModel extends ViewModel {
@@ -16,7 +16,7 @@ final class PaymentsTransferViewModel extends ViewModel {
private final MobileCoinPublicAddress ownAddress;
PaymentsTransferViewModel() {
ownAddress = ApplicationDependencies.getPayments().getWallet().getMobileCoinPublicAddress();
ownAddress = AppDependencies.getPayments().getWallet().getMobileCoinPublicAddress();
}
LiveData<String> getAddress() {