From dc09f218703c8c7343fb36a68e5a63e4633c5ecf Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 24 Apr 2023 14:09:37 +0200 Subject: [PATCH] add capability check for conversation avatar Signed-off-by: Marcel Hibbe --- .../info/ConversationInfoActivity.kt | 28 +++++++++++-------- .../database/user/CapabilitiesUtilNew.kt | 4 +++ 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt b/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt index 6106b0a61..2b353153c 100644 --- a/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt @@ -199,18 +199,22 @@ class ConversationInfoActivity : } private fun setupAvatarOptions() { - pickImage = PickImage(this, conversationUser) - binding.avatarUpload.setOnClickListener { pickImage.selectLocal() } - binding.avatarChoose.setOnClickListener { pickImage.selectRemote() } - binding.avatarCamera.setOnClickListener { pickImage.takePicture() } - binding.avatarDelete.setOnClickListener { deleteAvatar() } - binding.avatarImage.let { ViewCompat.setTransitionName(it, "userAvatar.transitionTag") } + if (CapabilitiesUtilNew.isConversationAvatarEndpointAvailable(conversationUser)) { + pickImage = PickImage(this, conversationUser) + binding.avatarUpload.setOnClickListener { pickImage.selectLocal() } + binding.avatarChoose.setOnClickListener { pickImage.selectRemote() } + binding.avatarCamera.setOnClickListener { pickImage.takePicture() } + binding.avatarDelete.setOnClickListener { deleteAvatar() } + binding.avatarImage.let { ViewCompat.setTransitionName(it, "userAvatar.transitionTag") } - binding.let { - viewThemeUtils.material.themeFAB(it.avatarUpload) - viewThemeUtils.material.themeFAB(it.avatarChoose) - viewThemeUtils.material.themeFAB(it.avatarCamera) - viewThemeUtils.material.themeFAB(it.avatarDelete) + binding.let { + viewThemeUtils.material.themeFAB(it.avatarUpload) + viewThemeUtils.material.themeFAB(it.avatarChoose) + viewThemeUtils.material.themeFAB(it.avatarCamera) + viewThemeUtils.material.themeFAB(it.avatarDelete) + } + } else { + binding.avatarButtons.visibility = GONE } } @@ -269,9 +273,11 @@ class ConversationInfoActivity : data ) { uploadAvatar(it.toFile()) } } + ImagePicker.RESULT_ERROR -> { Toast.makeText(this, ImagePicker.getError(data), Toast.LENGTH_SHORT).show() } + else -> { Log.i(TAG, "Task Cancelled") } 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 928e92121..75192087d 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 @@ -144,6 +144,10 @@ object CapabilitiesUtilNew { return user.capabilities?.spreedCapability?.features?.contains("temp-user-avatar-api") == true } + fun isConversationAvatarEndpointAvailable(user: User): Boolean { + return user.capabilities?.spreedCapability?.features?.contains("avatar") == true + } + fun canEditScopes(user: User): Boolean { return user.capabilities?.provisioningCapability?.accountPropertyScopesVersion != null && user.capabilities!!.provisioningCapability!!.accountPropertyScopesVersion!! > 1