diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.kt index 0d7d53083..95c0150f8 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/ParticipantItem.kt @@ -25,6 +25,7 @@ import com.nextcloud.talk.extensions.loadDefaultAvatar import com.nextcloud.talk.extensions.loadDefaultGroupCallAvatar import com.nextcloud.talk.extensions.loadFederatedUserAvatar import com.nextcloud.talk.extensions.loadFirstLetterAvatar +import com.nextcloud.talk.extensions.loadPhoneAvatar import com.nextcloud.talk.extensions.loadTeamAvatar import com.nextcloud.talk.extensions.loadUserAvatar import com.nextcloud.talk.models.domain.ConversationModel @@ -242,6 +243,10 @@ class ParticipantItem( ) } + Participant.ActorType.PHONES -> { + holder.binding.avatarView.loadPhoneAvatar(viewThemeUtils) + } + else -> { Log.w(TAG, "Avatar not shown because of unknown ActorType " + model.calculatedActorType) } diff --git a/app/src/main/java/com/nextcloud/talk/chat/data/model/ChatMessage.kt b/app/src/main/java/com/nextcloud/talk/chat/data/model/ChatMessage.kt index 3be97d912..151f02551 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/data/model/ChatMessage.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/data/model/ChatMessage.kt @@ -422,7 +422,8 @@ data class ChatMessage( AVATAR_SET, AVATAR_REMOVED, FEDERATED_USER_ADDED, - FEDERATED_USER_REMOVED + FEDERATED_USER_REMOVED, + PHONE_ADDED } companion object { diff --git a/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt b/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt index ae058621e..3b18c225a 100644 --- a/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt +++ b/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt @@ -206,6 +206,11 @@ fun ImageView.loadAvatarWithUrl(user: User? = null, url: String): io.reactivex.d return loadAvatarInternal(user, url, false, null) } +fun ImageView.loadPhoneAvatar(viewThemeUtils: ViewThemeUtils): io.reactivex.disposables.Disposable { + val drawable = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.ic_phone) + return loadUserAvatar(drawable) +} + fun ImageView.loadThumbnail(url: String, user: User): io.reactivex.disposables.Disposable { val requestBuilder = ImageRequest.Builder(context) .data(url) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumActorTypeConverter.kt b/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumActorTypeConverter.kt index 1cb703a56..a8b70ddc4 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumActorTypeConverter.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumActorTypeConverter.kt @@ -16,6 +16,7 @@ import com.nextcloud.talk.models.json.participants.Participant.ActorType.FEDERAT import com.nextcloud.talk.models.json.participants.Participant.ActorType.GROUPS import com.nextcloud.talk.models.json.participants.Participant.ActorType.GUESTS import com.nextcloud.talk.models.json.participants.Participant.ActorType.USERS +import com.nextcloud.talk.models.json.participants.Participant.ActorType.PHONES class EnumActorTypeConverter : StringBasedTypeConverter() { override fun getFromString(string: String?): Participant.ActorType { @@ -26,6 +27,7 @@ class EnumActorTypeConverter : StringBasedTypeConverter() "users" -> USERS "circles" -> CIRCLES "federated_users" -> FEDERATED + "phones" -> PHONES else -> DUMMY } } @@ -42,6 +44,7 @@ class EnumActorTypeConverter : StringBasedTypeConverter() USERS -> "users" CIRCLES -> "circles" FEDERATED -> "federated_users" + PHONES -> "phones" else -> "" } } diff --git a/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.kt b/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.kt index 9613c8f82..7aa081aa1 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.kt @@ -71,6 +71,7 @@ import com.nextcloud.talk.chat.data.model.ChatMessage.SystemMessageType.RECORDIN import com.nextcloud.talk.chat.data.model.ChatMessage.SystemMessageType.RECORDING_STOPPED import com.nextcloud.talk.chat.data.model.ChatMessage.SystemMessageType.USER_ADDED import com.nextcloud.talk.chat.data.model.ChatMessage.SystemMessageType.USER_REMOVED +import com.nextcloud.talk.chat.data.model.ChatMessage.SystemMessageType.PHONE_ADDED /* * see https://nextcloud-talk.readthedocs.io/en/latest/chat/#system-messages @@ -141,6 +142,7 @@ class EnumSystemMessageTypeConverter : StringBasedTypeConverter AVATAR_REMOVED "federated_user_added" -> FEDERATED_USER_ADDED "federated_user_removed" -> FEDERATED_USER_REMOVED + "phone_added" -> PHONE_ADDED else -> DUMMY } } @@ -210,6 +212,7 @@ class EnumSystemMessageTypeConverter : StringBasedTypeConverter "avatar_removed" FEDERATED_USER_ADDED -> "federated_user_added" FEDERATED_USER_REMOVED -> "federated_user_removed" + PHONE_ADDED -> "phone_added" else -> "" } } diff --git a/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt b/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt index ae8b374c9..0583c47fe 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt @@ -117,7 +117,8 @@ data class Participant( GUESTS, USERS, CIRCLES, - FEDERATED + FEDERATED, + PHONES } enum class ParticipantType {