diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/GetCreatorProfileResponse.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/GetCreatorProfileResponse.kt index fb9c75c..14ebb4b 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/GetCreatorProfileResponse.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/GetCreatorProfileResponse.kt @@ -11,8 +11,8 @@ data class GetCreatorProfileResponse( val similarCreatorList: List, @SerializedName("liveRoomList") val liveRoomList: List, - @SerializedName("audioContentList") - val audioContentList: List, + @SerializedName("contentList") + val contentList: List, @SerializedName("notice") val notice: String, @SerializedName("cheers") diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt index b9e6ead..33f6221 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt @@ -23,6 +23,10 @@ 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.AudioContentActivity +import kr.co.vividnext.sodalive.audio_content.AudioContentAdapter +import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity +import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.LoadingDialog @@ -56,6 +60,7 @@ class UserProfileActivity : BaseActivity( private lateinit var imm: InputMethodManager private lateinit var loadingDialog: LoadingDialog private lateinit var liveAdapter: UserProfileLiveAdapter + private lateinit var audioContentAdapter: AudioContentAdapter private lateinit var donationAdapter: UserProfileDonationAdapter private lateinit var similarCreatorAdapter: UserProfileSimilarCreatorAdapter private lateinit var cheersAdapter: UserProfileCheersAdapter @@ -118,6 +123,7 @@ class UserProfileActivity : BaseActivity( setupDonationView() setupSimilarCreatorView() setupFanTalkView() + setupAudioContentListView() } private fun hideKeyboard(onAfterExecute: () -> Unit) { @@ -432,6 +438,52 @@ class UserProfileActivity : BaseActivity( rvCheers.adapter = cheersAdapter } + private fun setupAudioContentListView() { + binding.layoutUserProfileAudioContent.tvAll.setOnClickListener { + val intent = Intent(applicationContext, AudioContentActivity::class.java) + intent.putExtra(Constants.EXTRA_USER_ID, userId) + startActivity(intent) + } + + val recyclerView = binding.layoutUserProfileAudioContent.rvAudioContent + audioContentAdapter = AudioContentAdapter { + val intent = Intent(applicationContext, AudioContentDetailActivity::class.java) + .apply { + putExtra(Constants.EXTRA_AUDIO_CONTENT_ID, it) + } + startActivity(intent) + } + + recyclerView.layoutManager = LinearLayoutManager( + applicationContext, + LinearLayoutManager.VERTICAL, + false + ) + + recyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() { + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + + when (parent.getChildAdapterPosition(view)) { + audioContentAdapter.itemCount - 1 -> { + outRect.bottom = 0 + } + + else -> { + outRect.bottom = 13.3f.dpToPx().toInt() + } + } + } + }) + + recyclerView.adapter = audioContentAdapter + } + private fun showCheersReportPopup(cheersId: Long) { val dialog = CheersReportDialog(this, layoutInflater) { if (it.isBlank()) { @@ -477,6 +529,7 @@ class UserProfileActivity : BaseActivity( setCheers(it.cheers) setCreatorProfile(it.creator) setCreatorNotice(it.notice, it.creator.creatorId) + setAudioContentList(it.contentList) setLiveRoomList(it.liveRoomList) setSimilarCreatorList(it.similarCreatorList) setUserDonationRanking(it.userDonationRanking) @@ -625,6 +678,36 @@ class UserProfileActivity : BaseActivity( } } + @SuppressLint("NotifyDataSetChanged") + private fun setAudioContentList(audioContentList: List) { + binding.layoutUserProfileAudioContent.root.visibility = + if (userId == SharedPreferenceManager.userId || audioContentList.isNotEmpty()) { + View.VISIBLE + } else { + View.GONE + } + + if (userId == SharedPreferenceManager.userId) { + binding.layoutUserProfileAudioContent.tvTitle.text = "내 콘텐츠" + binding.layoutUserProfileAudioContent.tvNewContent.setOnClickListener { + startActivity( + Intent( + applicationContext, + AudioContentUploadActivity::class.java + ) + ) + } + binding.layoutUserProfileAudioContent.tvNewContent.visibility = View.VISIBLE + } else { + binding.layoutUserProfileAudioContent.tvTitle.text = "콘텐츠" + binding.layoutUserProfileAudioContent.tvNewContent.visibility = View.GONE + } + + audioContentAdapter.items.clear() + audioContentAdapter.items.addAll(audioContentList) + audioContentAdapter.notifyDataSetChanged() + } + @SuppressLint("NotifyDataSetChanged") private fun setLiveRoomList(liveRoomList: List) { if (liveRoomList.isEmpty()) { diff --git a/app/src/main/res/layout/activity_user_profile.xml b/app/src/main/res/layout/activity_user_profile.xml index 68909ae..25da78f 100644 --- a/app/src/main/res/layout/activity_user_profile.xml +++ b/app/src/main/res/layout/activity_user_profile.xml @@ -237,6 +237,15 @@ android:visibility="gone" /> + + + + + + + + + + + + + + + +