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 1d9c59a3c..c71a59611 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 @@ -237,6 +238,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 f79ee5043..a72657db0 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 @@ -423,7 +423,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 0431ef5b3..1044460e1 100644 --- a/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt +++ b/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt @@ -204,6 +204,11 @@ private fun ImageView.loadAvatarInternal( fun ImageView.loadAvatarWithUrl(user: User? = null, url: String): io.reactivex.disposables.Disposable = loadAvatarInternal(user, url, false, null) +fun ImageView.loadPhoneAvatar(viewThemeUtils: ViewThemeUtils): io.reactivex.disposables.Disposable { + val drawable = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.ic_phone_small) + 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 18796e770..549df588f 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 } @@ -41,6 +43,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 d64c3a8cf..9643dae39 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 } @@ -209,6 +211,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 { diff --git a/app/src/main/res/drawable-night/icon_circular_phone.xml b/app/src/main/res/drawable-night/icon_circular_phone.xml index 47026e19f..a11bd493f 100644 --- a/app/src/main/res/drawable-night/icon_circular_phone.xml +++ b/app/src/main/res/drawable-night/icon_circular_phone.xml @@ -6,22 +6,22 @@ --> + android:fillColor="#3B3B3B" + android:pathData="M12,0A12,12 0 1,0 12,24A12,12 0 1,0 12,0Z"/> - + + - \ No newline at end of file + diff --git a/app/src/main/res/drawable/ic_phone.xml b/app/src/main/res/drawable/ic_phone.xml index 1636aa11d..354781237 100644 --- a/app/src/main/res/drawable/ic_phone.xml +++ b/app/src/main/res/drawable/ic_phone.xml @@ -4,6 +4,7 @@ ~ SPDX-FileCopyrightText: 2018-2025 Google LLC ~ SPDX-License-Identifier: Apache-2.0 --> + - - - +android:height="24dp" +android:viewportHeight="24" +android:viewportWidth="24" +android:width="24dp"> + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/icon_circular_phone.xml b/app/src/main/res/drawable/icon_circular_phone.xml index 2d83aa6f0..bbf1e8058 100644 --- a/app/src/main/res/drawable/icon_circular_phone.xml +++ b/app/src/main/res/drawable/icon_circular_phone.xml @@ -12,16 +12,16 @@ android:viewportHeight="24"> + android:fillColor="#6B6B6B" + android:pathData="M12,0A12,12 0 1,0 12,24A12,12 0 1,0 12,0Z"/> - + +