Disallow null response in Callback

This commit is contained in:
Niko Diamadis
2023-01-04 23:08:06 +01:00
parent 228b7fbba0
commit 50a21abf93
4 changed files with 9 additions and 4 deletions

View File

@@ -29,7 +29,7 @@ internal class MissedMessageUtil(private val api: MessageApi) {
var since: Long? = null
while (true) {
val pagedMessages = Api.execute(api.getMessages(10, since))
val messages = pagedMessages!!.messages
val messages = pagedMessages.messages
val filtered = filter(messages, till)
result.addAll(filtered)
if (messages.size != filtered.size ||

View File

@@ -5,12 +5,12 @@ import retrofit2.Call
internal object Api {
@Throws(ApiException::class)
fun <T> execute(call: Call<T>): T? {
fun <T> execute(call: Call<T>): T {
try {
val response = call.execute()
if (response.isSuccessful) {
return response.body()
return response.body() ?: throw ApiException("null response", response)
} else {
throw ApiException(response)
}

View File

@@ -18,6 +18,11 @@ internal class ApiException : Exception {
code = response.code()
}
constructor(exceptionBody: String, response: Response<*>) : super("Api Error", null) {
body = exceptionBody
code = response.code()
}
constructor(cause: Throwable?) : super("Request failed.", cause) {
code = 0
}

View File

@@ -600,7 +600,7 @@ internal class MessagesActivity :
.createService(ClientApi::class.java)
stopService(Intent(this@MessagesActivity, WebSocketService::class.java))
try {
val clients = Api.execute(api.clients) ?: emptyList()
val clients = Api.execute(api.clients)
var currentClient: Client? = null
for (client in clients) {
if (client.token == settings.token) {