콘텐츠 메인 - 시리즈 탭 - 채널별 추천 시리즈
- 채널 터치 액션 추가
This commit is contained in:
		@@ -276,6 +276,12 @@ interface AudioContentApi {
 | 
			
		||||
        @Header("Authorization") authHeader: String
 | 
			
		||||
    ): Single<ApiResponse<List<GetSeriesListResponse.SeriesListItem>>>
 | 
			
		||||
 | 
			
		||||
    @GET("/v2/audio-content/main/series/recommend-series-by-creator")
 | 
			
		||||
    fun getRecommendSeriesByCreator(
 | 
			
		||||
        @Query("creatorId") creatorId: Long,
 | 
			
		||||
        @Header("Authorization") authHeader: String
 | 
			
		||||
    ): Single<ApiResponse<List<GetSeriesListResponse.SeriesListItem>>>
 | 
			
		||||
 | 
			
		||||
    @GET("/v2/audio-content/main/content")
 | 
			
		||||
    fun getContentMainContent(
 | 
			
		||||
        @Header("Authorization") authHeader: String
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,11 @@ class ContentRankCreatorAdapter(
 | 
			
		||||
        @SuppressLint("NotifyDataSetChanged")
 | 
			
		||||
        fun bind(item: ContentCreatorResponse) {
 | 
			
		||||
            binding.root.setOnClickListener {
 | 
			
		||||
                selectedCreatorId = item.creatorId
 | 
			
		||||
                onClickItem(item.creatorId)
 | 
			
		||||
                notifyDataSetChanged()
 | 
			
		||||
                if (selectedCreatorId != item.creatorId) {
 | 
			
		||||
                    selectedCreatorId = item.creatorId
 | 
			
		||||
                    onClickItem(item.creatorId)
 | 
			
		||||
                    notifyDataSetChanged()
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            binding.tvNickname.text = item.creatorNickname
 | 
			
		||||
 
 | 
			
		||||
@@ -527,6 +527,7 @@ class AudioContentMainTabSeriesFragment : BaseFragment<FragmentAudioContentMainT
 | 
			
		||||
        recommendSeriesCreatorAdapter = ContentRankCreatorAdapter {
 | 
			
		||||
            binding.llNoItems.visibility = View.VISIBLE
 | 
			
		||||
            binding.rvRecommendSeriesByChannel.visibility = View.GONE
 | 
			
		||||
            viewModel.getRecommendSeriesByCreator(it)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val recyclerView = binding.rvRecommendSeriesChannel
 | 
			
		||||
@@ -633,6 +634,7 @@ class AudioContentMainTabSeriesFragment : BaseFragment<FragmentAudioContentMainT
 | 
			
		||||
        recyclerView.adapter = recommendSeriesByChannelAdapter
 | 
			
		||||
 | 
			
		||||
        viewModel.recommendSeriesByChannelLiveData.observe(viewLifecycleOwner) {
 | 
			
		||||
            recommendSeriesByChannelAdapter.clear()
 | 
			
		||||
            recommendSeriesByChannelAdapter.addItems(it)
 | 
			
		||||
            if (recommendSeriesCreatorAdapter.itemCount <= 0) {
 | 
			
		||||
                binding.llNoItems.visibility = View.VISIBLE
 | 
			
		||||
 
 | 
			
		||||
@@ -8,4 +8,9 @@ class AudioContentMainTabSeriesRepository(private val api: AudioContentApi) {
 | 
			
		||||
        genreId: Long,
 | 
			
		||||
        token: String
 | 
			
		||||
    ) = api.getRecommendSeriesListByGenre(genreId, authHeader = token)
 | 
			
		||||
 | 
			
		||||
    fun getRecommendSeriesByCreator(
 | 
			
		||||
        creatorId: Long,
 | 
			
		||||
        token: String
 | 
			
		||||
    ) = api.getRecommendSeriesByCreator(creatorId, authHeader = token)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -149,4 +149,35 @@ class AudioContentMainTabSeriesViewModel(
 | 
			
		||||
                )
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun getRecommendSeriesByCreator(creatorId: Long) {
 | 
			
		||||
        _isLoading.value = true
 | 
			
		||||
        compositeDisposable.add(
 | 
			
		||||
            repository.getRecommendSeriesByCreator(creatorId, token = "Bearer ${SharedPreferenceManager.token}")
 | 
			
		||||
                .subscribeOn(Schedulers.io())
 | 
			
		||||
                .observeOn(AndroidSchedulers.mainThread())
 | 
			
		||||
                .subscribe(
 | 
			
		||||
                    {
 | 
			
		||||
                        if (it.success && it.data != null) {
 | 
			
		||||
                            _recommendSeriesByChannelLiveData.value = it.data!!
 | 
			
		||||
                        } else {
 | 
			
		||||
                            if (it.message != null) {
 | 
			
		||||
                                _toastLiveData.postValue(it.message)
 | 
			
		||||
                            } else {
 | 
			
		||||
                                _toastLiveData.postValue(
 | 
			
		||||
                                    "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
 | 
			
		||||
                                )
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        _isLoading.value = false
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                        _isLoading.value = false
 | 
			
		||||
                        it.message?.let { message -> Logger.e(message) }
 | 
			
		||||
                        _toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
 | 
			
		||||
                    }
 | 
			
		||||
                )
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user