From 96327ec16b2d9e086ba028e379d24be22bc3fe7c Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 24 Sep 2024 14:18:25 +0200 Subject: [PATCH] avoid UninitializedPropertyAccessException for spreedCapabilities reported issue on gplay console was: Exception kotlin.UninitializedPropertyAccessException: lateinit property spreedCapabilities has not been initialized at com.nextcloud.talk.chat.ChatActivity.getSpreedCapabilities (ChatActivity.kt:284) at com.nextcloud.talk.chat.ChatActivity.processExpiredMessages (ChatActivity.kt:2536) at com.nextcloud.talk.chat.ChatActivity.access$processExpiredMessages (ChatActivity.kt:204) at com.nextcloud.talk.chat.ChatActivity$initObservers$10$1.invokeSuspend (ChatActivity.kt:820) This is just a hotfix while hoping processExpiredMessages is executed again while spreedCapabilities are available. To improve the situation in the long term, we should move more logic to viewModel and have better control over sequence of actions. Signed-off-by: Marcel Hibbe --- .../main/java/com/nextcloud/talk/chat/ChatActivity.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index 7d4a4d9027..af09d75131 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -2535,8 +2535,12 @@ class ChatActivity : } } - if (CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.MESSAGE_EXPIRATION)) { - deleteExpiredMessages() + if (this::spreedCapabilities.isInitialized) { + if (CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.MESSAGE_EXPIRATION)) { + deleteExpiredMessages() + } + } else { + Log.w(TAG, "spreedCapabilities are not initialized in processExpiredMessages()") } } @@ -3240,7 +3244,7 @@ class ChatActivity : val lon = data["longitude"]!! metaData = "{\"type\":\"geo-location\",\"id\":\"geo:$lat,$lon\",\"latitude\":\"$lat\"," + - "\"longitude\":\"$lon\",\"name\":\"$name\"}" + "\"longitude\":\"$lon\",\"name\":\"$name\"}" } when (type) {