瀏覽代碼

fix to load chat for old server version

With server version 23.0.12 it happened that the chat did not load because values were null. Now default values in json model are set (because that's easier than changing the entity).
Additionally a check was added in CallActivity that a callStartTime of 0 would not be used (but it should not be used anyway if it would be 0 because then capability should also not be available).

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 5 月之前
父節點
當前提交
3f06801e59

+ 3 - 1
app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt

@@ -1744,7 +1744,9 @@ class CallActivity : CallBaseActivity() {
     }
 
     private fun startCallTimeCounter(callStartTime: Long?) {
-        if (callStartTime != null && hasSpreedFeatureCapability(
+        if (callStartTime != null &&
+            callStartTime != 0L &&
+            hasSpreedFeatureCapability(
                 conversationUser!!.capabilities!!.spreedCapability!!, SpreedFeatures.RECORDING_V1
             )
         ) {

+ 3 - 3
app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt

@@ -144,16 +144,16 @@ data class Conversation(
     var callRecording: Int = 0,
 
     @JsonField(name = ["avatarVersion"])
-    var avatarVersion: String? = null,
+    var avatarVersion: String? = "",
 
     // Be aware that variables with "is" at the beginning will lead to the error:
     // "@JsonField annotation can only be used on private fields if both getter and setter are present."
     // Instead, name it with "has" at the beginning: isCustomAvatar -> hasCustomAvatar
     @JsonField(name = ["isCustomAvatar"])
-    var hasCustomAvatar: Boolean? = null,
+    var hasCustomAvatar: Boolean? = false,
 
     @JsonField(name = ["callStartTime"])
-    var callStartTime: Long? = null,
+    var callStartTime: Long? = 0L,
 
     @JsonField(name = ["recordingConsent"])
     var recordingConsentRequired: Int = 0,