parent
dff4c833f1
commit
254a1e3381
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="deploymentTargetSelector">
|
||||||
|
<selectionStates>
|
||||||
|
<SelectionState runConfigName="app">
|
||||||
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
|
</SelectionState>
|
||||||
|
</selectionStates>
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -1,19 +1,18 @@
|
||||||
package kr.co.vividnext.sodalive.audio_content.main
|
package kr.co.vividnext.sodalive.audio_content.main
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.Service
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.Rect
|
import android.graphics.Rect
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.inputmethod.InputMethodManager
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.orhanobut.logger.Logger
|
||||||
import com.zhpan.bannerview.BaseBannerAdapter
|
import com.zhpan.bannerview.BaseBannerAdapter
|
||||||
import com.zhpan.indicator.enums.IndicatorSlideMode
|
import com.zhpan.indicator.enums.IndicatorSlideMode
|
||||||
import com.zhpan.indicator.enums.IndicatorStyle
|
import com.zhpan.indicator.enums.IndicatorStyle
|
||||||
|
@ -29,18 +28,19 @@ import kr.co.vividnext.sodalive.audio_content.main.curation.AudioContentMainCura
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.curation.AudioContentMainCurationViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.curation.AudioContentMainCurationViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentThemeAdapter
|
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentThemeAdapter
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.new_content_upload_creator.AudioContentMainNewContentCreatorAdapter
|
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.new_content_upload_creator.AudioContentMainNewContentCreatorViewModel
|
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.order.AudioContentMainOrderListViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.order.AudioContentMainOrderListViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingAdapter
|
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingAdapter
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingViewModel
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.recommend_series.AudioContentMainRecommendSeriesViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.order.AudioContentOrderListActivity
|
import kr.co.vividnext.sodalive.audio_content.order.AudioContentOrderListActivity
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
|
||||||
import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity
|
import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity
|
||||||
import kr.co.vividnext.sodalive.base.BaseFragment
|
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||||
import kr.co.vividnext.sodalive.common.Constants
|
import kr.co.vividnext.sodalive.common.Constants
|
||||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||||
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainBinding
|
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentMainBinding
|
||||||
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
||||||
|
import kr.co.vividnext.sodalive.explorer.profile.series.UserProfileSeriesListAdapter
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
import kr.co.vividnext.sodalive.settings.event.EventDetailActivity
|
import kr.co.vividnext.sodalive.settings.event.EventDetailActivity
|
||||||
import kr.co.vividnext.sodalive.settings.notification.MemberRole
|
import kr.co.vividnext.sodalive.settings.notification.MemberRole
|
||||||
|
@ -50,8 +50,8 @@ import kotlin.math.roundToInt
|
||||||
class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
|
class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
|
||||||
FragmentAudioContentMainBinding::inflate
|
FragmentAudioContentMainBinding::inflate
|
||||||
) {
|
) {
|
||||||
private val newContentCreatorViewModel: AudioContentMainNewContentCreatorViewModel by inject()
|
private val recommendSeriesViewModel: AudioContentMainRecommendSeriesViewModel by inject()
|
||||||
private lateinit var newContentCreatorAdapter: AudioContentMainNewContentCreatorAdapter
|
private lateinit var seriesAdapter: UserProfileSeriesListAdapter
|
||||||
|
|
||||||
private val bannerViewModel: AudioContentMainBannerViewModel by inject()
|
private val bannerViewModel: AudioContentMainBannerViewModel by inject()
|
||||||
private lateinit var bannerAdapter: AudioContentMainBannerAdapter
|
private lateinit var bannerAdapter: AudioContentMainBannerAdapter
|
||||||
|
@ -80,7 +80,7 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
|
||||||
newContentViewModel.getNewContentOfTheme("전체")
|
newContentViewModel.getNewContentOfTheme("전체")
|
||||||
contentRankingViewModel.getContentRanking()
|
contentRankingViewModel.getContentRanking()
|
||||||
contentRankingViewModel.getContentRankingSortType()
|
contentRankingViewModel.getContentRankingSortType()
|
||||||
newContentCreatorViewModel.getNewContentUploadCreatorList()
|
recommendSeriesViewModel.getRecommendSeriesList()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupView() {
|
private fun setupView() {
|
||||||
|
@ -98,7 +98,7 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
|
||||||
binding.llUploadContent.visibility = View.GONE
|
binding.llUploadContent.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
setupNewContentCreator()
|
setupRecommendSeries()
|
||||||
setupBanner()
|
setupBanner()
|
||||||
setupOrderList()
|
setupOrderList()
|
||||||
setupNewContentTheme()
|
setupNewContentTheme()
|
||||||
|
@ -107,17 +107,6 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
|
||||||
setupContentRanking()
|
setupContentRanking()
|
||||||
setupCuration()
|
setupCuration()
|
||||||
|
|
||||||
binding.swipeRefreshLayout.setOnRefreshListener {
|
|
||||||
binding.swipeRefreshLayout.isRefreshing = false
|
|
||||||
curationViewModel.refresh()
|
|
||||||
bannerViewModel.getMainBannerList()
|
|
||||||
newContentViewModel.getThemeList()
|
|
||||||
newContentViewModel.getNewContentOfTheme("전체")
|
|
||||||
contentRankingViewModel.getContentRanking()
|
|
||||||
contentRankingViewModel.getContentRankingSortType()
|
|
||||||
newContentCreatorViewModel.getNewContentUploadCreatorList()
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.llShortPlay.setOnClickListener {
|
binding.llShortPlay.setOnClickListener {
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(requireContext(), AudioContentAllByThemeActivity::class.java).apply {
|
Intent(requireContext(), AudioContentAllByThemeActivity::class.java).apply {
|
||||||
|
@ -135,20 +124,33 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupNewContentCreator() {
|
private fun setupRecommendSeries() {
|
||||||
newContentCreatorAdapter = AudioContentMainNewContentCreatorAdapter {
|
seriesAdapter = UserProfileSeriesListAdapter(
|
||||||
val intent = Intent(requireContext(), UserProfileActivity::class.java)
|
onClickItem = {
|
||||||
intent.putExtra(Constants.EXTRA_USER_ID, it)
|
startActivity(
|
||||||
startActivity(intent)
|
Intent(requireContext(), SeriesDetailActivity::class.java).apply {
|
||||||
}
|
putExtra(Constants.EXTRA_SERIES_ID, it)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
onClickCreator = {
|
||||||
|
startActivity(
|
||||||
|
Intent(requireContext(), UserProfileActivity::class.java).apply {
|
||||||
|
putExtra(Constants.EXTRA_USER_ID, it)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
isVisibleCreator = true
|
||||||
|
)
|
||||||
|
|
||||||
binding.rvNewContentCreator.layoutManager = LinearLayoutManager(
|
val recyclerView = binding.rvRecommendSeries
|
||||||
context,
|
recyclerView.layoutManager = LinearLayoutManager(
|
||||||
|
requireContext(),
|
||||||
LinearLayoutManager.HORIZONTAL,
|
LinearLayoutManager.HORIZONTAL,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
|
||||||
binding.rvNewContentCreator.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
recyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
||||||
override fun getItemOffsets(
|
override fun getItemOffsets(
|
||||||
outRect: Rect,
|
outRect: Rect,
|
||||||
view: View,
|
view: View,
|
||||||
|
@ -160,28 +162,28 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
|
||||||
when (parent.getChildAdapterPosition(view)) {
|
when (parent.getChildAdapterPosition(view)) {
|
||||||
0 -> {
|
0 -> {
|
||||||
outRect.left = 0
|
outRect.left = 0
|
||||||
outRect.right = 10.7f.dpToPx().toInt()
|
outRect.right = 6.7f.dpToPx().toInt()
|
||||||
}
|
}
|
||||||
|
|
||||||
newContentCreatorAdapter.itemCount - 1 -> {
|
seriesAdapter.itemCount - 1 -> {
|
||||||
outRect.left = 10.7f.dpToPx().toInt()
|
|
||||||
outRect.right = 0
|
outRect.right = 0
|
||||||
|
outRect.left = 6.7f.dpToPx().toInt()
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
outRect.left = 10.7f.dpToPx().toInt()
|
outRect.left = 6.7f.dpToPx().toInt()
|
||||||
outRect.right = 10.7f.dpToPx().toInt()
|
outRect.right = 6.7f.dpToPx().toInt()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
binding.rvNewContentCreator.adapter = newContentCreatorAdapter
|
recyclerView.adapter = seriesAdapter
|
||||||
|
|
||||||
newContentCreatorViewModel.newContentUploadCreatorListLiveData.observe(viewLifecycleOwner) {
|
recommendSeriesViewModel.seriesListLiveData.observe(viewLifecycleOwner) {
|
||||||
newContentCreatorAdapter.addItems(it)
|
seriesAdapter.addItems(it)
|
||||||
binding.rvNewContentCreator.visibility = if (
|
binding.llRecommendSeries.visibility = if (
|
||||||
newContentCreatorAdapter.itemCount <= 0 && it.isEmpty()
|
seriesAdapter.itemCount <= 0 && it.isEmpty()
|
||||||
) {
|
) {
|
||||||
View.GONE
|
View.GONE
|
||||||
} else {
|
} else {
|
||||||
|
@ -189,7 +191,7 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
newContentCreatorViewModel.toastLiveData.observe(viewLifecycleOwner) {
|
recommendSeriesViewModel.toastLiveData.observe(viewLifecycleOwner) {
|
||||||
it?.let { Toast.makeText(requireContext(), it, Toast.LENGTH_LONG).show() }
|
it?.let { Toast.makeText(requireContext(), it, Toast.LENGTH_LONG).show() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
package kr.co.vividnext.sodalive.audio_content.main.new_content_upload_creator
|
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.ViewGroup
|
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
|
||||||
import coil.load
|
|
||||||
import coil.transform.CircleCropTransformation
|
|
||||||
import kr.co.vividnext.sodalive.R
|
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.GetNewContentUploadCreator
|
|
||||||
import kr.co.vividnext.sodalive.databinding.ItemAudioContentMainNewContentCreatorBinding
|
|
||||||
|
|
||||||
class AudioContentMainNewContentCreatorAdapter(
|
|
||||||
private val onClickItem: (Long) -> Unit
|
|
||||||
) : RecyclerView.Adapter<AudioContentMainNewContentCreatorAdapter.ViewHolder>() {
|
|
||||||
|
|
||||||
private val items = mutableListOf<GetNewContentUploadCreator>()
|
|
||||||
|
|
||||||
inner class ViewHolder(
|
|
||||||
private val binding: ItemAudioContentMainNewContentCreatorBinding
|
|
||||||
) : RecyclerView.ViewHolder(binding.root) {
|
|
||||||
fun bind(item: GetNewContentUploadCreator) {
|
|
||||||
binding.tvNewContentCreator.text = item.creatorNickname
|
|
||||||
binding.ivNewContentCreator.load(item.creatorProfileImageUrl) {
|
|
||||||
crossfade(true)
|
|
||||||
placeholder(R.drawable.ic_place_holder)
|
|
||||||
transformations(CircleCropTransformation())
|
|
||||||
}
|
|
||||||
binding.root.setOnClickListener { onClickItem(item.creatorId) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ViewHolder(
|
|
||||||
ItemAudioContentMainNewContentCreatorBinding.inflate(
|
|
||||||
LayoutInflater.from(parent.context),
|
|
||||||
parent,
|
|
||||||
false
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun getItemCount() = items.size
|
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
|
||||||
holder.bind(items[position])
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressLint("NotifyDataSetChanged")
|
|
||||||
fun addItems(items: List<GetNewContentUploadCreator>) {
|
|
||||||
this.items.clear()
|
|
||||||
this.items.addAll(items)
|
|
||||||
notifyDataSetChanged()
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +1,42 @@
|
||||||
package kr.co.vividnext.sodalive.audio_content.main.new_content_upload_creator
|
package kr.co.vividnext.sodalive.audio_content.main.recommend_series
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
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.audio_content.AudioContentRepository
|
import kr.co.vividnext.sodalive.audio_content.series.GetSeriesListResponse
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.GetNewContentUploadCreator
|
import kr.co.vividnext.sodalive.audio_content.series.SeriesRepository
|
||||||
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
|
||||||
|
|
||||||
class AudioContentMainNewContentCreatorViewModel(
|
class AudioContentMainRecommendSeriesViewModel(
|
||||||
private val repository: AudioContentRepository
|
private val repository: SeriesRepository
|
||||||
) : BaseViewModel() {
|
) : BaseViewModel() {
|
||||||
private val _toastLiveData = MutableLiveData<String?>()
|
private val _toastLiveData = MutableLiveData<String?>()
|
||||||
val toastLiveData: LiveData<String?>
|
val toastLiveData: LiveData<String?>
|
||||||
get() = _toastLiveData
|
get() = _toastLiveData
|
||||||
|
|
||||||
private var _newContentUploadCreatorListLiveData =
|
private var _seriesListLiveData = MutableLiveData<List<GetSeriesListResponse.SeriesListItem>>()
|
||||||
MutableLiveData<List<GetNewContentUploadCreator>>()
|
val seriesListLiveData: LiveData<List<GetSeriesListResponse.SeriesListItem>>
|
||||||
val newContentUploadCreatorListLiveData: LiveData<List<GetNewContentUploadCreator>>
|
get() = _seriesListLiveData
|
||||||
get() = _newContentUploadCreatorListLiveData
|
|
||||||
|
|
||||||
fun getNewContentUploadCreatorList() {
|
fun getRecommendSeriesList() {
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.getNewContentUploadCreatorList(
|
repository
|
||||||
token = "Bearer ${SharedPreferenceManager.token}"
|
.getRecommendSeriesList(token = "Bearer ${SharedPreferenceManager.token}")
|
||||||
)
|
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(
|
.subscribe(
|
||||||
{
|
{
|
||||||
if (it.success && it.data != null) {
|
if (it.success && it.data != null) {
|
||||||
_newContentUploadCreatorListLiveData.postValue(it.data!!)
|
_seriesListLiveData.value = it.data!!
|
||||||
} else {
|
} else {
|
||||||
if (it.message != null) {
|
if (it.message != null) {
|
||||||
_toastLiveData.postValue(it.message)
|
_toastLiveData.postValue(it.message)
|
||||||
} else {
|
} else {
|
||||||
_toastLiveData.postValue(
|
_toastLiveData.postValue(
|
||||||
"크리에이터 리스트를 불러오지 못했습니다. 다시 시도해 주세요.\n" +
|
"추천 시리즈를 불러오지 못했습니다. 다시 시도해 주세요.\n" +
|
||||||
"계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
|
"계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -47,7 +45,7 @@ class AudioContentMainNewContentCreatorViewModel(
|
||||||
{
|
{
|
||||||
it.message?.let { message -> Logger.e(message) }
|
it.message?.let { message -> Logger.e(message) }
|
||||||
_toastLiveData.postValue(
|
_toastLiveData.postValue(
|
||||||
"크리에이터 리스트를 불러오지 못했습니다. 다시 시도해 주세요.\n" +
|
"추천 시리즈를 불러오지 못했습니다. 다시 시도해 주세요.\n" +
|
||||||
"계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
|
"계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
|
||||||
)
|
)
|
||||||
}
|
}
|
|
@ -32,4 +32,9 @@ interface SeriesApi {
|
||||||
@Query("size") size: Int,
|
@Query("size") size: Int,
|
||||||
@Header("Authorization") authHeader: String
|
@Header("Authorization") authHeader: String
|
||||||
): Single<ApiResponse<GetSeriesContentListResponse>>
|
): Single<ApiResponse<GetSeriesContentListResponse>>
|
||||||
|
|
||||||
|
@GET("/audio-content/series/recommend")
|
||||||
|
fun getRecommendSeriesList(
|
||||||
|
@Header("Authorization") authHeader: String
|
||||||
|
): Single<ApiResponse<List<GetSeriesListResponse.SeriesListItem>>>
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,4 +31,6 @@ class SeriesRepository(private val api: SeriesApi) {
|
||||||
size = size,
|
size = size,
|
||||||
authHeader = token
|
authHeader = token
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fun getRecommendSeriesList(token: String) = api.getRecommendSeriesList(authHeader = token)
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,9 +19,9 @@ import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.banner.AudioContentMainBannerViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.banner.AudioContentMainBannerViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.curation.AudioContentMainCurationViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.curation.AudioContentMainCurationViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.new_content.AudioContentMainNewContentViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.new_content_upload_creator.AudioContentMainNewContentCreatorViewModel
|
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.order.AudioContentMainOrderListViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.order.AudioContentMainOrderListViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingViewModel
|
import kr.co.vividnext.sodalive.audio_content.main.ranking.AudioContentMainRankingViewModel
|
||||||
|
import kr.co.vividnext.sodalive.audio_content.main.recommend_series.AudioContentMainRecommendSeriesViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.modify.AudioContentModifyViewModel
|
import kr.co.vividnext.sodalive.audio_content.modify.AudioContentModifyViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.order.AudioContentOrderListViewModel
|
import kr.co.vividnext.sodalive.audio_content.order.AudioContentOrderListViewModel
|
||||||
import kr.co.vividnext.sodalive.audio_content.series.SeriesApi
|
import kr.co.vividnext.sodalive.audio_content.series.SeriesApi
|
||||||
|
@ -220,7 +220,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
|
||||||
viewModel { AudioContentMainCurationViewModel(get()) }
|
viewModel { AudioContentMainCurationViewModel(get()) }
|
||||||
viewModel { AudioContentMainOrderListViewModel(get()) }
|
viewModel { AudioContentMainOrderListViewModel(get()) }
|
||||||
viewModel { AudioContentMainNewContentViewModel(get()) }
|
viewModel { AudioContentMainNewContentViewModel(get()) }
|
||||||
viewModel { AudioContentMainNewContentCreatorViewModel(get()) }
|
viewModel { AudioContentMainRecommendSeriesViewModel(get()) }
|
||||||
viewModel { AudioContentViewModel(get()) }
|
viewModel { AudioContentViewModel(get()) }
|
||||||
viewModel { AudioContentOrderListViewModel(get()) }
|
viewModel { AudioContentOrderListViewModel(get()) }
|
||||||
viewModel { AudioContentUploadViewModel(get()) }
|
viewModel { AudioContentUploadViewModel(get()) }
|
||||||
|
|
|
@ -11,7 +11,6 @@ import coil.transform.RoundedCornersTransformation
|
||||||
import kr.co.vividnext.sodalive.R
|
import kr.co.vividnext.sodalive.R
|
||||||
import kr.co.vividnext.sodalive.audio_content.series.GetSeriesListResponse
|
import kr.co.vividnext.sodalive.audio_content.series.GetSeriesListResponse
|
||||||
import kr.co.vividnext.sodalive.databinding.ItemSeriesListBigBinding
|
import kr.co.vividnext.sodalive.databinding.ItemSeriesListBigBinding
|
||||||
import kr.co.vividnext.sodalive.databinding.ItemSeriesListBinding
|
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
|
|
||||||
class UserProfileSeriesListAdapter(
|
class UserProfileSeriesListAdapter(
|
||||||
|
|
|
@ -4,289 +4,300 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
<androidx.core.widget.NestedScrollView
|
||||||
android:id="@+id/swipe_refresh_layout"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingVertical="13.3dp">
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:clipToPadding="false"
|
android:orientation="vertical">
|
||||||
android:paddingVertical="13.3dp">
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginStart="13.3dp"
|
||||||
|
android:layout_marginBottom="26.7dp"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="콘텐츠 마켓"
|
||||||
|
android:textColor="@color/color_3bb9f1"
|
||||||
|
android:textSize="21.3sp" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_recommend_series"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:layout_marginBottom="40dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="13.3dp"
|
|
||||||
android:layout_marginStart="13.3dp"
|
|
||||||
android:layout_marginBottom="26.7dp"
|
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:text="콘텐츠 마켓"
|
android:paddingHorizontal="13.3dp"
|
||||||
android:textColor="@color/color_3bb9f1"
|
android:text="추천 시리즈"
|
||||||
android:textSize="21.3sp" />
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="18.3sp" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/rv_new_content_creator"
|
android:id="@+id/rv_recommend_series"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="26.7dp"
|
android:layout_marginTop="13.3dp"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:paddingHorizontal="13.3dp"
|
android:paddingHorizontal="13.3dp" />
|
||||||
android:visibility="gone" />
|
</LinearLayout>
|
||||||
|
|
||||||
<com.zhpan.bannerview.BannerViewPager
|
<com.zhpan.bannerview.BannerViewPager
|
||||||
android:id="@+id/rv_banner"
|
android:id="@+id/rv_banner"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="13.3dp" />
|
android:layout_marginHorizontal="13.3dp" />
|
||||||
|
|
||||||
<com.zhpan.indicator.IndicatorView
|
<com.zhpan.indicator.IndicatorView
|
||||||
android:id="@+id/indicator_banner"
|
android:id="@+id/indicator_banner"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginTop="6.7dp"
|
android:layout_marginTop="6.7dp"
|
||||||
android:layout_marginBottom="26.7dp" />
|
android:layout_marginBottom="26.7dp" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="40dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingHorizontal="13.3dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_short_play"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/img_bg_short_play"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:drawablePadding="2.7dp"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="숏플"
|
||||||
|
android:textColor="@color/color_dd158d"
|
||||||
|
android:textSize="16.7sp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_short_play" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_review_live"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/img_bg_review_live"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:drawablePadding="2.7dp"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="라이브 다시듣기"
|
||||||
|
android:textColor="@color/color_0057ff"
|
||||||
|
android:textSize="16.7sp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_thumb_play_blue" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_my_stash"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="40dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="40dp"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:paddingHorizontal="13.3dp">
|
android:paddingHorizontal="13.3dp">
|
||||||
|
|
||||||
<LinearLayout
|
<TextView
|
||||||
android:id="@+id/ll_short_play"
|
android:layout_width="wrap_content"
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:background="@drawable/img_bg_short_play"
|
android:text="내 보관함"
|
||||||
android:gravity="center"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:orientation="vertical">
|
android:textSize="18.3sp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/tv_my_stash_view_all"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:drawablePadding="2.7dp"
|
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
|
||||||
android:text="숏플"
|
|
||||||
android:textColor="@color/color_dd158d"
|
|
||||||
android:textSize="16.7sp"
|
|
||||||
app:drawableStartCompat="@drawable/ic_short_play" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ll_review_live"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_alignParentEnd="true"
|
||||||
android:layout_weight="1"
|
android:layout_centerVertical="true"
|
||||||
android:background="@drawable/img_bg_review_live"
|
android:fontFamily="@font/gmarket_sans_light"
|
||||||
android:gravity="center"
|
android:text="전체보기"
|
||||||
android:orientation="vertical">
|
android:textColor="@color/color_bbbbbb"
|
||||||
|
android:textSize="11.3sp" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<TextView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/rv_my_stash"
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:drawablePadding="2.7dp"
|
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
|
||||||
android:text="라이브 다시듣기"
|
|
||||||
android:textColor="@color/color_0057ff"
|
|
||||||
android:textSize="16.7sp"
|
|
||||||
app:drawableStartCompat="@drawable/ic_thumb_play_blue" />
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ll_my_stash"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="40dp"
|
android:layout_marginTop="13.3dp"
|
||||||
android:orientation="vertical"
|
android:clipToPadding="false"
|
||||||
android:visibility="gone">
|
android:paddingHorizontal="13.3dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/ll_new_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingHorizontal="13.3dp">
|
android:layout_marginStart="13.3dp"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="새로운 콘텐츠"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="18.3sp" />
|
||||||
|
|
||||||
<TextView
|
<ImageView
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/iv_new_content_all"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
|
||||||
android:text="내 보관함"
|
|
||||||
android:textColor="@color/color_eeeeee"
|
|
||||||
android:textSize="18.3sp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_my_stash_view_all"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:fontFamily="@font/gmarket_sans_light"
|
|
||||||
android:text="전체보기"
|
|
||||||
android:textColor="@color/color_bbbbbb"
|
|
||||||
android:textSize="11.3sp" />
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/rv_my_stash"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="13.3dp"
|
android:layout_alignParentEnd="true"
|
||||||
android:clipToPadding="false"
|
android:contentDescription="@null"
|
||||||
android:paddingHorizontal="13.3dp" />
|
android:paddingHorizontal="13.3dp"
|
||||||
</LinearLayout>
|
android:src="@drawable/ic_forward" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/ll_new_content"
|
android:id="@+id/rv_new_content_theme"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:layout_marginTop="13.3dp"
|
||||||
android:visibility="gone">
|
android:clipToPadding="false"
|
||||||
|
android:paddingHorizontal="13.3dp" />
|
||||||
|
|
||||||
<RelativeLayout
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/rv_new_content"
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="13.3dp"
|
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
|
||||||
android:text="새로운 콘텐츠"
|
|
||||||
android:textColor="@color/color_eeeeee"
|
|
||||||
android:textSize="18.3sp" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/iv_new_content_all"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:contentDescription="@null"
|
|
||||||
android:paddingHorizontal="13.3dp"
|
|
||||||
android:src="@drawable/ic_forward" />
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/rv_new_content_theme"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="13.3dp"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:paddingHorizontal="13.3dp" />
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/rv_new_content"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="13.3dp"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:paddingHorizontal="13.3dp" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<ProgressBar
|
|
||||||
android:id="@+id/pb_new_content"
|
|
||||||
android:layout_width="50dp"
|
|
||||||
android:layout_height="50dp"
|
|
||||||
android:layout_gravity="center" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ll_content_ranking"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="40dp"
|
android:layout_marginTop="13.3dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingHorizontal="13.3dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/pb_new_content"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="50dp"
|
||||||
|
android:layout_gravity="center" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_content_ranking"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="40dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="13.3dp"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="인기 콘텐츠"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="18.3sp" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_content_ranking_all"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:paddingHorizontal="13.3dp"
|
||||||
|
android:src="@drawable/ic_forward" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="13.3dp"
|
||||||
|
android:background="@color/color_222222"
|
||||||
|
android:gravity="center"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone">
|
android:paddingVertical="8dp">
|
||||||
|
|
||||||
<RelativeLayout
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/tv_date"
|
||||||
android:layout_height="wrap_content">
|
android:layout_width="wrap_content"
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="13.3dp"
|
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
|
||||||
android:text="인기 콘텐츠"
|
|
||||||
android:textColor="@color/color_eeeeee"
|
|
||||||
android:textSize="18.3sp" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/iv_content_ranking_all"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:contentDescription="@null"
|
|
||||||
android:paddingHorizontal="13.3dp"
|
|
||||||
android:src="@drawable/ic_forward" />
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="13.3dp"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:background="@color/color_222222"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:gravity="center"
|
android:textSize="14.7sp" />
|
||||||
android:orientation="vertical"
|
|
||||||
android:paddingVertical="8dp">
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_date"
|
android:layout_width="wrap_content"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
|
||||||
android:textColor="@color/color_eeeeee"
|
|
||||||
android:textSize="14.7sp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:fontFamily="@font/gmarket_sans_light"
|
|
||||||
android:text="※ 인기 콘텐츠의 순위는 매주 업데이트됩니다."
|
|
||||||
android:textColor="@color/color_bbbbbb"
|
|
||||||
android:textSize="13.3sp" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/rv_content_ranking_sort"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="13.3dp"
|
android:layout_marginTop="8dp"
|
||||||
android:clipToPadding="false"
|
android:fontFamily="@font/gmarket_sans_light"
|
||||||
android:paddingHorizontal="13.3dp" />
|
android:text="※ 인기 콘텐츠의 순위는 매주 업데이트됩니다."
|
||||||
|
android:textColor="@color/color_bbbbbb"
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
android:textSize="13.3sp" />
|
||||||
android:id="@+id/rv_content_ranking"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="13.3dp"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:paddingHorizontal="6.7dp" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/rv_curation"
|
android:id="@+id/rv_content_ranking_sort"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:clipToPadding="false" />
|
android:layout_marginTop="13.3dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingHorizontal="13.3dp" />
|
||||||
|
|
||||||
<ProgressBar
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/pb_curation"
|
android:id="@+id/rv_content_ranking"
|
||||||
android:layout_width="50dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="50dp"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center" />
|
android:layout_marginTop="13.3dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingHorizontal="6.7dp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</androidx.core.widget.NestedScrollView>
|
|
||||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rv_curation"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:clipToPadding="false" />
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/pb_curation"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="50dp"
|
||||||
|
android:layout_gravity="center" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll_upload_content"
|
android:id="@+id/ll_upload_content"
|
||||||
|
|
Loading…
Reference in New Issue