diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteConfigRefreshJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteConfigRefreshJob.kt index 9000fd5b49..b440d5f7d0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteConfigRefreshJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteConfigRefreshJob.kt @@ -60,7 +60,7 @@ class RemoteConfigRefreshJob private constructor(parameters: Parameters) : Job(p if (result.code == 304) { Log.i(TAG, "Remote config has not changed since last pull.") SignalStore.remoteConfig.lastFetchTime = System.currentTimeMillis() - SignalStore.misc.setLastKnownServerTime(result.headers[SignalWebSocket.SERVER_DELIVERED_TIMESTAMP_HEADER]?.toLongOrNull() ?: System.currentTimeMillis(), System.currentTimeMillis()) + SignalStore.misc.setLastKnownServerTime(result.header(SignalWebSocket.SERVER_DELIVERED_TIMESTAMP_HEADER)?.toLongOrNull() ?: System.currentTimeMillis(), System.currentTimeMillis()) Result.success() } else { Result.retry(defaultBackoff()) diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/NetworkResult.kt b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/NetworkResult.kt index 55e98b743b..56fead328c 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/NetworkResult.kt +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/NetworkResult.kt @@ -201,8 +201,9 @@ sealed class NetworkResult( data class NetworkError(val exception: IOException) : NetworkResult() /** Indicates we got a response, but it was a non-2xx response. */ - data class StatusCodeError(val code: Int, val stringBody: String?, val binaryBody: ByteArray?, val headers: Map, val exception: NonSuccessfulResponseCodeException) : NetworkResult() { + data class StatusCodeError(val code: Int, val stringBody: String?, val binaryBody: ByteArray?, private val headers: Map, val exception: NonSuccessfulResponseCodeException) : NetworkResult() { constructor(e: NonSuccessfulResponseCodeException) : this(e.code, e.stringBody, e.binaryBody, e.headers, e) + constructor(result: StatusCodeError<*>) : this(result.code, result.stringBody, result.binaryBody, result.headers, result.exception) inline fun parseJsonBody(): T? { return try { @@ -282,7 +283,7 @@ sealed class NetworkResult( is NetworkError -> NetworkError(exception) is ApplicationError -> ApplicationError(throwable) - is StatusCodeError -> StatusCodeError(code, stringBody, binaryBody, headers, exception) + is StatusCodeError -> StatusCodeError(this) } return map.runOnStatusCodeError(statusCodeErrorActions).runOnApplicationError(applicationErrorActions) @@ -334,7 +335,7 @@ sealed class NetworkResult( is Success -> result(this.result) is NetworkError -> NetworkError(exception) is ApplicationError -> ApplicationError(throwable) - is StatusCodeError -> StatusCodeError(code, stringBody, binaryBody, headers, exception) + is StatusCodeError -> StatusCodeError(this) } return then.runOnStatusCodeError(statusCodeErrorActions).runOnApplicationError(applicationErrorActions)