Improve registration network reliability.

main
Nicholas 2023-03-06 15:50:29 -05:00 zatwierdzone przez Alex Hart
rodzic 7c94d570cb
commit bd373a3045
2 zmienionych plików z 12 dodań i 12 usunięć

Wyświetl plik

@ -22,11 +22,11 @@ public class AccountManagerFactory {
public static @NonNull SignalServiceAccountManager createAuthenticated(@NonNull Context context, public static @NonNull SignalServiceAccountManager createAuthenticated(@NonNull Context context,
@NonNull ACI aci, @NonNull ACI aci,
@NonNull PNI pni, @NonNull PNI pni,
@NonNull String number, @NonNull String e164,
int deviceId, int deviceId,
@NonNull String password) @NonNull String password)
{ {
if (ApplicationDependencies.getSignalServiceNetworkAccess().isCensored(number)) { if (ApplicationDependencies.getSignalServiceNetworkAccess().isCensored(e164)) {
SignalExecutors.BOUNDED.execute(() -> { SignalExecutors.BOUNDED.execute(() -> {
try { try {
ProviderInstaller.installIfNeeded(context); ProviderInstaller.installIfNeeded(context);
@ -36,10 +36,10 @@ public class AccountManagerFactory {
}); });
} }
return new SignalServiceAccountManager(ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(number), return new SignalServiceAccountManager(ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(e164),
aci, aci,
pni, pni,
number, e164,
deviceId, deviceId,
password, password,
BuildConfig.SIGNAL_AGENT, BuildConfig.SIGNAL_AGENT,
@ -51,11 +51,11 @@ public class AccountManagerFactory {
* Should only be used during registration when you haven't yet been assigned an ACI. * Should only be used during registration when you haven't yet been assigned an ACI.
*/ */
public static @NonNull SignalServiceAccountManager createUnauthenticated(@NonNull Context context, public static @NonNull SignalServiceAccountManager createUnauthenticated(@NonNull Context context,
@NonNull String number, @NonNull String e164,
int deviceId, int deviceId,
@NonNull String password) @NonNull String password)
{ {
if (new SignalServiceNetworkAccess(context).isCensored(number)) { if (new SignalServiceNetworkAccess(context).isCensored(e164)) {
SignalExecutors.BOUNDED.execute(() -> { SignalExecutors.BOUNDED.execute(() -> {
try { try {
ProviderInstaller.installIfNeeded(context); ProviderInstaller.installIfNeeded(context);
@ -65,10 +65,10 @@ public class AccountManagerFactory {
}); });
} }
return new SignalServiceAccountManager(ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(number), return new SignalServiceAccountManager(ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(e164),
null, null,
null, null,
number, e164,
deviceId, deviceId,
password, password,
BuildConfig.SIGNAL_AGENT, BuildConfig.SIGNAL_AGENT,

Wyświetl plik

@ -1,6 +1,7 @@
package org.thoughtcrime.securesms.push package org.thoughtcrime.securesms.push
import android.content.Context import android.content.Context
import com.google.i18n.phonenumbers.PhoneNumberUtil
import okhttp3.CipherSuite import okhttp3.CipherSuite
import okhttp3.ConnectionSpec import okhttp3.ConnectionSpec
import okhttp3.Dns import okhttp3.Dns
@ -17,7 +18,6 @@ import org.thoughtcrime.securesms.net.RemoteDeprecationDetectorInterceptor
import org.thoughtcrime.securesms.net.SequentialDns import org.thoughtcrime.securesms.net.SequentialDns
import org.thoughtcrime.securesms.net.StandardUserAgentInterceptor import org.thoughtcrime.securesms.net.StandardUserAgentInterceptor
import org.thoughtcrime.securesms.net.StaticDns import org.thoughtcrime.securesms.net.StaticDns
import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter
import org.thoughtcrime.securesms.util.Base64 import org.thoughtcrime.securesms.util.Base64
import org.whispersystems.signalservice.api.push.TrustStore import org.whispersystems.signalservice.api.push.TrustStore
import org.whispersystems.signalservice.internal.configuration.SignalCdnUrl import org.whispersystems.signalservice.internal.configuration.SignalCdnUrl
@ -228,12 +228,12 @@ open class SignalServiceNetworkAccess(context: Context) {
return getConfiguration(SignalStore.account().e164) return getConfiguration(SignalStore.account().e164)
} }
open fun getConfiguration(localNumber: String?): SignalServiceConfiguration { open fun getConfiguration(e164: String?): SignalServiceConfiguration {
if (localNumber == null || SignalStore.proxy().isProxyEnabled) { if (e164 == null || SignalStore.proxy().isProxyEnabled) {
return uncensoredConfiguration return uncensoredConfiguration
} }
val countryCode: Int = PhoneNumberFormatter.getLocalCountryCode() val countryCode: Int = PhoneNumberUtil.getInstance().parse(e164, null).countryCode
return when (SignalStore.settings().censorshipCircumventionEnabled) { return when (SignalStore.settings().censorshipCircumventionEnabled) {
SettingsValues.CensorshipCircumventionEnabled.ENABLED -> { SettingsValues.CensorshipCircumventionEnabled.ENABLED -> {