Character 탭 문자열 리소스화
This commit is contained in:
@@ -379,12 +379,11 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
|
|||||||
SodaDialog(
|
SodaDialog(
|
||||||
activity = requireActivity(),
|
activity = requireActivity(),
|
||||||
layoutInflater = layoutInflater,
|
layoutInflater = layoutInflater,
|
||||||
title = "본인인증",
|
title = getString(R.string.auth_title),
|
||||||
desc = "보이스온의 오픈월드 캐릭터톡은\n청소년 보호를 위해 본인인증한\n성인만 이용이 가능합니다.\n" +
|
desc = getString(R.string.auth_desc),
|
||||||
"캐릭터톡 서비스를 이용하시려면\n본인인증을 하고 이용해주세요.",
|
confirmButtonTitle = getString(R.string.auth_go),
|
||||||
confirmButtonTitle = "본인인증 하러가기",
|
|
||||||
confirmButtonClick = { startAuthFlow() },
|
confirmButtonClick = { startAuthFlow() },
|
||||||
cancelButtonTitle = "취소",
|
cancelButtonTitle = getString(R.string.cancel),
|
||||||
cancelButtonClick = {},
|
cancelButtonClick = {},
|
||||||
descGravity = Gravity.CENTER
|
descGravity = Gravity.CENTER
|
||||||
).show(screenWidth)
|
).show(screenWidth)
|
||||||
@@ -430,7 +429,10 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
viewModel.toastLiveData.observe(viewLifecycleOwner) {
|
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()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ 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.recent.RecentCharacter
|
import kr.co.vividnext.sodalive.chat.character.recent.RecentCharacter
|
||||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||||
|
import kr.co.vividnext.sodalive.common.ToastMessage
|
||||||
|
|
||||||
class CharacterTabViewModel(
|
class CharacterTabViewModel(
|
||||||
private val repository: CharacterTabRepository
|
private val repository: CharacterTabRepository
|
||||||
@@ -16,8 +18,8 @@ class CharacterTabViewModel(
|
|||||||
val isLoading: LiveData<Boolean>
|
val isLoading: LiveData<Boolean>
|
||||||
get() = _isLoading
|
get() = _isLoading
|
||||||
|
|
||||||
private val _toastLiveData = MutableLiveData<String?>()
|
private val _toastLiveData = MutableLiveData<ToastMessage?>()
|
||||||
val toastLiveData: LiveData<String?>
|
val toastLiveData: LiveData<ToastMessage?>
|
||||||
get() = _toastLiveData
|
get() = _toastLiveData
|
||||||
|
|
||||||
private var _bannerListLiveData = MutableLiveData<List<CharacterBannerResponse>>()
|
private var _bannerListLiveData = MutableLiveData<List<CharacterBannerResponse>>()
|
||||||
@@ -61,15 +63,18 @@ class CharacterTabViewModel(
|
|||||||
_newCharacters.value = data.newCharacters
|
_newCharacters.value = data.newCharacters
|
||||||
_recommendCharacters.value = data.recommendCharacters
|
_recommendCharacters.value = data.recommendCharacters
|
||||||
} else {
|
} else {
|
||||||
_toastLiveData.value =
|
_toastLiveData.value = it.message?.let { message ->
|
||||||
it.message ?: "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
ToastMessage(message = message)
|
||||||
|
} ?: ToastMessage(resId = R.string.common_error_unknown)
|
||||||
}
|
}
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
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)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -86,15 +91,18 @@ class CharacterTabViewModel(
|
|||||||
if (response.success && response.data != null) {
|
if (response.success && response.data != null) {
|
||||||
_recommendCharacters.value = response.data
|
_recommendCharacters.value = response.data
|
||||||
} else {
|
} else {
|
||||||
_toastLiveData.value = response.message
|
_toastLiveData.value = response.message?.let { message ->
|
||||||
?: "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
ToastMessage(message = message)
|
||||||
|
} ?: ToastMessage(resId = R.string.common_error_unknown)
|
||||||
}
|
}
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
},
|
},
|
||||||
{ throwable ->
|
{ throwable ->
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
throwable.message?.let { msg -> Logger.e(msg) }
|
throwable.message?.let { msg -> Logger.e(msg) }
|
||||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
_toastLiveData.postValue(
|
||||||
|
ToastMessage(resId = R.string.common_error_unknown)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/pretendard_bold"
|
android:fontFamily="@font/pretendard_bold"
|
||||||
android:text="최근 대화한 캐릭터"
|
android:text="@string/screen_character_tab_recent_title"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="20sp" />
|
android:textSize="20sp" />
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:fontFamily="@font/pretendard_bold"
|
android:fontFamily="@font/pretendard_bold"
|
||||||
android:text="인기 캐릭터"
|
android:text="@string/screen_character_tab_popular_title"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="24sp" />
|
android:textSize="24sp" />
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/pretendard_regular"
|
android:fontFamily="@font/pretendard_regular"
|
||||||
android:text="전체보기"
|
android:text="@string/view_all"
|
||||||
android:textColor="#90A4AE"
|
android:textColor="#90A4AE"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:fontFamily="@font/pretendard_bold"
|
android:fontFamily="@font/pretendard_bold"
|
||||||
android:text="신규 캐릭터"
|
android:text="@string/screen_character_tab_new_title"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="24sp" />
|
android:textSize="24sp" />
|
||||||
|
|
||||||
@@ -158,7 +158,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/pretendard_regular"
|
android:fontFamily="@font/pretendard_regular"
|
||||||
android:text="전체보기"
|
android:text="@string/view_all"
|
||||||
android:textColor="#90A4AE"
|
android:textColor="#90A4AE"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
@@ -189,14 +189,15 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:paddingHorizontal="24dp">
|
android:paddingHorizontal="24dp"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:fontFamily="@font/pretendard_bold"
|
android:fontFamily="@font/pretendard_bold"
|
||||||
android:text="추천 캐릭터"
|
android:text="@string/screen_character_tab_recommend_title"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="24sp" />
|
android:textSize="24sp" />
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:includeFontPadding="false"
|
android:includeFontPadding="false"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:text="N"
|
android:text="@string/screen_character_tab_new_badge"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:includeFontPadding="false"
|
android:includeFontPadding="false"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:text="N"
|
android:text="@string/screen_character_tab_new_badge"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
|||||||
@@ -164,6 +164,11 @@
|
|||||||
<string name="screen_home_series_complete">Complete</string>
|
<string name="screen_home_series_complete">Complete</string>
|
||||||
<string name="screen_home_recommend_channel_content_label">Contents</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="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_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>
|
||||||
|
|||||||
@@ -164,6 +164,11 @@
|
|||||||
<string name="screen_home_series_complete">完結</string>
|
<string name="screen_home_series_complete">完結</string>
|
||||||
<string name="screen_home_recommend_channel_content_label">コンテンツ</string>
|
<string name="screen_home_recommend_channel_content_label">コンテンツ</string>
|
||||||
<string name="common_error_unknown">不明なエラーが発生しました。もう一度お試しください。</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_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>
|
||||||
|
|||||||
@@ -163,6 +163,11 @@
|
|||||||
<string name="screen_home_series_complete">완결</string>
|
<string name="screen_home_series_complete">완결</string>
|
||||||
<string name="screen_home_recommend_channel_content_label">콘텐츠</string>
|
<string name="screen_home_recommend_channel_content_label">콘텐츠</string>
|
||||||
<string name="common_error_unknown">알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.</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_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>
|
||||||
|
|||||||
Reference in New Issue
Block a user