From c16a6c74fa8b70ed5fa5508f54f2f599f3bac1c7 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Mon, 7 Jul 2025 17:02:03 +0200 Subject: [PATCH 1/8] add circular phone icons Signed-off-by: sowjanyakch --- .../drawable-night/icon_circular_phone.xml | 27 +++++++++++++++++++ .../main/res/drawable/icon_circular_phone.xml | 27 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 app/src/main/res/drawable-night/icon_circular_phone.xml create mode 100644 app/src/main/res/drawable/icon_circular_phone.xml diff --git a/app/src/main/res/drawable-night/icon_circular_phone.xml b/app/src/main/res/drawable-night/icon_circular_phone.xml new file mode 100644 index 000000000..7c568e62e --- /dev/null +++ b/app/src/main/res/drawable-night/icon_circular_phone.xml @@ -0,0 +1,27 @@ + + + + + + + + + + \ 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 new file mode 100644 index 000000000..8bec75328 --- /dev/null +++ b/app/src/main/res/drawable/icon_circular_phone.xml @@ -0,0 +1,27 @@ + + + + + + + + + + From a5a42aae61cd42b2a84af2b7191c63e1da0bb673 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Mon, 7 Jul 2025 17:03:01 +0200 Subject: [PATCH 2/8] fix mention autocomplete item Signed-off-by: sowjanyakch --- .../nextcloud/talk/adapters/items/MentionAutocompleteItem.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt index 1662b2c4c..e0a0e21e5 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt @@ -134,7 +134,7 @@ class MentionAutocompleteItem( holder.binding.avatarView.loadUserAvatar( viewThemeUtils.talk.themePlaceholderAvatar( holder.binding.avatarView, - R.drawable.ic_avatar_group + R.drawable.ic_phone ) ) } From c2deca00ee0c3098165fe29e043930158a3462ea Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Mon, 7 Jul 2025 17:03:33 +0200 Subject: [PATCH 3/8] fix mentions Signed-off-by: sowjanyakch --- .../java/com/nextcloud/talk/utils/DisplayUtils.kt | 11 ++++++++--- app/src/main/res/drawable/ic_phone.xml | 6 ++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt index 46b77639a..b5ff81623 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt @@ -162,8 +162,9 @@ object DisplayUtils { val config = context.resources.configuration chip.setLayoutDirection(config.layoutDirection) val drawable: Int - val isCallOrGroup = "call" == type || "calls" == type || "groups" == type || "user-group" == type - if (!isCallOrGroup) { + val isCall = "call" == type || "calls" == type + val isGroup = "groups" == type || "user-group" == type + if (!isGroup) { drawable = if (chipResource == R.xml.chip_you) { R.drawable.mention_chip } else { @@ -176,8 +177,12 @@ object DisplayUtils { if (type == "circle" || type == "teams") { chip.setChipIconResource(R.drawable.icon_team) } + + if (isCall) { + chip.setChipIconResource(R.drawable.icon_circular_phone) + } chip.setBounds(0, 0, chip.intrinsicWidth, chip.intrinsicHeight) - if (!isCallOrGroup) { + if (!isGroup) { var url = getUrlForAvatar(conversationUser.baseUrl, id, false) if ("guests" == type || "guest" == type || "email" == type) { url = getUrlForGuestAvatar( diff --git a/app/src/main/res/drawable/ic_phone.xml b/app/src/main/res/drawable/ic_phone.xml index a638b1b2c..ea8d4d9b3 100644 --- a/app/src/main/res/drawable/ic_phone.xml +++ b/app/src/main/res/drawable/ic_phone.xml @@ -10,7 +10,13 @@ android:tint="#757575" android:viewportWidth="960" android:viewportHeight="960"> + + From d780d4b2611959e4ed127a79400e211bf3607a6e Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Mon, 7 Jul 2025 18:49:11 +0200 Subject: [PATCH 4/8] use displayName instead of source to display avatars Signed-off-by: sowjanyakch --- .../adapters/items/MentionAutocompleteItem.kt | 24 ++++++++++++++----- .../com/nextcloud/talk/utils/DisplayUtils.kt | 8 +++++-- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt index e0a0e21e5..eebbffe6a 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt @@ -129,14 +129,22 @@ class MentionAutocompleteItem( private fun setAvatar(holder: ParticipantItemViewHolder, objectId: String?) { when (source) { SOURCE_CALLS -> { - run {} run { - holder.binding.avatarView.loadUserAvatar( - viewThemeUtils.talk.themePlaceholderAvatar( - holder.binding.avatarView, - R.drawable.ic_phone + if (isPhoneNumber(displayName)) { + holder.binding.avatarView.loadUserAvatar( + viewThemeUtils.talk.themePlaceholderAvatar( + holder.binding.avatarView, + R.drawable.ic_phone + ) ) - ) + } else { + holder.binding.avatarView.loadUserAvatar( + viewThemeUtils.talk.themePlaceholderAvatar( + holder.binding.avatarView, + R.drawable.ic_avatar_group + ) + ) + } } } @@ -194,6 +202,10 @@ class MentionAutocompleteItem( } } + fun isPhoneNumber(input: String?): Boolean { + return input?.matches(Regex("^\\+?\\d+$")) == true + } + private fun drawStatus(holder: ParticipantItemViewHolder) { val size = DisplayUtils.convertDpToPixel(STATUS_SIZE_IN_DP, context) holder.binding.userStatusImage.setImageDrawable( diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt index b5ff81623..89e732914 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt @@ -164,7 +164,7 @@ object DisplayUtils { val drawable: Int val isCall = "call" == type || "calls" == type val isGroup = "groups" == type || "user-group" == type - if (!isGroup) { + if (!isGroup && !isCall) { drawable = if (chipResource == R.xml.chip_you) { R.drawable.mention_chip } else { @@ -178,7 +178,7 @@ object DisplayUtils { chip.setChipIconResource(R.drawable.icon_team) } - if (isCall) { + if (isCall && isPhoneNumber(label.toString())) { chip.setChipIconResource(R.drawable.icon_circular_phone) } chip.setBounds(0, 0, chip.intrinsicWidth, chip.intrinsicHeight) @@ -536,4 +536,8 @@ object DisplayUtils { text } } + + fun isPhoneNumber(input: String?): Boolean { + return input?.matches(Regex("^\\+?\\d+$")) == true + } } From e9158b291f3c91b3b253b24a743b3feb4fe44e55 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 8 Jul 2025 10:27:09 +0200 Subject: [PATCH 5/8] extract common code to PhoneUtils Signed-off-by: sowjanyakch --- app/src/main/java/com/nextcloud/talk/PhoneUtils.kt | 14 ++++++++++++++ .../talk/adapters/items/MentionAutocompleteItem.kt | 5 +---- .../java/com/nextcloud/talk/utils/DisplayUtils.kt | 5 +---- 3 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/nextcloud/talk/PhoneUtils.kt diff --git a/app/src/main/java/com/nextcloud/talk/PhoneUtils.kt b/app/src/main/java/com/nextcloud/talk/PhoneUtils.kt new file mode 100644 index 000000000..f981bd27d --- /dev/null +++ b/app/src/main/java/com/nextcloud/talk/PhoneUtils.kt @@ -0,0 +1,14 @@ +/* + * Nextcloud Talk - Android Client + * + * SPDX-FileCopyrightText: 2025 Sowjanya Kota + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +package com.nextcloud.talk + +object PhoneUtils { + fun isPhoneNumber(input: String?): Boolean { + return input?.matches(Regex("^\\+?\\d+$")) == true + } +} diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt index eebbffe6a..0e4c45dcc 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt @@ -15,6 +15,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.res.ResourcesCompat import coil.Coil import coil.request.ImageRequest +import com.nextcloud.talk.PhoneUtils.isPhoneNumber import com.nextcloud.talk.R import com.nextcloud.talk.adapters.items.ParticipantItem.ParticipantItemViewHolder import com.nextcloud.talk.data.user.model.User @@ -202,10 +203,6 @@ class MentionAutocompleteItem( } } - fun isPhoneNumber(input: String?): Boolean { - return input?.matches(Regex("^\\+?\\d+$")) == true - } - private fun drawStatus(holder: ParticipantItemViewHolder) { val size = DisplayUtils.convertDpToPixel(STATUS_SIZE_IN_DP, context) holder.binding.userStatusImage.setImageDrawable( diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt index 89e732914..dcf4e89c9 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.kt @@ -54,6 +54,7 @@ import coil.request.ImageRequest import coil.target.Target import coil.transform.CircleCropTransformation import com.google.android.material.chip.ChipDrawable +import com.nextcloud.talk.PhoneUtils.isPhoneNumber import com.nextcloud.talk.R import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication import com.nextcloud.talk.data.user.model.User @@ -536,8 +537,4 @@ object DisplayUtils { text } } - - fun isPhoneNumber(input: String?): Boolean { - return input?.matches(Regex("^\\+?\\d+$")) == true - } } From 8787bb557b48223d5fabf5e3fbbd439d8f3025bd Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 8 Jul 2025 10:54:33 +0200 Subject: [PATCH 6/8] create phone scaling icon Signed-off-by: sowjanyakch --- app/src/main/res/drawable/ic_phone.xml | 7 +----- .../res/drawable/ic_phone_icon_scaled.xml | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/drawable/ic_phone_icon_scaled.xml diff --git a/app/src/main/res/drawable/ic_phone.xml b/app/src/main/res/drawable/ic_phone.xml index ea8d4d9b3..1636aa11d 100644 --- a/app/src/main/res/drawable/ic_phone.xml +++ b/app/src/main/res/drawable/ic_phone.xml @@ -10,13 +10,8 @@ android:tint="#757575" android:viewportWidth="960" android:viewportHeight="960"> - - + 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..23e98d3b6 --- /dev/null +++ b/app/src/main/res/drawable/ic_phone_icon_scaled.xml @@ -0,0 +1,22 @@ + + + + + + + \ No newline at end of file From fac30aa3f5ad1681a8b4bab120e7bd7a0d83504c Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 8 Jul 2025 11:01:03 +0200 Subject: [PATCH 7/8] use scaled icon + fix headers Signed-off-by: sowjanyakch --- .../talk/adapters/items/MentionAutocompleteItem.kt | 2 +- app/src/main/res/drawable-night/icon_circular_phone.xml | 6 +++--- .../{ic_phone_icon_scaled.xml => ic_phone_small.xml} | 0 app/src/main/res/drawable/icon_circular_phone.xml | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) rename app/src/main/res/drawable/{ic_phone_icon_scaled.xml => ic_phone_small.xml} (100%) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt index 0e4c45dcc..548bbcf79 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.kt @@ -135,7 +135,7 @@ class MentionAutocompleteItem( holder.binding.avatarView.loadUserAvatar( viewThemeUtils.talk.themePlaceholderAvatar( holder.binding.avatarView, - R.drawable.ic_phone + R.drawable.ic_phone_small ) ) } else { 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 7c568e62e..47026e19f 100644 --- a/app/src/main/res/drawable-night/icon_circular_phone.xml +++ b/app/src/main/res/drawable-night/icon_circular_phone.xml @@ -1,9 +1,9 @@ + ~ SPDX-FileCopyrightText: 2018-2025 Google LLC + ~ SPDX-License-Identifier: Apache-2.0 +--> - ~ SPDX-License-Identifier: GPL-3.0-or-later - --> + ~ SPDX-FileCopyrightText: 2018-2025 Google LLC + ~ SPDX-License-Identifier: Apache-2.0 +--> Date: Tue, 8 Jul 2025 11:16:59 +0200 Subject: [PATCH 8/8] fix header Signed-off-by: sowjanyakch --- app/src/main/res/drawable/ic_phone_small.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/drawable/ic_phone_small.xml b/app/src/main/res/drawable/ic_phone_small.xml index 23e98d3b6..b5f2bfbe6 100644 --- a/app/src/main/res/drawable/ic_phone_small.xml +++ b/app/src/main/res/drawable/ic_phone_small.xml @@ -1,9 +1,9 @@ + ~ SPDX-FileCopyrightText: 2018-2025 Google LLC + ~ SPDX-License-Identifier: Apache-2.0 +-->