Character 탭 문자열 리소스화

This commit is contained in:
2025-12-01 16:45:22 +09:00
parent ebe5c342c9
commit 4e0e6708e6
8 changed files with 49 additions and 23 deletions

View File

@@ -379,12 +379,11 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
SodaDialog(
activity = requireActivity(),
layoutInflater = layoutInflater,
title = "본인인증",
desc = "보이스온의 오픈월드 캐릭터톡은\n청소년 보호를 위해 본인인증한\n성인만 이용이 가능합니다.\n" +
"캐릭터톡 서비스를 이용하시려면\n본인인증을 하고 이용해주세요.",
confirmButtonTitle = "본인인증 하러가기",
title = getString(R.string.auth_title),
desc = getString(R.string.auth_desc),
confirmButtonTitle = getString(R.string.auth_go),
confirmButtonClick = { startAuthFlow() },
cancelButtonTitle = "취소",
cancelButtonTitle = getString(R.string.cancel),
cancelButtonClick = {},
descGravity = Gravity.CENTER
).show(screenWidth)
@@ -430,7 +429,10 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
}
viewModel.toastLiveData.observe(viewLifecycleOwner) {
it?.let { Toast.makeText(requireActivity(), it, Toast.LENGTH_LONG).show() }
val text = it?.message ?: it?.resId?.let { resId -> getString(resId) }
if (!text.isNullOrBlank()) {
Toast.makeText(requireActivity(), text, Toast.LENGTH_LONG).show()
}
}
}

View File

@@ -5,9 +5,11 @@ import androidx.lifecycle.MutableLiveData
import com.orhanobut.logger.Logger
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.chat.character.recent.RecentCharacter
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.ToastMessage
class CharacterTabViewModel(
private val repository: CharacterTabRepository
@@ -16,8 +18,8 @@ class CharacterTabViewModel(
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
private var _bannerListLiveData = MutableLiveData<List<CharacterBannerResponse>>()
@@ -61,15 +63,18 @@ class CharacterTabViewModel(
_newCharacters.value = data.newCharacters
_recommendCharacters.value = data.recommendCharacters
} else {
_toastLiveData.value =
it.message ?: "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
_toastLiveData.value = it.message?.let { message ->
ToastMessage(message = message)
} ?: ToastMessage(resId = R.string.common_error_unknown)
}
_isLoading.value = false
},
{
_isLoading.value = false
it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
_toastLiveData.postValue(
ToastMessage(resId = R.string.common_error_unknown)
)
}
)
)
@@ -86,15 +91,18 @@ class CharacterTabViewModel(
if (response.success && response.data != null) {
_recommendCharacters.value = response.data
} else {
_toastLiveData.value = response.message
?: "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
_toastLiveData.value = response.message?.let { message ->
ToastMessage(message = message)
} ?: ToastMessage(resId = R.string.common_error_unknown)
}
_isLoading.value = false
},
{ throwable ->
_isLoading.value = false
throwable.message?.let { msg -> Logger.e(msg) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
_toastLiveData.postValue(
ToastMessage(resId = R.string.common_error_unknown)
)
}
)
)

View File

@@ -55,7 +55,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/pretendard_bold"
android:text="최근 대화한 캐릭터"
android:text="@string/screen_character_tab_recent_title"
android:textColor="@color/white"
android:textSize="20sp" />
@@ -103,7 +103,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/pretendard_bold"
android:text="인기 캐릭터"
android:text="@string/screen_character_tab_popular_title"
android:textColor="@color/white"
android:textSize="24sp" />
@@ -112,7 +112,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/pretendard_regular"
android:text="전체보기"
android:text="@string/view_all"
android:textColor="#90A4AE"
android:textSize="14sp"
android:visibility="gone" />
@@ -149,7 +149,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/pretendard_bold"
android:text="신규 캐릭터"
android:text="@string/screen_character_tab_new_title"
android:textColor="@color/white"
android:textSize="24sp" />
@@ -158,7 +158,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/pretendard_regular"
android:text="전체보기"
android:text="@string/view_all"
android:textColor="#90A4AE"
android:textSize="14sp" />
@@ -189,14 +189,15 @@
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="24dp">
android:paddingHorizontal="24dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/pretendard_bold"
android:text="추천 캐릭터"
android:text="@string/screen_character_tab_recommend_title"
android:textColor="@color/white"
android:textSize="24sp" />

View File

@@ -41,7 +41,7 @@
android:gravity="center"
android:includeFontPadding="false"
android:maxLines="1"
android:text="N"
android:text="@string/screen_character_tab_new_badge"
android:textColor="@color/white"
android:textSize="18sp"
android:visibility="gone" />

View File

@@ -31,7 +31,7 @@
android:gravity="center"
android:includeFontPadding="false"
android:maxLines="1"
android:text="N"
android:text="@string/screen_character_tab_new_badge"
android:textColor="@color/white"
android:textSize="18sp"
android:visibility="gone"

View File

@@ -164,6 +164,11 @@
<string name="screen_home_series_complete">Complete</string>
<string name="screen_home_recommend_channel_content_label">Contents</string>
<string name="common_error_unknown">An unknown error occurred. Please try again.</string>
<string name="screen_character_tab_recent_title">Recent characters</string>
<string name="screen_character_tab_popular_title">Popular 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_new_badge">N</string>
<string name="screen_chat_tab_character">Character</string>
<string name="screen_chat_tab_original">Works</string>
<string name="screen_chat_tab_talk">Talk</string>

View File

@@ -164,6 +164,11 @@
<string name="screen_home_series_complete">完結</string>
<string name="screen_home_recommend_channel_content_label">コンテンツ</string>
<string name="common_error_unknown">不明なエラーが発生しました。もう一度お試しください。</string>
<string name="screen_character_tab_recent_title">最近話したキャラクター</string>
<string name="screen_character_tab_popular_title">人気キャラクター</string>
<string name="screen_character_tab_new_title">新着キャラクター</string>
<string name="screen_character_tab_recommend_title">おすすめキャラクター</string>
<string name="screen_character_tab_new_badge">N</string>
<string name="screen_chat_tab_character">キャラクター</string>
<string name="screen_chat_tab_original">作品別</string>
<string name="screen_chat_tab_talk">トーク</string>

View File

@@ -163,6 +163,11 @@
<string name="screen_home_series_complete">완결</string>
<string name="screen_home_recommend_channel_content_label">콘텐츠</string>
<string name="common_error_unknown">알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.</string>
<string name="screen_character_tab_recent_title">최근 대화한 캐릭터</string>
<string name="screen_character_tab_popular_title">인기 캐릭터</string>
<string name="screen_character_tab_new_title">신규 캐릭터</string>
<string name="screen_character_tab_recommend_title">추천 캐릭터</string>
<string name="screen_character_tab_new_badge">N</string>
<string name="screen_chat_tab_character">캐릭터</string>
<string name="screen_chat_tab_original">작품별</string>
<string name="screen_chat_tab_talk"></string>