소스 검색

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 <dev@mhibbe.de>
Marcel Hibbe 5 달 전
부모
커밋
aeacfa09b6
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

+ 6 - 2
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()")
         }
     }