재생목록 상세 문자열 리소스화
플레이리스트 상세 화면 문구를 ko/en/ja 리소스로 정리했습니다.
This commit is contained in:
@@ -173,8 +173,9 @@ class AudioContentPlaylistDetailActivity : BaseActivity<ActivityAudioContentPlay
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
if (playlistId <= 0) {
|
if (playlistId <= 0) {
|
||||||
showToast("잘못된 요청입니다.")
|
showToast(getString(R.string.screen_audio_content_error_invalid_request))
|
||||||
finish()
|
finish()
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
bindData()
|
bindData()
|
||||||
@@ -283,16 +284,19 @@ class AudioContentPlaylistDetailActivity : BaseActivity<ActivityAudioContentPlay
|
|||||||
SodaDialog(
|
SodaDialog(
|
||||||
activity = this@AudioContentPlaylistDetailActivity,
|
activity = this@AudioContentPlaylistDetailActivity,
|
||||||
layoutInflater = layoutInflater,
|
layoutInflater = layoutInflater,
|
||||||
title = "재생 목록 삭제",
|
title = getString(R.string.audio_content_playlist_detail_delete_title),
|
||||||
desc = "'${binding.tvTitle.text}'을 삭제하시겠습니까?",
|
desc = getString(
|
||||||
confirmButtonTitle = "삭제",
|
R.string.audio_content_playlist_detail_delete_message,
|
||||||
|
binding.tvTitle.text
|
||||||
|
),
|
||||||
|
confirmButtonTitle = getString(R.string.screen_audio_content_detail_delete),
|
||||||
confirmButtonClick = {
|
confirmButtonClick = {
|
||||||
viewModel.deletePlaylist(playlistId = playlistId) {
|
viewModel.deletePlaylist(playlistId = playlistId) {
|
||||||
setResult(RESULT_OK)
|
setResult(RESULT_OK)
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
cancelButtonTitle = "취소",
|
cancelButtonTitle = getString(R.string.cancel),
|
||||||
cancelButtonClick = {}
|
cancelButtonClick = {}
|
||||||
).show(screenWidth)
|
).show(screenWidth)
|
||||||
}
|
}
|
||||||
@@ -319,8 +323,14 @@ class AudioContentPlaylistDetailActivity : BaseActivity<ActivityAudioContentPlay
|
|||||||
viewModel.detailResponseLiveData.observe(this) {
|
viewModel.detailResponseLiveData.observe(this) {
|
||||||
binding.tvDesc.text = it.desc
|
binding.tvDesc.text = it.desc
|
||||||
binding.tvTitle.text = it.title
|
binding.tvTitle.text = it.title
|
||||||
binding.tvContentCount.text = " ${it.contentCount}개"
|
binding.tvContentCount.text = getString(
|
||||||
binding.tvCreateDate.text = "만든 날짜 ${it.createdDate} "
|
R.string.audio_content_playlist_total_count,
|
||||||
|
it.contentCount
|
||||||
|
)
|
||||||
|
binding.tvCreateDate.text = getString(
|
||||||
|
R.string.audio_content_playlist_detail_created_date,
|
||||||
|
it.createdDate
|
||||||
|
)
|
||||||
adapter.updateItems(it.contentList)
|
adapter.updateItems(it.contentList)
|
||||||
this.contentList.clear()
|
this.contentList.clear()
|
||||||
this.contentList.addAll(it.contentList)
|
this.contentList.addAll(it.contentList)
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
|||||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||||
import kr.co.vividnext.sodalive.audio_content.playlist.AudioContentPlaylistRepository
|
import kr.co.vividnext.sodalive.audio_content.playlist.AudioContentPlaylistRepository
|
||||||
import kr.co.vividnext.sodalive.base.BaseViewModel
|
import kr.co.vividnext.sodalive.base.BaseViewModel
|
||||||
|
import kr.co.vividnext.sodalive.common.SodaLiveApplicationHolder
|
||||||
|
import kr.co.vividnext.sodalive.R
|
||||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||||
|
|
||||||
class AudioContentPlaylistDetailViewModel(
|
class AudioContentPlaylistDetailViewModel(
|
||||||
@@ -24,6 +26,14 @@ class AudioContentPlaylistDetailViewModel(
|
|||||||
val detailResponseLiveData: LiveData<GetPlaylistDetailResponse>
|
val detailResponseLiveData: LiveData<GetPlaylistDetailResponse>
|
||||||
get() = _detailResponseLiveData
|
get() = _detailResponseLiveData
|
||||||
|
|
||||||
|
private val unknownErrorMessage: String
|
||||||
|
get() = SodaLiveApplicationHolder.get().getString(R.string.common_error_unknown)
|
||||||
|
|
||||||
|
private val deleteSuccessMessage: String
|
||||||
|
get() = SodaLiveApplicationHolder.get().getString(
|
||||||
|
R.string.audio_content_playlist_detail_delete_success
|
||||||
|
)
|
||||||
|
|
||||||
fun getPlaylistDetail(playlistId: Long) {
|
fun getPlaylistDetail(playlistId: Long) {
|
||||||
_isLoading.value = true
|
_isLoading.value = true
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
@@ -41,9 +51,7 @@ class AudioContentPlaylistDetailViewModel(
|
|||||||
if (it.message != null) {
|
if (it.message != null) {
|
||||||
_toastLiveData.postValue(it.message)
|
_toastLiveData.postValue(it.message)
|
||||||
} else {
|
} else {
|
||||||
_toastLiveData.postValue(
|
_toastLiveData.postValue(unknownErrorMessage)
|
||||||
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
@@ -51,7 +59,7 @@ class AudioContentPlaylistDetailViewModel(
|
|||||||
{
|
{
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
it.message?.let { message -> Logger.e(message) }
|
it.message?.let { message -> Logger.e(message) }
|
||||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
_toastLiveData.postValue(unknownErrorMessage)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -69,15 +77,13 @@ class AudioContentPlaylistDetailViewModel(
|
|||||||
.subscribe(
|
.subscribe(
|
||||||
{
|
{
|
||||||
if (it.success) {
|
if (it.success) {
|
||||||
_toastLiveData.value = "삭제되었습니다."
|
_toastLiveData.value = deleteSuccessMessage
|
||||||
onSuccess()
|
onSuccess()
|
||||||
} else {
|
} else {
|
||||||
if (it.message != null) {
|
if (it.message != null) {
|
||||||
_toastLiveData.postValue(it.message)
|
_toastLiveData.postValue(it.message)
|
||||||
} else {
|
} else {
|
||||||
_toastLiveData.postValue(
|
_toastLiveData.postValue(unknownErrorMessage)
|
||||||
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
@@ -85,7 +91,7 @@ class AudioContentPlaylistDetailViewModel(
|
|||||||
{
|
{
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
it.message?.let { message -> Logger.e(message) }
|
it.message?.let { message -> Logger.e(message) }
|
||||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
_toastLiveData.postValue(unknownErrorMessage)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -246,7 +246,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:paddingVertical="11dp"
|
android:paddingVertical="11dp"
|
||||||
android:text="Play"
|
android:text="@string/audio_content_playlist_detail_play"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="14.7sp" />
|
android:textSize="14.7sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:paddingVertical="11dp"
|
android:paddingVertical="11dp"
|
||||||
android:text="Shuffle"
|
android:text="@string/audio_content_playlist_detail_shuffle"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="14.7sp" />
|
android:textSize="14.7sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
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/screen_audio_content_detail_delete"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="13.3sp"
|
android:textSize="13.3sp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -879,6 +879,12 @@
|
|||||||
<string name="audio_content_playlist_content_count">Total %1$d items</string>
|
<string name="audio_content_playlist_content_count">Total %1$d items</string>
|
||||||
<string name="audio_content_playlist_empty_title">No playlists yet.</string>
|
<string name="audio_content_playlist_empty_title">No playlists yet.</string>
|
||||||
<string name="audio_content_playlist_empty_desc">Create a playlist with your favorite content.</string>
|
<string name="audio_content_playlist_empty_desc">Create a playlist with your favorite content.</string>
|
||||||
|
<string name="audio_content_playlist_detail_play">Play</string>
|
||||||
|
<string name="audio_content_playlist_detail_shuffle">Shuffle</string>
|
||||||
|
<string name="audio_content_playlist_detail_created_date">Created on %1$s</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_title">Delete playlist</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_message">Delete \'%1$s\'?</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_success">Deleted.</string>
|
||||||
<string name="screen_audio_content_new_all_title">New short content</string>
|
<string name="screen_audio_content_new_all_title">New short content</string>
|
||||||
<string name="screen_audio_content_new_all_title_free">New free content</string>
|
<string name="screen_audio_content_new_all_title_free">New free content</string>
|
||||||
<string name="screen_audio_content_new_all_notice">New short content posted in the last two weeks.</string>
|
<string name="screen_audio_content_new_all_notice">New short content posted in the last two weeks.</string>
|
||||||
|
|||||||
@@ -879,6 +879,12 @@
|
|||||||
<string name="audio_content_playlist_content_count">合計 %1$d件</string>
|
<string name="audio_content_playlist_content_count">合計 %1$d件</string>
|
||||||
<string name="audio_content_playlist_empty_title">プレイリストが空です。</string>
|
<string name="audio_content_playlist_empty_title">プレイリストが空です。</string>
|
||||||
<string name="audio_content_playlist_empty_desc">よく聴くコンテンツで\nプレイリストを作成してください。</string>
|
<string name="audio_content_playlist_empty_desc">よく聴くコンテンツで\nプレイリストを作成してください。</string>
|
||||||
|
<string name="audio_content_playlist_detail_play">再生</string>
|
||||||
|
<string name="audio_content_playlist_detail_shuffle">シャッフル</string>
|
||||||
|
<string name="audio_content_playlist_detail_created_date">作成日 %1$s</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_title">プレイリストを削除</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_message">「%1$s」を削除しますか?</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_success">削除しました。</string>
|
||||||
<string name="screen_audio_content_new_all_title">新しい短編</string>
|
<string name="screen_audio_content_new_all_title">新しい短編</string>
|
||||||
<string name="screen_audio_content_new_all_title_free">新しい無料コンテンツ</string>
|
<string name="screen_audio_content_new_all_title_free">新しい無料コンテンツ</string>
|
||||||
<string name="screen_audio_content_new_all_notice">過去2週間に登録された新しい短編です。</string>
|
<string name="screen_audio_content_new_all_notice">過去2週間に登録された新しい短編です。</string>
|
||||||
|
|||||||
@@ -878,6 +878,12 @@
|
|||||||
<string name="audio_content_playlist_content_count">총 %1$d개</string>
|
<string name="audio_content_playlist_content_count">총 %1$d개</string>
|
||||||
<string name="audio_content_playlist_empty_title">재생목록이 비어있습니다.</string>
|
<string name="audio_content_playlist_empty_title">재생목록이 비어있습니다.</string>
|
||||||
<string name="audio_content_playlist_empty_desc">자주 듣는 콘텐츠를\n재생목록으로 만들어 보세요.</string>
|
<string name="audio_content_playlist_empty_desc">자주 듣는 콘텐츠를\n재생목록으로 만들어 보세요.</string>
|
||||||
|
<string name="audio_content_playlist_detail_play">재생</string>
|
||||||
|
<string name="audio_content_playlist_detail_shuffle">셔플</string>
|
||||||
|
<string name="audio_content_playlist_detail_created_date">만든 날짜 %1$s</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_title">재생목록 삭제</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_message">\'%1$s\'을 삭제하시겠습니까?</string>
|
||||||
|
<string name="audio_content_playlist_detail_delete_success">삭제되었습니다.</string>
|
||||||
<string name="screen_audio_content_new_all_title">새로운 단편</string>
|
<string name="screen_audio_content_new_all_title">새로운 단편</string>
|
||||||
<string name="screen_audio_content_new_all_title_free">새로운 무료 콘텐츠</string>
|
<string name="screen_audio_content_new_all_title_free">새로운 무료 콘텐츠</string>
|
||||||
<string name="screen_audio_content_new_all_notice">※ 최근 2주간 등록된 새로운 단편 입니다.</string>
|
<string name="screen_audio_content_new_all_notice">※ 최근 2주간 등록된 새로운 단편 입니다.</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user