mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-22 02:36:55 +00:00
Improve network reliability.
This commit is contained in:
@@ -132,8 +132,7 @@ public class BackgroundMessageRetriever {
|
||||
* care of it.
|
||||
*/
|
||||
public static boolean shouldIgnoreFetch() {
|
||||
return ApplicationDependencies.getAppForegroundObserver().isForegrounded() &&
|
||||
ApplicationDependencies.getSignalServiceNetworkAccess().supportsWebsockets();
|
||||
return ApplicationDependencies.getAppForegroundObserver().isForegrounded();
|
||||
}
|
||||
|
||||
private static String logSuffix(long startTime) {
|
||||
|
||||
@@ -132,7 +132,7 @@ public class IncomingMessageObserver {
|
||||
}
|
||||
|
||||
public boolean isDecryptionDrained() {
|
||||
return decryptionDrained || !networkAccess.supportsWebsockets();
|
||||
return decryptionDrained;
|
||||
}
|
||||
|
||||
public void notifyDecryptionsDrained() {
|
||||
@@ -174,13 +174,12 @@ public class IncomingMessageObserver {
|
||||
Log.d(TAG, "Removed old keep web socket open requests.");
|
||||
}
|
||||
|
||||
Log.d(TAG, String.format("Network: %s, Foreground: %s, FCM: %s, Stay open requests: [%s], Censored: %s, Supports websockets: %s, Registered: %s, Proxy: %s, Force websocket: %s",
|
||||
hasNetwork, appVisible, fcmEnabled, Util.join(keepAliveTokens.entrySet(), ","), networkAccess.isCensored(), networkAccess.supportsWebsockets(), registered, hasProxy, forceWebsocket));
|
||||
Log.d(TAG, String.format("Network: %s, Foreground: %s, FCM: %s, Stay open requests: [%s], Censored: %s, Registered: %s, Proxy: %s, Force websocket: %s",
|
||||
hasNetwork, appVisible, fcmEnabled, Util.join(keepAliveTokens.entrySet(), ","), networkAccess.isCensored(), registered, hasProxy, forceWebsocket));
|
||||
|
||||
return registered &&
|
||||
(appVisible || !fcmEnabled || forceWebsocket || Util.hasItems(keepAliveTokens)) &&
|
||||
hasNetwork &&
|
||||
networkAccess.supportsWebsockets();
|
||||
hasNetwork;
|
||||
}
|
||||
|
||||
private synchronized void waitForConnectionNecessary() {
|
||||
|
||||
@@ -22,7 +22,6 @@ import org.thoughtcrime.securesms.util.Base64
|
||||
import org.whispersystems.signalservice.api.push.TrustStore
|
||||
import org.whispersystems.signalservice.internal.configuration.SignalCdnUrl
|
||||
import org.whispersystems.signalservice.internal.configuration.SignalCdsiUrl
|
||||
import org.whispersystems.signalservice.internal.configuration.SignalContactDiscoveryUrl
|
||||
import org.whispersystems.signalservice.internal.configuration.SignalKeyBackupServiceUrl
|
||||
import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration
|
||||
import org.whispersystems.signalservice.internal.configuration.SignalServiceUrl
|
||||
@@ -70,11 +69,11 @@ open class SignalServiceNetworkAccess(context: Context) {
|
||||
private const val COUNTRY_CODE_UKRAINE = 380
|
||||
|
||||
private const val G_HOST = "reflector-nrgwuv7kwq-uc.a.run.app"
|
||||
private const val F_SERVICE_HOST = "textsecure-service.whispersystems.org.global.prod.fastly.net"
|
||||
private const val F_SERVICE_HOST = "chat-signal.global.ssl.fastly.net"
|
||||
private const val F_STORAGE_HOST = "storage.signal.org.global.prod.fastly.net"
|
||||
private const val F_CDN_HOST = "cdn.signal.org.global.prod.fastly.net"
|
||||
private const val F_CDN2_HOST = "cdn2.signal.org.global.prod.fastly.net"
|
||||
private const val F_DIRECTORY_HOST = "api.directory.signal.org.global.prod.fastly.net"
|
||||
private const val F_CDSI_HOST = "cdsi-signal.global.ssl.fastly.net"
|
||||
private const val F_KBS_HOST = "api.backup.signal.org.global.prod.fastly.net"
|
||||
|
||||
private val GMAPS_CONNECTION_SPEC = ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
|
||||
@@ -166,15 +165,13 @@ open class SignalServiceNetworkAccess(context: Context) {
|
||||
0 to fUrls.map { SignalCdnUrl(it, F_CDN_HOST, fTrustStore, APP_CONNECTION_SPEC) }.toTypedArray(),
|
||||
2 to fUrls.map { SignalCdnUrl(it, F_CDN2_HOST, fTrustStore, APP_CONNECTION_SPEC) }.toTypedArray(),
|
||||
),
|
||||
fUrls.map { SignalContactDiscoveryUrl(it, F_DIRECTORY_HOST, fTrustStore, APP_CONNECTION_SPEC) }.toTypedArray(),
|
||||
fUrls.map { SignalKeyBackupServiceUrl(it, F_KBS_HOST, fTrustStore, APP_CONNECTION_SPEC) }.toTypedArray(),
|
||||
fUrls.map { SignalStorageUrl(it, F_STORAGE_HOST, fTrustStore, APP_CONNECTION_SPEC) }.toTypedArray(),
|
||||
arrayOf(SignalCdsiUrl(BuildConfig.SIGNAL_CDSI_URL, serviceTrustStore)),
|
||||
fUrls.map { SignalCdsiUrl(it, F_CDSI_HOST, fTrustStore, APP_CONNECTION_SPEC) }.toTypedArray(),
|
||||
interceptors,
|
||||
Optional.of(DNS),
|
||||
Optional.empty(),
|
||||
zkGroupServerPublicParams,
|
||||
false
|
||||
)
|
||||
|
||||
private val censorshipConfiguration: Map<Int, SignalServiceConfiguration> = mapOf(
|
||||
@@ -218,7 +215,6 @@ open class SignalServiceNetworkAccess(context: Context) {
|
||||
0 to arrayOf(SignalCdnUrl(BuildConfig.SIGNAL_CDN_URL, serviceTrustStore)),
|
||||
2 to arrayOf(SignalCdnUrl(BuildConfig.SIGNAL_CDN2_URL, serviceTrustStore))
|
||||
),
|
||||
arrayOf(SignalContactDiscoveryUrl(BuildConfig.SIGNAL_CONTACT_DISCOVERY_URL, serviceTrustStore)),
|
||||
arrayOf(SignalKeyBackupServiceUrl(BuildConfig.SIGNAL_KEY_BACKUP_URL, serviceTrustStore)),
|
||||
arrayOf(SignalStorageUrl(BuildConfig.STORAGE_URL, serviceTrustStore)),
|
||||
arrayOf(SignalCdsiUrl(BuildConfig.SIGNAL_CDSI_URL, serviceTrustStore)),
|
||||
@@ -226,7 +222,6 @@ open class SignalServiceNetworkAccess(context: Context) {
|
||||
Optional.of(DNS),
|
||||
if (SignalStore.proxy().isProxyEnabled) Optional.ofNullable(SignalStore.proxy().proxy) else Optional.empty(),
|
||||
zkGroupServerPublicParams,
|
||||
true
|
||||
)
|
||||
|
||||
open fun getConfiguration(): SignalServiceConfiguration {
|
||||
@@ -269,17 +264,12 @@ open class SignalServiceNetworkAccess(context: Context) {
|
||||
return defaultCensoredCountryCodes.contains(countryCode)
|
||||
}
|
||||
|
||||
fun supportsWebsockets(): Boolean {
|
||||
return !isCensored() || getConfiguration().supportsWebSockets()
|
||||
}
|
||||
|
||||
private fun buildGConfiguration(
|
||||
hostConfigs: List<HostConfig>
|
||||
): SignalServiceConfiguration {
|
||||
val serviceUrls: Array<SignalServiceUrl> = hostConfigs.map { SignalServiceUrl("${it.baseUrl}/service", it.host, gTrustStore, it.connectionSpec) }.toTypedArray()
|
||||
val cdnUrls: Array<SignalCdnUrl> = hostConfigs.map { SignalCdnUrl("${it.baseUrl}/cdn", it.host, gTrustStore, it.connectionSpec) }.toTypedArray()
|
||||
val cdn2Urls: Array<SignalCdnUrl> = hostConfigs.map { SignalCdnUrl("${it.baseUrl}/cdn2", it.host, gTrustStore, it.connectionSpec) }.toTypedArray()
|
||||
val cdsUrls: Array<SignalContactDiscoveryUrl> = hostConfigs.map { SignalContactDiscoveryUrl("${it.baseUrl}/directory", it.host, gTrustStore, it.connectionSpec) }.toTypedArray()
|
||||
val kbsUrls: Array<SignalKeyBackupServiceUrl> = hostConfigs.map { SignalKeyBackupServiceUrl("${it.baseUrl}/backup", it.host, gTrustStore, it.connectionSpec) }.toTypedArray()
|
||||
val storageUrls: Array<SignalStorageUrl> = hostConfigs.map { SignalStorageUrl("${it.baseUrl}/storage", it.host, gTrustStore, it.connectionSpec) }.toTypedArray()
|
||||
val cdsiUrls: Array<SignalCdsiUrl> = hostConfigs.map { SignalCdsiUrl("${it.baseUrl}/cdsi", it.host, gTrustStore, it.connectionSpec) }.toTypedArray()
|
||||
@@ -290,7 +280,6 @@ open class SignalServiceNetworkAccess(context: Context) {
|
||||
0 to cdnUrls,
|
||||
2 to cdn2Urls
|
||||
),
|
||||
cdsUrls,
|
||||
kbsUrls,
|
||||
storageUrls,
|
||||
cdsiUrls,
|
||||
@@ -298,7 +287,6 @@ open class SignalServiceNetworkAccess(context: Context) {
|
||||
Optional.of(DNS),
|
||||
Optional.empty(),
|
||||
zkGroupServerPublicParams,
|
||||
true
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user