From 50a21abf93d28ec1576854196e4264d0161bdee0 Mon Sep 17 00:00:00 2001 From: Niko Diamadis Date: Wed, 4 Jan 2023 23:08:06 +0100 Subject: [PATCH] Disallow null response in Callback --- app/src/main/java/com/github/gotify/MissedMessageUtil.kt | 2 +- app/src/main/java/com/github/gotify/api/Api.kt | 4 ++-- app/src/main/java/com/github/gotify/api/ApiException.kt | 5 +++++ .../main/java/com/github/gotify/messages/MessagesActivity.kt | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/github/gotify/MissedMessageUtil.kt b/app/src/main/java/com/github/gotify/MissedMessageUtil.kt index ae42ad1..6e31f4c 100644 --- a/app/src/main/java/com/github/gotify/MissedMessageUtil.kt +++ b/app/src/main/java/com/github/gotify/MissedMessageUtil.kt @@ -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 || diff --git a/app/src/main/java/com/github/gotify/api/Api.kt b/app/src/main/java/com/github/gotify/api/Api.kt index 5874e95..2a7fc38 100644 --- a/app/src/main/java/com/github/gotify/api/Api.kt +++ b/app/src/main/java/com/github/gotify/api/Api.kt @@ -5,12 +5,12 @@ import retrofit2.Call internal object Api { @Throws(ApiException::class) - fun execute(call: Call): T? { + fun execute(call: Call): T { try { val response = call.execute() if (response.isSuccessful) { - return response.body() + return response.body() ?: throw ApiException("null response", response) } else { throw ApiException(response) } diff --git a/app/src/main/java/com/github/gotify/api/ApiException.kt b/app/src/main/java/com/github/gotify/api/ApiException.kt index 7b0971b..91f2c98 100644 --- a/app/src/main/java/com/github/gotify/api/ApiException.kt +++ b/app/src/main/java/com/github/gotify/api/ApiException.kt @@ -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 } diff --git a/app/src/main/java/com/github/gotify/messages/MessagesActivity.kt b/app/src/main/java/com/github/gotify/messages/MessagesActivity.kt index 553bfa6..6917e74 100644 --- a/app/src/main/java/com/github/gotify/messages/MessagesActivity.kt +++ b/app/src/main/java/com/github/gotify/messages/MessagesActivity.kt @@ -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) {