From aeddf508751cdf908d177b070ef334918c643bf2 Mon Sep 17 00:00:00 2001 From: Niko Diamadis Date: Thu, 5 Jan 2023 22:51:59 +0100 Subject: [PATCH] Disallow null response of SuccessCallback --- .../main/java/com/github/gotify/MissedMessageUtil.kt | 6 +++--- app/src/main/java/com/github/gotify/api/Callback.kt | 6 ++++-- .../com/github/gotify/init/InitializationActivity.kt | 12 ++++++------ .../java/com/github/gotify/login/LoginActivity.kt | 4 ++-- .../gotify/messages/provider/ApplicationHolder.kt | 10 ++++------ .../com/github/gotify/service/WebSocketService.kt | 4 ++-- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/github/gotify/MissedMessageUtil.kt b/app/src/main/java/com/github/gotify/MissedMessageUtil.kt index 6e31f4c..4862646 100644 --- a/app/src/main/java/com/github/gotify/MissedMessageUtil.kt +++ b/app/src/main/java/com/github/gotify/MissedMessageUtil.kt @@ -10,10 +10,10 @@ import com.github.gotify.client.model.PagedMessages import com.github.gotify.log.Log internal class MissedMessageUtil(private val api: MessageApi) { - fun lastReceivedMessage(successCallback: SuccessCallback) { + fun lastReceivedMessage(successCallback: SuccessCallback) { api.getMessages(1, 0L).enqueue( - Callback.call({ messages: PagedMessages? -> - if (messages!!.messages.size == 1) { + Callback.call({ messages: PagedMessages -> + if (messages.messages.size == 1) { successCallback.onSuccess(messages.messages[0].id) } else { successCallback.onSuccess(NO_MESSAGES) diff --git a/app/src/main/java/com/github/gotify/api/Callback.kt b/app/src/main/java/com/github/gotify/api/Callback.kt index c18badc..e1376be 100644 --- a/app/src/main/java/com/github/gotify/api/Callback.kt +++ b/app/src/main/java/com/github/gotify/api/Callback.kt @@ -10,7 +10,7 @@ internal class Callback private constructor( private val onError: ErrorCallback ) { fun interface SuccessCallback { - fun onSuccess(data: T?) + fun onSuccess(data: T) } fun interface ErrorCallback { @@ -20,7 +20,9 @@ internal class Callback private constructor( private class RetrofitCallback(private val callback: Callback) : retrofit2.Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { - callback.onSuccess.onSuccess(response.body()) + callback.onSuccess.onSuccess( + response.body() ?: throw ApiException("null response", response) + ) } else { callback.onError.onError(ApiException(response)) } diff --git a/app/src/main/java/com/github/gotify/init/InitializationActivity.kt b/app/src/main/java/com/github/gotify/init/InitializationActivity.kt index ef4f2d5..7d4aeca 100644 --- a/app/src/main/java/com/github/gotify/init/InitializationActivity.kt +++ b/app/src/main/java/com/github/gotify/init/InitializationActivity.kt @@ -59,12 +59,12 @@ internal class InitializationActivity : AppCompatActivity() { private fun tryAuthenticate() { ClientFactory.userApiWithToken(settings) - .currentUser() - .enqueue( - Callback.callInUI(this, { if (it != null) authenticated(it) }) { apiException -> - failed(apiException) - } - ) + .currentUser() + .enqueue( + Callback.callInUI(this, { authenticated(it) }) { apiException -> + failed(apiException) + } + ) } private fun failed(exception: ApiException) { diff --git a/app/src/main/java/com/github/gotify/login/LoginActivity.kt b/app/src/main/java/com/github/gotify/login/LoginActivity.kt index 9039220..b0f69dd 100644 --- a/app/src/main/java/com/github/gotify/login/LoginActivity.kt +++ b/app/src/main/java/com/github/gotify/login/LoginActivity.kt @@ -194,7 +194,7 @@ internal class LoginActivity : AppCompatActivity() { settings.url = url binding.checkurlProgress.visibility = View.GONE binding.checkurl.visibility = View.VISIBLE - binding.checkurl.text = getString(R.string.found_gotify_version, version?.version) + binding.checkurl.text = getString(R.string.found_gotify_version, version.version) binding.username.visibility = View.VISIBLE binding.username.requestFocus() binding.password.visibility = View.VISIBLE @@ -254,7 +254,7 @@ internal class LoginActivity : AppCompatActivity() { val newClient = Client().name(nameProvider.text.toString()) client.createService(ClientApi::class.java) .createClient(newClient) - .enqueue(Callback.callInUI(this, { if (it != null) onCreatedClient(it) }) { + .enqueue(Callback.callInUI(this, { onCreatedClient(it) }) { onFailedToCreateClient() }) } diff --git a/app/src/main/java/com/github/gotify/messages/provider/ApplicationHolder.kt b/app/src/main/java/com/github/gotify/messages/provider/ApplicationHolder.kt index 5396d98..abcfe6f 100644 --- a/app/src/main/java/com/github/gotify/messages/provider/ApplicationHolder.kt +++ b/app/src/main/java/com/github/gotify/messages/provider/ApplicationHolder.kt @@ -19,12 +19,10 @@ internal class ApplicationHolder(private val activity: Activity, private val cli client.createService(ApplicationApi::class.java) .apps .enqueue( - Callback.callInUI( - activity, - { apps: List? -> - if (apps != null) onReceiveApps(apps) - } - ) { e: ApiException -> onFailedApps(e) }) + Callback.callInUI(activity, { onReceiveApps(it) }) { e: ApiException -> + onFailedApps(e) + } + ) } private fun onReceiveApps(apps: List) { diff --git a/app/src/main/java/com/github/gotify/service/WebSocketService.kt b/app/src/main/java/com/github/gotify/service/WebSocketService.kt index 8a89cc4..0c42226 100644 --- a/app/src/main/java/com/github/gotify/service/WebSocketService.kt +++ b/app/src/main/java/com/github/gotify/service/WebSocketService.kt @@ -80,7 +80,7 @@ internal class WebSocketService : Service() { showForegroundNotification(getString(R.string.websocket_init)) if (lastReceivedMessage.get() == NOT_LOADED) { - missingMessageUtil.lastReceivedMessage { lastReceivedMessage.set(it ?: 0L) } + missingMessageUtil.lastReceivedMessage { lastReceivedMessage.set(it) } } val cm = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager @@ -97,7 +97,7 @@ internal class WebSocketService : Service() { .onClose { onClose() } .onBadRequest { message -> onBadRequest(message) } .onNetworkFailure { minutes -> onNetworkFailure(minutes) } - .onMessage { if (it != null) onMessage(it) } + .onMessage { onMessage(it) } .onReconnected { notifyMissedNotifications() } .start()