From 401bb6e2cf8e7b9eb19d334a5b8f5592a1f7ed8d Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 31 Jan 2023 14:26:37 +0100 Subject: [PATCH] Fix to check value for "recording" with this fix it's also not necessary to check for HPB in the app. The "recording" value from capabilities is set accordingly on server side. Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/activities/CallActivity.java | 3 +-- .../talk/utils/database/user/CapabilitiesUtilNew.kt | 8 ++++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index 52811c344..a95a86913 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -2969,8 +2969,7 @@ public class CallActivity extends CallBaseActivity { } public boolean isAllowedToStartOrStopRecording() { - return CapabilitiesUtilNew.hasSpreedFeatureCapability(conversationUser, "recording-v1") && - CapabilitiesUtilNew.isCallRecordingAvailable(conversationUser) + return CapabilitiesUtilNew.isCallRecordingAvailable(conversationUser) && isModerator; } diff --git a/app/src/main/java/com/nextcloud/talk/utils/database/user/CapabilitiesUtilNew.kt b/app/src/main/java/com/nextcloud/talk/utils/database/user/CapabilitiesUtilNew.kt index e10cbfcd4..cb7d93e33 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/database/user/CapabilitiesUtilNew.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/database/user/CapabilitiesUtilNew.kt @@ -100,9 +100,13 @@ object CapabilitiesUtilNew { @JvmStatic fun isCallRecordingAvailable(user: User): Boolean { - if (user.capabilities?.spreedCapability?.config?.containsKey("call") == true) { + if (hasSpreedFeatureCapability(user, "recording-v1") && + user.capabilities?.spreedCapability?.config?.containsKey("call") == true + ) { val map: Map? = user.capabilities!!.spreedCapability!!.config!!["call"] - return map != null && map.containsKey("recording") + if (map != null && map.containsKey("recording")) { + return map["recording"].toBoolean() + } } return false }