From 97dedb897699ccd82ef654f40c647032b6c1e300 Mon Sep 17 00:00:00 2001 From: "Jan C. Borchardt" <925062+jancborchardt@users.noreply.github.com> Date: Tue, 28 Jul 2026 15:59:42 +0200 Subject: [PATCH] fix(chat): show "Team" instead of team id in mention autocomplete Assisted-by: ClaudeCode:claude-opus-4-8 Signed-off-by: Jan C. Borchardt <925062+jancborchardt@users.noreply.github.com> --- .../talk/chat/MentionAutocompleteAdapter.kt | 13 +++++++- .../chat/MentionAutocompleteAdapterTest.kt | 30 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 app/src/test/java/com/nextcloud/talk/chat/MentionAutocompleteAdapterTest.kt diff --git a/app/src/main/java/com/nextcloud/talk/chat/MentionAutocompleteAdapter.kt b/app/src/main/java/com/nextcloud/talk/chat/MentionAutocompleteAdapter.kt index e69f4b1ada6..04b7ef82759 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/MentionAutocompleteAdapter.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/MentionAutocompleteAdapter.kt @@ -93,7 +93,7 @@ class MentionAutocompleteAdapter( ) viewThemeUtils.talk.themeAndHighlightText( holder.binding.secondaryText, - "@${item.objectId}", + secondaryText(item), filterQuery ) } else { @@ -104,6 +104,9 @@ class MentionAutocompleteAdapter( drawStatus(holder, item) } + private fun secondaryText(item: MentionAutocompleteItem): String = + secondaryText(item.source, item.objectId, context.resources.getString(R.string.nc_team)) + private fun setAvatar(holder: ViewHolder, item: MentionAutocompleteItem) { val avatarView = holder.binding.avatarView when (item.source) { @@ -188,5 +191,13 @@ class MentionAutocompleteAdapter( private const val STATUS_SIZE_IN_DP = 9f private const val NO_ICON = "" private const val NO_USER_STATUS_DP_FROM_TOP: Float = 10f + + // Teams use a "team/" objectId that should not be exposed; show "Team" like the web client does. + fun secondaryText(source: String?, objectId: String?, teamLabel: String): String = + if (source == SOURCE_TEAMS) { + teamLabel + } else { + "@$objectId" + } } } diff --git a/app/src/test/java/com/nextcloud/talk/chat/MentionAutocompleteAdapterTest.kt b/app/src/test/java/com/nextcloud/talk/chat/MentionAutocompleteAdapterTest.kt new file mode 100644 index 00000000000..e9b6db62575 --- /dev/null +++ b/app/src/test/java/com/nextcloud/talk/chat/MentionAutocompleteAdapterTest.kt @@ -0,0 +1,30 @@ +/* + * Nextcloud Talk - Android Client + * + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ +package com.nextcloud.talk.chat + +import com.nextcloud.talk.adapters.items.MentionAutocompleteItem.Companion.SOURCE_TEAMS +import org.junit.Assert.assertEquals +import org.junit.Test + +class MentionAutocompleteAdapterTest { + + @Test + fun teamSourceShowsTeamLabelInsteadOfObjectId() { + assertEquals( + "Team", + MentionAutocompleteAdapter.secondaryText(SOURCE_TEAMS, "team/RFu2UR8oOhEaI6OKUlQ", "Team") + ) + } + + @Test + fun nonTeamSourceShowsMentionHandle() { + assertEquals( + "@admin", + MentionAutocompleteAdapter.secondaryText("users", "admin", "Team") + ) + } +}