From e727658b24a88db664125d7c4e90f4ab6be268d8 Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 1 Dec 2025 14:59:21 +0900 Subject: [PATCH] =?UTF-8?q?FollowingCreator=20=EB=AC=B8=EC=9E=90=EC=97=B4?= =?UTF-8?q?=20=EB=A6=AC=EC=86=8C=EC=8A=A4=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../following/FollowingCreatorActivity.kt | 17 ++++++--- .../following/FollowingCreatorViewModel.kt | 36 +++++++++---------- .../res/layout/activity_following_creator.xml | 6 ++-- app/src/main/res/values-en/strings.xml | 7 ++++ app/src/main/res/values-ja/strings.xml | 7 ++++ app/src/main/res/values/strings.xml | 7 ++++ 6 files changed, 55 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/following/FollowingCreatorActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/following/FollowingCreatorActivity.kt index 94ae80e5..fd162cab 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/following/FollowingCreatorActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/following/FollowingCreatorActivity.kt @@ -8,6 +8,7 @@ import android.view.View import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.LoadingDialog @@ -34,7 +35,7 @@ class FollowingCreatorActivity : BaseActivity( override fun setupView() { loadingDialog = LoadingDialog(this, layoutInflater) - binding.toolbar.tvBack.text = "팔로잉 리스트" + binding.toolbar.tvBack.text = getString(R.string.screen_following_creator_title) binding.toolbar.tvBack.setOnClickListener { finish() } adapter = FollowingCreatorAdapter( @@ -106,8 +107,13 @@ class FollowingCreatorActivity : BaseActivity( @SuppressLint("SetTextI18n") private fun bindData() { - viewModel.toastLiveData.observe(this) { - it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() } + viewModel.toastLiveData.observe(this) { toastMessage -> + 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) { @@ -124,7 +130,10 @@ class FollowingCreatorActivity : BaseActivity( } viewModel.creatorListTotalCountLiveData.observe(this) { - binding.tvTotalCount.text = " $it " + binding.tvTotalCount.text = " ${getString( + R.string.following_creator_total_count_value, + it + )} " if (it > 0) { binding.tvNone.visibility = View.GONE diff --git a/app/src/main/java/kr/co/vividnext/sodalive/following/FollowingCreatorViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/following/FollowingCreatorViewModel.kt index 37d0db53..df958fb5 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/following/FollowingCreatorViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/following/FollowingCreatorViewModel.kt @@ -5,8 +5,10 @@ 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.common.SharedPreferenceManager +import kr.co.vividnext.sodalive.common.ToastMessage import kr.co.vividnext.sodalive.user.UserRepository class FollowingCreatorViewModel( @@ -26,8 +28,8 @@ class FollowingCreatorViewModel( val isLoading: LiveData get() = _isLoading - private val _toastLiveData = MutableLiveData() - val toastLiveData: LiveData + private val _toastLiveData = MutableLiveData() + val toastLiveData: LiveData get() = _toastLiveData var page = 1 @@ -59,21 +61,19 @@ class FollowingCreatorViewModel( _creatorListTotalCountLiveData.value = data.totalCount _creatorListLiveData.value = data.items } + } else if (it.message != null) { + _toastLiveData.postValue(ToastMessage(message = it.message)) } else { - if (it.message != null) { - _toastLiveData.postValue(it.message) - } else { - _toastLiveData.postValue( - "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." - ) - } + _toastLiveData.postValue( + ToastMessage(resId = R.string.common_error_unknown) + ) } }, { _isLoading.value = false it.message?.let { message -> Logger.e(message) } _toastLiveData.postValue( - "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." + ToastMessage(resId = R.string.common_error_unknown) ) } ) @@ -100,20 +100,20 @@ class FollowingCreatorViewModel( pageSize *= page page = 1 getFollowedCreatorAllList() + } else if (it.message != null) { + _toastLiveData.postValue(ToastMessage(message = it.message)) } else { - if (it.message != null) { - _toastLiveData.postValue(it.message) - } else { - _toastLiveData.postValue( - "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." - ) - } + _toastLiveData.postValue( + ToastMessage(resId = R.string.common_error_unknown) + ) } }, { _isLoading.value = false it.message?.let { message -> Logger.e(message) } - _toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") + _toastLiveData.postValue( + ToastMessage(resId = R.string.common_error_unknown) + ) } ) ) diff --git a/app/src/main/res/layout/activity_following_creator.xml b/app/src/main/res/layout/activity_following_creator.xml index 053cfdb9..e572fb64 100644 --- a/app/src/main/res/layout/activity_following_creator.xml +++ b/app/src/main/res/layout/activity_following_creator.xml @@ -24,7 +24,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/gmarket_sans_medium" - android:text="총" + android:text="@string/following_creator_total_prefix" android:textColor="@color/color_eeeeee" android:textSize="12sp" /> @@ -41,7 +41,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/gmarket_sans_medium" - android:text="명" + android:text="@string/following_creator_total_suffix" android:textColor="@color/color_eeeeee" android:textSize="12sp" /> @@ -66,7 +66,7 @@ android:layout_marginTop="13.3dp" android:fontFamily="@font/gmarket_sans_medium" android:gravity="center" - android:text="팔로우 중인 채널이 없습니다." + android:text="@string/following_creator_empty" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 5829e1c9..790a93dc 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -178,6 +178,13 @@ Series No results found. + + Following list + Total + %1$d + creators + You are not following any channels. + Settings Notification settings diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 19210658..21b7d180 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -178,6 +178,13 @@ シリーズ 検索結果がありません。 + + フォロー中リスト + 合計 + %1$d + + フォロー中のチャンネルがありません。 + 設定 通知設定 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ef06a823..202757da 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -177,6 +177,13 @@ 시리즈 검색 결과가 없습니다. + + 팔로잉 리스트 + + %1$d + + 팔로우 중인 채널이 없습니다. + 설정 알림 설정