고객센터 화면 문자열 리소스화

This commit is contained in:
2025-12-02 14:08:56 +09:00
parent b457cf0b4d
commit 7b6d2cd782
8 changed files with 48 additions and 24 deletions

View File

@@ -42,7 +42,11 @@ class FaqCategoryAdapter(
} }
val item = items[position] val item = items[position]
viewHolder.tvCategory.text = item viewHolder.tvCategory.text = if (item.isBlank()) {
context.getString(R.string.screen_service_center_faq_category_all)
} else {
item
}
viewHolder.tvCategory.setBackgroundResource( viewHolder.tvCategory.setBackgroundResource(
if (item == selectedCategory) { if (item == selectedCategory) {
R.drawable.bg_round_corner_4_7_3bb9f1 R.drawable.bg_round_corner_4_7_3bb9f1

View File

@@ -10,6 +10,7 @@ import android.widget.LinearLayout
import android.widget.Toast import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.databinding.ActivityServiceCenterBinding import kr.co.vividnext.sodalive.databinding.ActivityServiceCenterBinding
import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.dpToPx
@@ -30,7 +31,7 @@ class ServiceCenterActivity : BaseActivity<ActivityServiceCenterBinding>(
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
override fun setupView() { override fun setupView() {
binding.toolbar.tvBack.text = "고객센터" binding.toolbar.tvBack.text = getString(R.string.screen_service_center_title)
binding.toolbar.tvBack.setOnClickListener { finish() } binding.toolbar.tvBack.setOnClickListener { finish() }
val categoryAdapter = FaqCategoryAdapter(this) val categoryAdapter = FaqCategoryAdapter(this)
@@ -86,7 +87,10 @@ class ServiceCenterActivity : BaseActivity<ActivityServiceCenterBinding>(
recyclerView.adapter = faqAdapter recyclerView.adapter = faqAdapter
viewModel.toastLiveData.observe(this) { 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.categoriesLiveData.observe(this) { viewModel.categoriesLiveData.observe(this) {

View File

@@ -6,6 +6,8 @@ import com.orhanobut.logger.Logger
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.common.ToastMessage
import kr.co.vividnext.sodalive.R
class ServiceCenterViewModel(val repository: FaqRepository) : BaseViewModel() { class ServiceCenterViewModel(val repository: FaqRepository) : BaseViewModel() {
@@ -17,8 +19,8 @@ class ServiceCenterViewModel(val repository: FaqRepository) : BaseViewModel() {
val faqLiveData: LiveData<List<Faq>> val faqLiveData: LiveData<List<Faq>>
get() = _faqLiveData get() = _faqLiveData
private val _toastLiveData = MutableLiveData<String?>() private val _toastLiveData = MutableLiveData<ToastMessage?>()
val toastLiveData: LiveData<String?> val toastLiveData: LiveData<ToastMessage?>
get() = _toastLiveData get() = _toastLiveData
fun getFaqCategories() { fun getFaqCategories() {
@@ -31,18 +33,16 @@ class ServiceCenterViewModel(val repository: FaqRepository) : BaseViewModel() {
if (it.success && it.data != null) { if (it.success && it.data != null) {
_categoriesLiveData.postValue(it.data!!) _categoriesLiveData.postValue(it.data!!)
} else { } else {
if (it.message != null) { _toastLiveData.postValue(
_toastLiveData.postValue(it.message) it.message?.let { message ->
} else { ToastMessage(message = message)
_toastLiveData.postValue( } ?: ToastMessage(resId = R.string.common_error_unknown)
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." )
)
}
} }
}, },
{ {
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown))
} }
) )
) )
@@ -58,18 +58,16 @@ class ServiceCenterViewModel(val repository: FaqRepository) : BaseViewModel() {
if (it.success && it.data != null) { if (it.success && it.data != null) {
_faqLiveData.postValue(it.data!!) _faqLiveData.postValue(it.data!!)
} else { } else {
if (it.message != null) { _toastLiveData.postValue(
_toastLiveData.postValue(it.message) it.message?.let { message ->
} else { ToastMessage(message = message)
_toastLiveData.postValue( } ?: ToastMessage(resId = R.string.common_error_unknown)
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." )
)
}
} }
}, },
{ {
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown))
} }
) )
) )

View File

@@ -31,7 +31,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="보이스온 고객센터" android:text="@string/screen_service_center_logo_label"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="20sp" /> android:textSize="20sp" />
@@ -68,7 +68,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp" android:layout_marginHorizontal="13.3dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="자주 묻는 질문" android:text="@string/screen_service_center_faq_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" /> android:textSize="18.3sp" />

View File

@@ -13,6 +13,6 @@
android:lineSpacingExtra="6.7sp" android:lineSpacingExtra="6.7sp"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="13.3sp" android:textSize="13.3sp"
tools:text="전체" /> tools:text="@string/screen_service_center_faq_category_all" />
</FrameLayout> </FrameLayout>

View File

@@ -357,6 +357,12 @@
<!-- Member Tag --> <!-- Member Tag -->
<string name="screen_member_tag_title">Select interests</string> <string name="screen_member_tag_title">Select interests</string>
<string name="screen_member_tag_confirm">Apply selection</string> <string name="screen_member_tag_confirm">Apply selection</string>
<!-- Service Center -->
<string name="screen_service_center_title">Customer service</string>
<string name="screen_service_center_logo_label">VoiceOn Customer Service</string>
<string name="screen_service_center_faq_title">FAQ</string>
<string name="screen_service_center_faq_category_all">All</string>
<string name="screen_service_center_kakao">TALK inquiry</string>
<!-- Block Member --> <!-- Block Member -->
<string name="screen_block_member_title">Blocked users</string> <string name="screen_block_member_title">Blocked users</string>
<string name="screen_block_member_total_prefix">Total</string> <string name="screen_block_member_total_prefix">Total</string>

View File

@@ -357,6 +357,12 @@
<!-- Member Tag --> <!-- Member Tag -->
<string name="screen_member_tag_title">関心事を選択</string> <string name="screen_member_tag_title">関心事を選択</string>
<string name="screen_member_tag_confirm">選択する</string> <string name="screen_member_tag_confirm">選択する</string>
<!-- Service Center -->
<string name="screen_service_center_title">カスタマーセンター</string>
<string name="screen_service_center_logo_label">VoiceOn カスタマーセンター</string>
<string name="screen_service_center_faq_title">よくある質問</string>
<string name="screen_service_center_faq_category_all">すべて</string>
<string name="screen_service_center_kakao">TALKお問い合わせ</string>
<!-- Block Member --> <!-- Block Member -->
<string name="screen_block_member_title">ブロックリスト</string> <string name="screen_block_member_title">ブロックリスト</string>
<string name="screen_block_member_total_prefix"></string> <string name="screen_block_member_total_prefix"></string>

View File

@@ -356,6 +356,12 @@
<!-- Member Tag --> <!-- Member Tag -->
<string name="screen_member_tag_title">관심사 선택</string> <string name="screen_member_tag_title">관심사 선택</string>
<string name="screen_member_tag_confirm">선택하기</string> <string name="screen_member_tag_confirm">선택하기</string>
<!-- Service Center -->
<string name="screen_service_center_title">고객센터</string>
<string name="screen_service_center_logo_label">보이스온 고객센터</string>
<string name="screen_service_center_faq_title">자주 묻는 질문</string>
<string name="screen_service_center_faq_category_all">전체</string>
<string name="screen_service_center_kakao">TALK 문의</string>
<!-- Block Member --> <!-- Block Member -->
<string name="screen_block_member_title">차단 리스트</string> <string name="screen_block_member_title">차단 리스트</string>
<string name="screen_block_member_total_prefix"></string> <string name="screen_block_member_total_prefix"></string>