From ceb944200aa6096eb7e5cc2876910268b482c0b9 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Wed, 21 May 2025 20:03:06 +0200 Subject: [PATCH 01/10] ktlintFormat Signed-off-by: sowjanyakch --- .../talk/extensions/ImageViewExtensions.kt | 5 +++++ app/src/main/res/drawable/outline_call_24.xml | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 app/src/main/res/drawable/outline_call_24.xml 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..7f746b743 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 data: Any = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.outline_call_24) as Any + return loadUserAvatar(data) +} + fun ImageView.loadThumbnail(url: String, user: User): io.reactivex.disposables.Disposable { val requestBuilder = ImageRequest.Builder(context) .data(url) diff --git a/app/src/main/res/drawable/outline_call_24.xml b/app/src/main/res/drawable/outline_call_24.xml new file mode 100644 index 000000000..b1aac7380 --- /dev/null +++ b/app/src/main/res/drawable/outline_call_24.xml @@ -0,0 +1,19 @@ + + + + + + + From d5d9030bf0b46e9c28ab83c340463fffa8005a05 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 27 May 2025 17:01:39 +0200 Subject: [PATCH 02/10] add drawable and use existing icon Signed-off-by: sowjanyakch --- .../talk/adapters/items/ParticipantItem.kt | 5 +++++ .../talk/chat/data/model/ChatMessage.kt | 3 ++- .../talk/extensions/ImageViewExtensions.kt | 4 ++-- .../json/converters/EnumActorTypeConverter.kt | 4 ++++ .../EnumSystemMessageTypeConverter.kt | 5 ++++- .../models/json/participants/Participant.kt | 3 ++- app/src/main/res/drawable/outline_call_24.xml | 19 ------------------- 7 files changed, 19 insertions(+), 24 deletions(-) delete mode 100644 app/src/main/res/drawable/outline_call_24.xml 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..e15dc404c 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 7f746b743..b5e3d9455 100644 --- a/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt +++ b/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt @@ -205,8 +205,8 @@ fun ImageView.loadAvatarWithUrl(user: User? = null, url: String): io.reactivex.d loadAvatarInternal(user, url, false, null) fun ImageView.loadPhoneAvatar(viewThemeUtils: ViewThemeUtils): io.reactivex.disposables.Disposable { - val data: Any = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.outline_call_24) as Any - return loadUserAvatar(data) + val drawable = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.ic_phone) + return loadUserAvatar(drawable) } fun ImageView.loadThumbnail(url: String, user: User): io.reactivex.disposables.Disposable { 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..4bc37ecbe 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,8 @@ 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 +28,7 @@ class EnumActorTypeConverter : StringBasedTypeConverter() "users" -> USERS "circles" -> CIRCLES "federated_users" -> FEDERATED + "phones" -> PHONES else -> DUMMY } @@ -41,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 d64c3a8cf..f601b2cc8 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,7 +142,8 @@ class EnumSystemMessageTypeConverter : StringBasedTypeConverter AVATAR_REMOVED "federated_user_added" -> FEDERATED_USER_ADDED "federated_user_removed" -> FEDERATED_USER_REMOVED - else -> DUMMY + "phone_added" -> PHONE_ADDED + else -> DUMMY } @Suppress("Detekt.ComplexMethod", "Detekt.LongMethod") @@ -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/outline_call_24.xml b/app/src/main/res/drawable/outline_call_24.xml deleted file mode 100644 index b1aac7380..000000000 --- a/app/src/main/res/drawable/outline_call_24.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - From 552277fcb6e0506f7cea10c5aa73653d31a3eeef Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Fri, 30 May 2025 16:03:12 +0200 Subject: [PATCH 03/10] ktlintFormat Signed-off-by: sowjanyakch --- .../java/com/nextcloud/talk/adapters/items/ParticipantItem.kt | 2 +- .../talk/models/json/converters/EnumActorTypeConverter.kt | 1 - .../models/json/converters/EnumSystemMessageTypeConverter.kt | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) 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 e15dc404c..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 @@ -238,7 +238,7 @@ class ParticipantItem( ) } - Participant.ActorType.PHONES ->{ + Participant.ActorType.PHONES -> { holder.binding.avatarView.loadPhoneAvatar(viewThemeUtils) } 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 4bc37ecbe..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 @@ -18,7 +18,6 @@ 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 = when (string) { 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 f601b2cc8..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 @@ -143,7 +143,7 @@ class EnumSystemMessageTypeConverter : StringBasedTypeConverter FEDERATED_USER_ADDED "federated_user_removed" -> FEDERATED_USER_REMOVED "phone_added" -> PHONE_ADDED - else -> DUMMY + else -> DUMMY } @Suppress("Detekt.ComplexMethod", "Detekt.LongMethod") From 1c7aa453dfa6d8fc68d640d8465c119e422b8d7c Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Mon, 7 Jul 2025 14:16:19 +0200 Subject: [PATCH 04/10] scale image size Signed-off-by: sowjanyakch --- app/src/main/res/drawable/ic_phone.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/drawable/ic_phone.xml b/app/src/main/res/drawable/ic_phone.xml index 1636aa11d..d1bfe6940 100644 --- a/app/src/main/res/drawable/ic_phone.xml +++ b/app/src/main/res/drawable/ic_phone.xml @@ -7,11 +7,16 @@ - + + + From 08685e5a07400439515997e099c71a0546db8ac6 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 8 Jul 2025 10:33:37 +0200 Subject: [PATCH 05/10] revert ic_phone icon Signed-off-by: sowjanyakch --- app/src/main/res/drawable/ic_phone.xml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/drawable/ic_phone.xml b/app/src/main/res/drawable/ic_phone.xml index d1bfe6940..354781237 100644 --- a/app/src/main/res/drawable/ic_phone.xml +++ b/app/src/main/res/drawable/ic_phone.xml @@ -4,19 +4,15 @@ ~ SPDX-FileCopyrightText: 2018-2025 Google LLC ~ SPDX-License-Identifier: Apache-2.0 --> + - - - + From 285232a5f96b52ea8a306fd8be50ab19e98e8fa4 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 8 Jul 2025 10:36:12 +0200 Subject: [PATCH 06/10] add new scaled icon Signed-off-by: sowjanyakch --- .../res/drawable/ic_phone_icon_scaled.xml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 app/src/main/res/drawable/ic_phone_icon_scaled.xml diff --git a/app/src/main/res/drawable/ic_phone_icon_scaled.xml b/app/src/main/res/drawable/ic_phone_icon_scaled.xml new file mode 100644 index 000000000..b74b6b540 --- /dev/null +++ b/app/src/main/res/drawable/ic_phone_icon_scaled.xml @@ -0,0 +1,22 @@ + + + + + + + From 140b337c07a2ccf8f617a1c0eeb2f110597b9a70 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 8 Jul 2025 10:37:16 +0200 Subject: [PATCH 07/10] use scaled icon here Signed-off-by: sowjanyakch --- .../java/com/nextcloud/talk/extensions/ImageViewExtensions.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 b5e3d9455..a329febd3 100644 --- a/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt +++ b/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt @@ -205,7 +205,7 @@ fun ImageView.loadAvatarWithUrl(user: User? = null, url: String): io.reactivex.d loadAvatarInternal(user, url, false, null) fun ImageView.loadPhoneAvatar(viewThemeUtils: ViewThemeUtils): io.reactivex.disposables.Disposable { - val drawable = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.ic_phone) + val drawable = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.ic_phone_icon_scaled) return loadUserAvatar(drawable) } From 2925186b6754e8eff27449cafbf563641a1f89c5 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 8 Jul 2025 11:04:42 +0200 Subject: [PATCH 08/10] use simple name for icon Signed-off-by: sowjanyakch --- .../talk/extensions/ImageViewExtensions.kt | 2 +- .../res/drawable/ic_phone_icon_scaled.xml | 22 ------------------- app/src/main/res/drawable/ic_phone_small.xml | 2 +- 3 files changed, 2 insertions(+), 24 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_phone_icon_scaled.xml 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 a329febd3..1044460e1 100644 --- a/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt +++ b/app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt @@ -205,7 +205,7 @@ fun ImageView.loadAvatarWithUrl(user: User? = null, url: String): io.reactivex.d loadAvatarInternal(user, url, false, null) fun ImageView.loadPhoneAvatar(viewThemeUtils: ViewThemeUtils): io.reactivex.disposables.Disposable { - val drawable = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.ic_phone_icon_scaled) + val drawable = viewThemeUtils.talk.themePlaceholderAvatar(this, R.drawable.ic_phone_small) return loadUserAvatar(drawable) } diff --git a/app/src/main/res/drawable/ic_phone_icon_scaled.xml b/app/src/main/res/drawable/ic_phone_icon_scaled.xml deleted file mode 100644 index b74b6b540..000000000 --- a/app/src/main/res/drawable/ic_phone_icon_scaled.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/ic_phone_small.xml b/app/src/main/res/drawable/ic_phone_small.xml index b5f2bfbe6..b74b6b540 100644 --- a/app/src/main/res/drawable/ic_phone_small.xml +++ b/app/src/main/res/drawable/ic_phone_small.xml @@ -19,4 +19,4 @@ android:fillColor="@android:color/white" android:pathData="M798,840Q673,840 551,785.5Q429,731 329,631Q229,531 174.5,409Q120,287 120,162Q120,144 132,132Q144,120 162,120L324,120Q338,120 349,129.5Q360,139 362,152L388,292Q390,308 387,319Q384,330 376,338L279,436Q299,473 326.5,507.5Q354,542 387,574Q418,605 452,631.5Q486,658 524,680L618,586Q627,577 641.5,572.5Q656,568 670,570L808,598Q822,602 831,612.5Q840,623 840,636L840,798Q840,816 828,828Q816,840 798,840Z" /> - \ No newline at end of file + From 9f31e2357f74743e61d48e07b763d04196a2f68f Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Thu, 10 Jul 2025 23:12:28 +0200 Subject: [PATCH 09/10] use outlined phone icon Signed-off-by: sowjanyakch --- app/src/main/res/drawable/ic_phone_small.xml | 30 +++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/drawable/ic_phone_small.xml b/app/src/main/res/drawable/ic_phone_small.xml index b74b6b540..527de28ba 100644 --- a/app/src/main/res/drawable/ic_phone_small.xml +++ b/app/src/main/res/drawable/ic_phone_small.xml @@ -6,17 +6,19 @@ --> - - - - +android:height="24dp" +android:viewportHeight="24" +android:viewportWidth="24" +android:width="24dp"> + + + + + + + \ No newline at end of file From a98ab945419b1bc2f6be361ebcc823e7a4a40a0c Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Thu, 10 Jul 2025 23:19:09 +0200 Subject: [PATCH 10/10] use circular outlined phone icon Signed-off-by: sowjanyakch --- .../res/drawable-night/icon_circular_phone.xml | 16 ++++++++-------- .../main/res/drawable/icon_circular_phone.xml | 10 +++++----- 2 files changed, 13 insertions(+), 13 deletions(-) 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/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"/> - + +