Convert all account based calls to WebSocket.

This commit is contained in:
Cody Henthorne
2025-03-07 15:48:21 -05:00
committed by Greyson Parrelli
parent 6d115a912d
commit 305b380fef
30 changed files with 748 additions and 615 deletions

View File

@@ -5,22 +5,22 @@ import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.node.ObjectNode
import io.reactivex.rxjava3.core.Single
import io.reactivex.rxjava3.schedulers.Schedulers
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.net.SignalNetwork
import org.thoughtcrime.securesms.providers.BlobProvider
import org.thoughtcrime.securesms.util.JsonUtils
import org.whispersystems.signalservice.api.SignalServiceAccountManager
import java.io.IOException
import org.whispersystems.signalservice.api.NetworkResult
class ExportAccountDataRepository(
private val accountManager: SignalServiceAccountManager = AppDependencies.signalServiceAccountManager
) {
class ExportAccountDataRepository {
fun downloadAccountDataReport(exportAsJson: Boolean): Single<ExportedReport> {
return Single.create {
try {
it.onSuccess(generateAccountDataReport(accountManager.accountDataReport, exportAsJson))
} catch (e: IOException) {
it.onError(e)
when (val result = SignalNetwork.account.accountDataReport()) {
is NetworkResult.Success -> {
it.onSuccess(generateAccountDataReport(result.result, exportAsJson))
}
else -> {
it.onError(result.getCause()!!)
}
}
}.subscribeOn(Schedulers.io())
}

View File

@@ -28,6 +28,7 @@ import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.jobs.RefreshAttributesJob
import org.thoughtcrime.securesms.keyvalue.CertificateType
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.net.SignalNetwork
import org.thoughtcrime.securesms.pin.SvrRepository
import org.thoughtcrime.securesms.pin.SvrWrongPinException
import org.thoughtcrime.securesms.recipients.Recipient
@@ -266,7 +267,7 @@ class ChangeNumberRepository(
SignalStore.misc.setPendingChangeNumberMetadata(metadata)
withContext(Dispatchers.IO) {
result = accountManager.registrationApi.changeNumber(request)
result = SignalNetwork.account.changeNumber(request)
}
val possibleError = result.getCause() as? MismatchedDevicesException

View File

@@ -9,12 +9,13 @@ import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.net.SignalNetwork
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.storage.StorageSyncHelper
import org.thoughtcrime.securesms.util.TextSecurePreferences
import org.whispersystems.signalservice.api.NetworkResultUtil
import org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException
import java.io.IOException
import java.util.Optional
import java.util.concurrent.ExecutionException
private val TAG = Log.tag(AdvancedPrivacySettingsRepository::class.java)
@@ -24,9 +25,8 @@ class AdvancedPrivacySettingsRepository(private val context: Context) {
fun disablePushMessages(consumer: (DisablePushMessagesResult) -> Unit) {
SignalExecutors.BOUNDED.execute {
val result = try {
val accountManager = AppDependencies.signalServiceAccountManager
try {
accountManager.setGcmId(Optional.empty())
NetworkResultUtil.toBasicLegacy(SignalNetwork.account.clearFcmToken())
} catch (e: AuthorizationFailedException) {
Log.w(TAG, e)
}