FollowingCreator 문자열 리소스화

This commit is contained in:
2025-12-01 14:59:21 +09:00
parent eb0aa9473f
commit e727658b24
6 changed files with 55 additions and 25 deletions

View File

@@ -8,6 +8,7 @@ import android.view.View
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.common.Constants import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.common.LoadingDialog
@@ -34,7 +35,7 @@ class FollowingCreatorActivity : BaseActivity<ActivityFollowingCreatorBinding>(
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_following_creator_title)
binding.toolbar.tvBack.setOnClickListener { finish() } binding.toolbar.tvBack.setOnClickListener { finish() }
adapter = FollowingCreatorAdapter( adapter = FollowingCreatorAdapter(
@@ -106,8 +107,13 @@ class FollowingCreatorActivity : BaseActivity<ActivityFollowingCreatorBinding>(
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
private fun bindData() { private fun bindData() {
viewModel.toastLiveData.observe(this) { viewModel.toastLiveData.observe(this) { toastMessage ->
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() } toastMessage?.let {
val message = it.message ?: it.resId?.let(::getString)
message?.let { text ->
Toast.makeText(applicationContext, text, Toast.LENGTH_LONG).show()
}
}
} }
viewModel.isLoading.observe(this) { viewModel.isLoading.observe(this) {
@@ -124,7 +130,10 @@ class FollowingCreatorActivity : BaseActivity<ActivityFollowingCreatorBinding>(
} }
viewModel.creatorListTotalCountLiveData.observe(this) { viewModel.creatorListTotalCountLiveData.observe(this) {
binding.tvTotalCount.text = " $it " binding.tvTotalCount.text = " ${getString(
R.string.following_creator_total_count_value,
it
)} "
if (it > 0) { if (it > 0) {
binding.tvNone.visibility = View.GONE binding.tvNone.visibility = View.GONE

View File

@@ -5,8 +5,10 @@ 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.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.ToastMessage
import kr.co.vividnext.sodalive.user.UserRepository import kr.co.vividnext.sodalive.user.UserRepository
class FollowingCreatorViewModel( class FollowingCreatorViewModel(
@@ -26,8 +28,8 @@ class FollowingCreatorViewModel(
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
var page = 1 var page = 1
@@ -59,21 +61,19 @@ class FollowingCreatorViewModel(
_creatorListTotalCountLiveData.value = data.totalCount _creatorListTotalCountLiveData.value = data.totalCount
_creatorListLiveData.value = data.items _creatorListLiveData.value = data.items
} }
} else { } else if (it.message != null) {
if (it.message != null) { _toastLiveData.postValue(ToastMessage(message = it.message))
_toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ToastMessage(resId = R.string.common_error_unknown)
) )
} }
}
}, },
{ {
_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)
) )
} }
) )
@@ -100,20 +100,20 @@ class FollowingCreatorViewModel(
pageSize *= page pageSize *= page
page = 1 page = 1
getFollowedCreatorAllList() getFollowedCreatorAllList()
} else { } else if (it.message != null) {
if (it.message != null) { _toastLiveData.postValue(ToastMessage(message = it.message))
_toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ToastMessage(resId = R.string.common_error_unknown)
) )
} }
}
}, },
{ {
_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)
)
} }
) )
) )

View File

@@ -24,7 +24,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="" android:text="@string/following_creator_total_prefix"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="12sp" /> android:textSize="12sp" />
@@ -41,7 +41,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="" android:text="@string/following_creator_total_suffix"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="12sp" /> android:textSize="12sp" />
</LinearLayout> </LinearLayout>
@@ -66,7 +66,7 @@
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="팔로우 중인 채널이 없습니다." android:text="@string/following_creator_empty"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View File

@@ -178,6 +178,13 @@
<string name="screen_search_series_title">Series</string> <string name="screen_search_series_title">Series</string>
<string name="screen_search_no_result">No results found.</string> <string name="screen_search_no_result">No results found.</string>
<!-- Following Creator -->
<string name="screen_following_creator_title">Following list</string>
<string name="following_creator_total_prefix">Total</string>
<string name="following_creator_total_count_value">%1$d</string>
<string name="following_creator_total_suffix">creators</string>
<string name="following_creator_empty">You are not following any channels.</string>
<!-- Settings / Notices / Events --> <!-- Settings / Notices / Events -->
<string name="screen_settings_title">Settings</string> <string name="screen_settings_title">Settings</string>
<string name="screen_settings_notification">Notification settings</string> <string name="screen_settings_notification">Notification settings</string>

View File

@@ -178,6 +178,13 @@
<string name="screen_search_series_title">シリーズ</string> <string name="screen_search_series_title">シリーズ</string>
<string name="screen_search_no_result">検索結果がありません。</string> <string name="screen_search_no_result">検索結果がありません。</string>
<!-- Following Creator -->
<string name="screen_following_creator_title">フォロー中リスト</string>
<string name="following_creator_total_prefix">合計</string>
<string name="following_creator_total_count_value">%1$d</string>
<string name="following_creator_total_suffix"></string>
<string name="following_creator_empty">フォロー中のチャンネルがありません。</string>
<!-- Settings / Notices / Events --> <!-- Settings / Notices / Events -->
<string name="screen_settings_title">設定</string> <string name="screen_settings_title">設定</string>
<string name="screen_settings_notification">通知設定</string> <string name="screen_settings_notification">通知設定</string>

View File

@@ -177,6 +177,13 @@
<string name="screen_search_series_title">시리즈</string> <string name="screen_search_series_title">시리즈</string>
<string name="screen_search_no_result">검색 결과가 없습니다.</string> <string name="screen_search_no_result">검색 결과가 없습니다.</string>
<!-- Following Creator -->
<string name="screen_following_creator_title">팔로잉 리스트</string>
<string name="following_creator_total_prefix"></string>
<string name="following_creator_total_count_value">%1$d</string>
<string name="following_creator_total_suffix"></string>
<string name="following_creator_empty">팔로우 중인 채널이 없습니다.</string>
<!-- Settings / Notices / Events --> <!-- Settings / Notices / Events -->
<string name="screen_settings_title">설정</string> <string name="screen_settings_title">설정</string>
<string name="screen_settings_notification">알림 설정</string> <string name="screen_settings_notification">알림 설정</string>