차단 목록 화면 문자열 리소스화

This commit is contained in:
2025-12-02 13:45:56 +09:00
parent 3909920a4c
commit 7f27f461f3
8 changed files with 56 additions and 22 deletions

View File

@@ -7,6 +7,7 @@ import android.view.View
import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.databinding.ActivityBlockMemberBinding
@@ -30,7 +31,7 @@ class BlockMemberActivity : BaseActivity<ActivityBlockMemberBinding>(
override fun setupView() {
loadingDialog = LoadingDialog(this, layoutInflater)
binding.toolbar.tvBack.text = "차단 리스트"
binding.toolbar.tvBack.text = getString(R.string.screen_block_member_title)
binding.toolbar.tvBack.setOnClickListener { finish() }
adapter = BlockMemberAdapter(
@@ -78,7 +79,10 @@ class BlockMemberActivity : BaseActivity<ActivityBlockMemberBinding>(
@SuppressLint("SetTextI18n")
private fun bindData() {
viewModel.toastLiveData.observe(this) {
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() }
val message = it?.resId?.let(::getString) ?: it?.message
message?.let { text ->
Toast.makeText(applicationContext, text, Toast.LENGTH_LONG).show()
}
}
viewModel.isLoading.observe(this) {
@@ -94,7 +98,12 @@ class BlockMemberActivity : BaseActivity<ActivityBlockMemberBinding>(
}
viewModel.blockedMemberTotalCountLiveData.observe(this) {
binding.tvTotalCount.text = " $it "
binding.tvTotalCount.text = " ${
getString(
R.string.screen_block_member_total_count,
it
)
} "
if (it > 0) {
binding.tvNone.visibility = View.GONE

View File

@@ -26,6 +26,8 @@ class BlockMemberAdapter(
@SuppressLint("NotifyDataSetChanged")
fun bind(item: GetBlockedMemberListItem) {
binding.tvNickname.text = item.nickname
val blockText = context.getString(R.string.screen_block_member_block)
val unBlockText = context.getString(R.string.screen_block_member_unblock)
binding.ivProfile.load(item.profileImageUrl) {
transformations(CircleCropTransformation())
placeholder(R.drawable.bg_placeholder)
@@ -34,7 +36,7 @@ class BlockMemberAdapter(
binding.tvBlock.visibility = View.VISIBLE
if (item.isBlocked) {
binding.tvBlock.text = "차단해제"
binding.tvBlock.text = unBlockText
binding.tvBlock.background = ContextCompat.getDrawable(
context,
R.drawable.bg_round_corner_13_3_333bb9f1_3bb9f1
@@ -48,7 +50,7 @@ class BlockMemberAdapter(
unBlockMember(item.memberId)
}
} else {
binding.tvBlock.text = "차단"
binding.tvBlock.text = blockText
binding.tvBlock.background = ContextCompat.getDrawable(
context,
R.drawable.bg_round_corner_13_3_transparent_3bb9f1

View File

@@ -6,7 +6,9 @@ import com.orhanobut.logger.Logger
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.common.ToastMessage
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.user.UserRepository
class BlockMemberViewModel(private val userRepository: UserRepository) : BaseViewModel() {
@@ -22,8 +24,8 @@ class BlockMemberViewModel(private val userRepository: UserRepository) : BaseVie
val isLoading: LiveData<Boolean>
get() = _isLoading
private val _toastLiveData = MutableLiveData<String?>()
val toastLiveData: LiveData<String?>
private val _toastLiveData = MutableLiveData<ToastMessage?>()
val toastLiveData: LiveData<ToastMessage?>
get() = _toastLiveData
var page = 1
@@ -54,22 +56,18 @@ class BlockMemberViewModel(private val userRepository: UserRepository) : BaseVie
_blockedMemberTotalCountLiveData.value = data.totalCount
_blockedMemberListLiveData.value = data.items
}
} else {
if (it.message != null) {
_toastLiveData.postValue(it.message)
} else {
_toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
it.message?.let { message ->
ToastMessage(message = message)
} ?: ToastMessage(resId = R.string.common_error_unknown)
)
}
}
},
{
_isLoading.value = false
it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
)
_toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown))
}
)
)

View File

@@ -24,7 +24,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium"
android:text=""
android:text="@string/screen_block_member_total_prefix"
android:textColor="@color/color_eeeeee"
android:textSize="12sp" />
@@ -41,7 +41,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium"
android:text=""
android:text="@string/screen_block_member_total_suffix"
android:textColor="@color/color_eeeeee"
android:textSize="12sp" />
</LinearLayout>
@@ -66,7 +66,7 @@
android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center"
android:text="차단한 유저가 없습니다."
android:text="@string/screen_block_member_empty"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -32,10 +32,11 @@
android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center"
android:minWidth="83dp"
android:paddingHorizontal="12dp"
android:paddingVertical="7dp"
android:textColor="@color/color_3bb9f1"
tools:background="@drawable/bg_round_corner_13_3_333bb9f1_3bb9f1"
tools:text="차단해제" />
tools:text="@string/screen_block_member_unblock" />
<View
android:layout_width="match_parent"

View File

@@ -354,6 +354,14 @@
<string name="msg_nickname_update_input_required">Please enter a nickname.</string>
<string name="msg_nickname_update_success">Nickname changed.</string>
<string name="msg_nickname_update_check_required">Please check nickname availability.</string>
<!-- Block Member -->
<string name="screen_block_member_title">Blocked users</string>
<string name="screen_block_member_total_prefix">Total</string>
<string name="screen_block_member_total_count"> %1$d </string>
<string name="screen_block_member_total_suffix">users</string>
<string name="screen_block_member_empty">No blocked users.</string>
<string name="screen_block_member_block">Block</string>
<string name="screen_block_member_unblock">Unblock</string>
<string name="screen_my_view_channel">View my channel</string>
<string name="screen_my_charge_can">Charge cans</string>
<string name="screen_my_point_reward">Point reward</string>

View File

@@ -354,6 +354,14 @@
<string name="msg_nickname_update_input_required">ニックネームを入力してください。</string>
<string name="msg_nickname_update_success">ニックネームを変更しました。</string>
<string name="msg_nickname_update_check_required">ニックネームの重複チェックを行ってください。</string>
<!-- Block Member -->
<string name="screen_block_member_title">ブロックリスト</string>
<string name="screen_block_member_total_prefix"></string>
<string name="screen_block_member_total_count"> %1$d </string>
<string name="screen_block_member_total_suffix"></string>
<string name="screen_block_member_empty">ブロックしたユーザーがいません。</string>
<string name="screen_block_member_block">ブロック</string>
<string name="screen_block_member_unblock">ブロック解除</string>
<string name="screen_my_view_channel">マイチャンネルを見る</string>
<string name="screen_my_charge_can">CANチャージ</string>
<string name="screen_my_point_reward">ポイントリワード</string>

View File

@@ -353,6 +353,14 @@
<string name="msg_nickname_update_input_required">닉네임을 입력하세요.</string>
<string name="msg_nickname_update_success">닉네임이 변경되었습니다.</string>
<string name="msg_nickname_update_check_required">닉네임 중복체크를 해주세요.</string>
<!-- Block Member -->
<string name="screen_block_member_title">차단 리스트</string>
<string name="screen_block_member_total_prefix"></string>
<string name="screen_block_member_total_count"> %1$d </string>
<string name="screen_block_member_total_suffix"></string>
<string name="screen_block_member_empty">차단한 유저가 없습니다.</string>
<string name="screen_block_member_block">차단</string>
<string name="screen_block_member_unblock">차단해제</string>
<string name="screen_my_view_channel">내 채널 보기</string>
<string name="screen_my_charge_can">캔 충전</string>
<string name="screen_my_point_reward">포인트 리워드</string>