신규 캐릭터 전체 문자열 리소스화

This commit is contained in:
2025-12-01 17:49:55 +09:00
parent 2066dbc716
commit e44bd68152
6 changed files with 22 additions and 9 deletions

View File

@@ -6,6 +6,7 @@ import android.view.View
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
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.chat.character.detail.CharacterDetailActivity import kr.co.vividnext.sodalive.chat.character.detail.CharacterDetailActivity
import kr.co.vividnext.sodalive.chat.character.detail.CharacterDetailActivity.Companion.EXTRA_CHARACTER_ID import kr.co.vividnext.sodalive.chat.character.detail.CharacterDetailActivity.Companion.EXTRA_CHARACTER_ID
@@ -32,7 +33,7 @@ class NewCharactersAllActivity : BaseActivity<ActivityNewCharactersAllBinding>(
override fun setupView() { override fun setupView() {
loadingDialog = LoadingDialog(this, layoutInflater) loadingDialog = LoadingDialog(this, layoutInflater)
binding.toolbar.tvBack.text = "신규 캐릭터 전체보기" binding.toolbar.tvBack.text = getString(R.string.screen_new_characters_all_title)
binding.toolbar.tvBack.setOnClickListener { finish() } binding.toolbar.tvBack.setOnClickListener { finish() }
val spanCount = 2 val spanCount = 2
@@ -86,7 +87,7 @@ class NewCharactersAllActivity : BaseActivity<ActivityNewCharactersAllBinding>(
} }
viewModel.toastLiveData.observe(this) { message -> viewModel.toastLiveData.observe(this) { message ->
message?.let { showToast(it) } message?.let { showToast(it.asString(this)) }
} }
} }
} }

View File

@@ -5,16 +5,18 @@ import androidx.lifecycle.MutableLiveData
import com.orhanobut.logger.Logger 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.R
import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.chat.character.Character import kr.co.vividnext.sodalive.chat.character.Character
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.UiText
class NewCharactersAllViewModel( class NewCharactersAllViewModel(
private val repository: NewCharactersRepository private val repository: NewCharactersRepository
) : BaseViewModel() { ) : BaseViewModel() {
private val _toastLiveData = MutableLiveData<String?>() private val _toastLiveData = MutableLiveData<UiText?>()
val toastLiveData: LiveData<String?> get() = _toastLiveData val toastLiveData: LiveData<UiText?> get() = _toastLiveData
private val _isLoading = MutableLiveData(false) private val _isLoading = MutableLiveData(false)
val isLoading: LiveData<Boolean> get() = _isLoading val isLoading: LiveData<Boolean> get() = _isLoading
@@ -54,14 +56,15 @@ class NewCharactersAllViewModel(
isLast = true isLast = true
} }
} else { } else {
_toastLiveData.value = response.message _toastLiveData.value = response.message?.takeIf { it.isNotBlank() }
?: "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ?.let { UiText.DynamicString(it) }
?: UiText.StringResource(R.string.common_error_unknown)
} }
_isLoading.value = false _isLoading.value = false
}, { e -> }, { e ->
_isLoading.value = false _isLoading.value = false
e.message?.let { Logger.e(it) } e.message?.let { Logger.e(it) }
_toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." _toastLiveData.value = UiText.StringResource(R.string.common_error_unknown)
}) })
) )
} }

View File

@@ -24,7 +24,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="전체" android:text="@string/screen_new_characters_all_total_label"
android:textColor="@color/color_e2e2e2" android:textColor="@color/color_e2e2e2"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -45,7 +45,7 @@
android:layout_marginStart="2dp" android:layout_marginStart="2dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="" android:text="@string/screen_new_characters_all_total_unit"
android:textColor="@color/color_e2e2e2" android:textColor="@color/color_e2e2e2"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
</LinearLayout> </LinearLayout>

View File

@@ -243,6 +243,9 @@
<string name="screen_character_tab_new_title">New characters</string> <string name="screen_character_tab_new_title">New characters</string>
<string name="screen_character_tab_recommend_title">Recommended characters</string> <string name="screen_character_tab_recommend_title">Recommended characters</string>
<string name="screen_character_tab_new_badge">N</string> <string name="screen_character_tab_new_badge">N</string>
<string name="screen_new_characters_all_title">All new characters</string>
<string name="screen_new_characters_all_total_label">Total</string>
<string name="screen_new_characters_all_total_unit">items</string>
<string name="screen_chat_tab_character">Character</string> <string name="screen_chat_tab_character">Character</string>
<string name="screen_chat_tab_original">Works</string> <string name="screen_chat_tab_original">Works</string>
<string name="screen_chat_tab_talk">Talk</string> <string name="screen_chat_tab_talk">Talk</string>

View File

@@ -243,6 +243,9 @@
<string name="screen_character_tab_new_title">新着キャラクター</string> <string name="screen_character_tab_new_title">新着キャラクター</string>
<string name="screen_character_tab_recommend_title">おすすめキャラクター</string> <string name="screen_character_tab_recommend_title">おすすめキャラクター</string>
<string name="screen_character_tab_new_badge">N</string> <string name="screen_character_tab_new_badge">N</string>
<string name="screen_new_characters_all_title">新着キャラクター一覧</string>
<string name="screen_new_characters_all_total_label">合計</string>
<string name="screen_new_characters_all_total_unit"></string>
<string name="screen_chat_tab_character">キャラクター</string> <string name="screen_chat_tab_character">キャラクター</string>
<string name="screen_chat_tab_original">作品別</string> <string name="screen_chat_tab_original">作品別</string>
<string name="screen_chat_tab_talk">トーク</string> <string name="screen_chat_tab_talk">トーク</string>

View File

@@ -242,6 +242,9 @@
<string name="screen_character_tab_new_title">신규 캐릭터</string> <string name="screen_character_tab_new_title">신규 캐릭터</string>
<string name="screen_character_tab_recommend_title">추천 캐릭터</string> <string name="screen_character_tab_recommend_title">추천 캐릭터</string>
<string name="screen_character_tab_new_badge">N</string> <string name="screen_character_tab_new_badge">N</string>
<string name="screen_new_characters_all_title">신규 캐릭터 전체보기</string>
<string name="screen_new_characters_all_total_label">전체</string>
<string name="screen_new_characters_all_total_unit"></string>
<string name="screen_chat_tab_character">캐릭터</string> <string name="screen_chat_tab_character">캐릭터</string>
<string name="screen_chat_tab_original">작품별</string> <string name="screen_chat_tab_original">작품별</string>
<string name="screen_chat_tab_talk"></string> <string name="screen_chat_tab_talk"></string>