mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-19 23:00:22 +01:00
Move RemoteConfigResponse.
This commit is contained in:
committed by
Michelle Tang
parent
1ce41edc7f
commit
6339b38dee
-12
@@ -1,12 +0,0 @@
|
||||
package org.whispersystems.signalservice.api.remoteconfig
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
|
||||
/**
|
||||
* Response class used in /v2/config. [serverEpochTime] should only be used in REST calls.
|
||||
*/
|
||||
data class RemoteConfigResponse(
|
||||
@JsonProperty
|
||||
val config: Map<String, String> = emptyMap(),
|
||||
var serverEpochTime: Long = 0
|
||||
)
|
||||
-9
@@ -67,7 +67,6 @@ import org.whispersystems.signalservice.api.push.exceptions.SubmitVerificationCo
|
||||
import org.whispersystems.signalservice.api.push.exceptions.TokenNotAcceptedException;
|
||||
import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException;
|
||||
import org.whispersystems.signalservice.api.registration.RestoreMethodBody;
|
||||
import org.whispersystems.signalservice.api.remoteconfig.RemoteConfigResponse;
|
||||
import org.whispersystems.signalservice.api.svr.Svr3Credentials;
|
||||
import org.whispersystems.signalservice.api.util.CredentialsProvider;
|
||||
import org.whispersystems.signalservice.api.util.Tls12SocketFactory;
|
||||
@@ -629,14 +628,6 @@ public class PushServiceSocket {
|
||||
}
|
||||
}
|
||||
|
||||
public RemoteConfigResponse getRemoteConfig() throws IOException {
|
||||
try (Response response = makeServiceRequest(REMOTE_CONFIG, "GET", jsonRequestBody(null), NO_HEADERS, NO_HANDLER, SealedSenderAccess.NONE, false)) {
|
||||
RemoteConfigResponse remoteConfigResponse = JsonUtil.fromJson(readBodyString(response), RemoteConfigResponse.class);
|
||||
remoteConfigResponse.setServerEpochTime(response.headers().get("X-Signal-Timestamp") != null ? Long.parseLong(response.headers().get("X-Signal-Timestamp")) : System.currentTimeMillis());
|
||||
return remoteConfigResponse;
|
||||
}
|
||||
}
|
||||
|
||||
public void cancelInFlightRequests() {
|
||||
synchronized (connections) {
|
||||
Log.w(TAG, "Canceling: " + connections.size());
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
package org.signal.network.api
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
import org.whispersystems.signalservice.api.NetworkResult
|
||||
import org.whispersystems.signalservice.api.remoteconfig.RemoteConfigResponse
|
||||
import org.whispersystems.signalservice.api.remoteconfig.RemoteConfigResult
|
||||
import org.whispersystems.signalservice.api.websocket.SignalWebSocket
|
||||
import org.whispersystems.signalservice.internal.get
|
||||
@@ -35,16 +35,6 @@ class RemoteConfigApi(val authWebSocket: SignalWebSocket.AuthenticatedWebSocket,
|
||||
val headers = if (eTag.isNotEmpty()) mapOf("If-None-Match" to eTag) else mapOf()
|
||||
val request = WebSocketRequestMessage.get("/v2/config", headers = headers)
|
||||
return NetworkResult.fromWebSocketRequest(signalWebSocket = authWebSocket, request = request, webSocketResponseConverter = RemoteConfigResultWebSocketResponseConverter())
|
||||
.fallback(predicate = { it is NetworkResult.StatusCodeError && it.code != 304 }) {
|
||||
NetworkResult.fromFetch {
|
||||
val response = pushServiceSocket.getRemoteConfig()
|
||||
val transformed = response.config.map { it.key to (it.value.lowercase(Locale.getDefault()).toBooleanStrictOrNull() ?: it.value) }.toMap()
|
||||
RemoteConfigResult(
|
||||
config = transformed,
|
||||
serverEpochTimeMilliseconds = response.serverEpochTime
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -70,3 +60,9 @@ class RemoteConfigApi(val authWebSocket: SignalWebSocket.AuthenticatedWebSocket,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private data class RemoteConfigResponse(
|
||||
@JsonProperty
|
||||
val config: Map<String, String> = emptyMap(),
|
||||
var serverEpochTime: Long = 0
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user