검색 화면 문자열 리소스화
This commit is contained in:
@@ -18,6 +18,7 @@ import com.google.android.material.tabs.TabLayout
|
||||
import com.jakewharton.rxbinding4.widget.textChanges
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
|
||||
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
|
||||
import kr.co.vividnext.sodalive.base.BaseActivity
|
||||
@@ -319,7 +320,12 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>(ActivitySearchBinding
|
||||
|
||||
private fun setupTabs() {
|
||||
val tabs = binding.tabs
|
||||
val tabTitles = listOf("통합", "채널", "콘텐츠", "시리즈")
|
||||
val tabTitles = listOf(
|
||||
getString(R.string.screen_search_tab_unified),
|
||||
getString(R.string.screen_search_tab_creator),
|
||||
getString(R.string.screen_search_tab_content),
|
||||
getString(R.string.screen_search_tab_series)
|
||||
)
|
||||
for (title in tabTitles) {
|
||||
tabs.addTab(tabs.newTab().setText(title))
|
||||
}
|
||||
@@ -375,7 +381,10 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>(ActivitySearchBinding
|
||||
)
|
||||
|
||||
viewModel.toastLiveData.observe(this) {
|
||||
it?.let { Toast.makeText(this@SearchActivity, it, Toast.LENGTH_LONG).show() }
|
||||
val text = it?.message ?: it?.resId?.let { resId -> getString(resId) }
|
||||
if (!text.isNullOrBlank()) {
|
||||
Toast.makeText(this@SearchActivity, text, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.isLoading.observe(this) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package kr.co.vividnext.sodalive.search
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.lifecycle.LiveData
|
||||
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
|
||||
|
||||
@@ -16,7 +18,7 @@ class SearchViewModel(
|
||||
|
||||
companion object {
|
||||
fun fromOrdinal(ordinal: Int): SearchPageTab? {
|
||||
return SearchPageTab.values().getOrNull(ordinal)
|
||||
return entries.getOrNull(ordinal)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -27,8 +29,8 @@ class SearchViewModel(
|
||||
val currentTabLiveData: LiveData<SearchPageTab>
|
||||
get() = _currentTabLiveData
|
||||
|
||||
private val _toastLiveData = MutableLiveData<String?>()
|
||||
val toastLiveData: LiveData<String?>
|
||||
private val _toastLiveData = MutableLiveData<SearchToastMessage?>()
|
||||
val toastLiveData: LiveData<SearchToastMessage?>
|
||||
get() = _toastLiveData
|
||||
|
||||
private var _isLoading = MutableLiveData(false)
|
||||
@@ -91,11 +93,10 @@ class SearchViewModel(
|
||||
if (it.success && it.data != null) {
|
||||
_searchUnifiedLiveData.value = it.data!!
|
||||
} else {
|
||||
if (it.message != null) {
|
||||
_toastLiveData.value = it.message
|
||||
_toastLiveData.value = if (it.message != null) {
|
||||
SearchToastMessage(message = it.message)
|
||||
} else {
|
||||
_toastLiveData
|
||||
.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
SearchToastMessage(resId = R.string.screen_search_error_unknown)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -103,7 +104,9 @@ class SearchViewModel(
|
||||
_isLoading.value = false
|
||||
it.message?.let { message -> Logger.e(message) }
|
||||
_toastLiveData
|
||||
.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
.value = SearchToastMessage(
|
||||
resId = R.string.screen_search_error_unknown
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
@@ -135,11 +138,10 @@ class SearchViewModel(
|
||||
isSearchCreatorLast = true
|
||||
}
|
||||
} else {
|
||||
if (it.message != null) {
|
||||
_toastLiveData.value = it.message
|
||||
_toastLiveData.value = if (it.message != null) {
|
||||
SearchToastMessage(message = it.message)
|
||||
} else {
|
||||
_toastLiveData
|
||||
.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
SearchToastMessage(resId = R.string.screen_search_error_unknown)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -147,7 +149,9 @@ class SearchViewModel(
|
||||
_isLoading.value = false
|
||||
it.message?.let { message -> Logger.e(message) }
|
||||
_toastLiveData
|
||||
.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
.value = SearchToastMessage(
|
||||
resId = R.string.screen_search_error_unknown
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
@@ -181,11 +185,10 @@ class SearchViewModel(
|
||||
isSearchContentLast = true
|
||||
}
|
||||
} else {
|
||||
if (it.message != null) {
|
||||
_toastLiveData.value = it.message
|
||||
_toastLiveData.value = if (it.message != null) {
|
||||
SearchToastMessage(message = it.message)
|
||||
} else {
|
||||
_toastLiveData
|
||||
.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
SearchToastMessage(resId = R.string.screen_search_error_unknown)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -193,7 +196,9 @@ class SearchViewModel(
|
||||
_isLoading.value = false
|
||||
it.message?.let { message -> Logger.e(message) }
|
||||
_toastLiveData
|
||||
.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
.value = SearchToastMessage(
|
||||
resId = R.string.screen_search_error_unknown
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
@@ -227,11 +232,10 @@ class SearchViewModel(
|
||||
isSearchSeriesLast = true
|
||||
}
|
||||
} else {
|
||||
if (it.message != null) {
|
||||
_toastLiveData.value = it.message
|
||||
_toastLiveData.value = if (it.message != null) {
|
||||
SearchToastMessage(message = it.message)
|
||||
} else {
|
||||
_toastLiveData
|
||||
.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
SearchToastMessage(resId = R.string.screen_search_error_unknown)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -239,7 +243,9 @@ class SearchViewModel(
|
||||
_isLoading.value = false
|
||||
it.message?.let { message -> Logger.e(message) }
|
||||
_toastLiveData
|
||||
.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
.value = SearchToastMessage(
|
||||
resId = R.string.screen_search_error_unknown
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
@@ -248,3 +254,8 @@ class SearchViewModel(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data class SearchToastMessage(
|
||||
@StringRes val resId: Int? = null,
|
||||
val message: String? = null
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user