Эх сурвалжийг харах

add capability check for conversation avatar

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 2 жил өмнө
parent
commit
dc09f21870

+ 18 - 12
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") }
-
-        binding.let {
-            viewThemeUtils.material.themeFAB(it.avatarUpload)
-            viewThemeUtils.material.themeFAB(it.avatarChoose)
-            viewThemeUtils.material.themeFAB(it.avatarCamera)
-            viewThemeUtils.material.themeFAB(it.avatarDelete)
+        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)
+            }
+        } 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")
             }

+ 4 - 0
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