add capability check for conversation avatar

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2023-04-24 14:09:37 +02:00
parent 5870a30410
commit dc09f21870
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
2 changed files with 21 additions and 11 deletions

View File

@ -199,18 +199,22 @@ class ConversationInfoActivity :
} }
private fun setupAvatarOptions() { private fun setupAvatarOptions() {
pickImage = PickImage(this, conversationUser) if (CapabilitiesUtilNew.isConversationAvatarEndpointAvailable(conversationUser)) {
binding.avatarUpload.setOnClickListener { pickImage.selectLocal() } pickImage = PickImage(this, conversationUser)
binding.avatarChoose.setOnClickListener { pickImage.selectRemote() } binding.avatarUpload.setOnClickListener { pickImage.selectLocal() }
binding.avatarCamera.setOnClickListener { pickImage.takePicture() } binding.avatarChoose.setOnClickListener { pickImage.selectRemote() }
binding.avatarDelete.setOnClickListener { deleteAvatar() } binding.avatarCamera.setOnClickListener { pickImage.takePicture() }
binding.avatarImage.let { ViewCompat.setTransitionName(it, "userAvatar.transitionTag") } binding.avatarDelete.setOnClickListener { deleteAvatar() }
binding.avatarImage.let { ViewCompat.setTransitionName(it, "userAvatar.transitionTag") }
binding.let { binding.let {
viewThemeUtils.material.themeFAB(it.avatarUpload) viewThemeUtils.material.themeFAB(it.avatarUpload)
viewThemeUtils.material.themeFAB(it.avatarChoose) viewThemeUtils.material.themeFAB(it.avatarChoose)
viewThemeUtils.material.themeFAB(it.avatarCamera) viewThemeUtils.material.themeFAB(it.avatarCamera)
viewThemeUtils.material.themeFAB(it.avatarDelete) viewThemeUtils.material.themeFAB(it.avatarDelete)
}
} else {
binding.avatarButtons.visibility = GONE
} }
} }
@ -269,9 +273,11 @@ class ConversationInfoActivity :
data data
) { uploadAvatar(it.toFile()) } ) { uploadAvatar(it.toFile()) }
} }
ImagePicker.RESULT_ERROR -> { ImagePicker.RESULT_ERROR -> {
Toast.makeText(this, ImagePicker.getError(data), Toast.LENGTH_SHORT).show() Toast.makeText(this, ImagePicker.getError(data), Toast.LENGTH_SHORT).show()
} }
else -> { else -> {
Log.i(TAG, "Task Cancelled") Log.i(TAG, "Task Cancelled")
} }

View File

@ -144,6 +144,10 @@ object CapabilitiesUtilNew {
return user.capabilities?.spreedCapability?.features?.contains("temp-user-avatar-api") == true 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 { fun canEditScopes(user: User): Boolean {
return user.capabilities?.provisioningCapability?.accountPropertyScopesVersion != null && return user.capabilities?.provisioningCapability?.accountPropertyScopesVersion != null &&
user.capabilities!!.provisioningCapability!!.accountPropertyScopesVersion!! > 1 user.capabilities!!.provisioningCapability!!.accountPropertyScopesVersion!! > 1