From 7c2ea3a02b63ddecbc82f11c935c51eb4cbea30d Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 14 Sep 2026 22:51:40 +0900 Subject: [PATCH] =?UTF-8?q?fix(dm):=20=EC=88=98=EC=8B=A0=EC=9E=90=20?= =?UTF-8?q?=EC=84=A0=ED=83=9D=20=EB=9D=BC=EB=B2=A8=20=ED=91=9C=EC=8B=9C?= =?UTF-8?q?=EB=A5=BC=20=EC=A0=95=EB=A6=AC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recipient/DmRecipientPickerActivity.kt | 18 ++++++++-- .../layout/activity_dm_recipient_picker.xml | 4 +-- .../recipient/DmRecipientPickerSourceTest.kt | 33 +++++++++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/recipient/DmRecipientPickerActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/recipient/DmRecipientPickerActivity.kt index 4822f210..4eddeb03 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/recipient/DmRecipientPickerActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/recipient/DmRecipientPickerActivity.kt @@ -1,6 +1,10 @@ package kr.co.vividnext.sodalive.v2.main.chat.recipient +import android.text.SpannableString +import android.text.Spanned +import android.text.style.ForegroundColorSpan import androidx.activity.viewModels +import androidx.core.content.ContextCompat import androidx.core.view.isVisible import androidx.core.widget.doAfterTextChanged import androidx.recyclerview.widget.LinearLayoutManager @@ -45,12 +49,22 @@ class DmRecipientPickerActivity : BaseActivity } viewModel.recipientStateLiveData.observe(this) { state -> adapter.submitItems(state.recipients) - binding.tvFollowers.isVisible = state.mode == DmRecipientPickerMode.FOLLOWERS + binding.tvFollowers.isVisible = state.mode == DmRecipientPickerMode.FOLLOWERS && state.recipients.isNotEmpty() binding.tvSearchResultCount.isVisible = state.mode == DmRecipientPickerMode.SEARCH - binding.tvSearchResultCount.text = getString( + val searchResultCount = state.searchResultCount.toString() + val searchResultText = getString( R.string.dm_recipient_search_result_count, state.searchResultCount ) + binding.tvSearchResultCount.text = SpannableString(searchResultText).apply { + val start = searchResultText.lastIndexOf(searchResultCount) + setSpan( + ForegroundColorSpan(ContextCompat.getColor(this@DmRecipientPickerActivity, R.color.gray_500)), + start, + start + searchResultCount.length, + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE + ) + } binding.tvSearchEmpty.isVisible = state.isSearchEmpty binding.rvRecipients.isVisible = !state.isSearchEmpty if (state.isError) showToast(getString(R.string.common_error_request)) diff --git a/app/src/main/res/layout/activity_dm_recipient_picker.xml b/app/src/main/res/layout/activity_dm_recipient_picker.xml index 943b66ae..d5ed471a 100644 --- a/app/src/main/res/layout/activity_dm_recipient_picker.xml +++ b/app/src/main/res/layout/activity_dm_recipient_picker.xml @@ -60,7 +60,7 @@