크리에이터 채널 - 콘텐츠 영역 추가
This commit is contained in:
parent
9bc625b7a0
commit
508eff2cd0
|
@ -11,8 +11,8 @@ data class GetCreatorProfileResponse(
|
||||||
val similarCreatorList: List<SimilarCreatorResponse>,
|
val similarCreatorList: List<SimilarCreatorResponse>,
|
||||||
@SerializedName("liveRoomList")
|
@SerializedName("liveRoomList")
|
||||||
val liveRoomList: List<LiveRoomResponse>,
|
val liveRoomList: List<LiveRoomResponse>,
|
||||||
@SerializedName("audioContentList")
|
@SerializedName("contentList")
|
||||||
val audioContentList: List<GetAudioContentListItem>,
|
val contentList: List<GetAudioContentListItem>,
|
||||||
@SerializedName("notice")
|
@SerializedName("notice")
|
||||||
val notice: String,
|
val notice: String,
|
||||||
@SerializedName("cheers")
|
@SerializedName("cheers")
|
||||||
|
|
|
@ -23,6 +23,10 @@ import androidx.recyclerview.widget.RecyclerView
|
||||||
import coil.load
|
import coil.load
|
||||||
import coil.transform.CircleCropTransformation
|
import coil.transform.CircleCropTransformation
|
||||||
import kr.co.vividnext.sodalive.R
|
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.base.BaseActivity
|
||||||
import kr.co.vividnext.sodalive.common.Constants
|
import kr.co.vividnext.sodalive.common.Constants
|
||||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||||
|
@ -56,6 +60,7 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
|
||||||
private lateinit var imm: InputMethodManager
|
private lateinit var imm: InputMethodManager
|
||||||
private lateinit var loadingDialog: LoadingDialog
|
private lateinit var loadingDialog: LoadingDialog
|
||||||
private lateinit var liveAdapter: UserProfileLiveAdapter
|
private lateinit var liveAdapter: UserProfileLiveAdapter
|
||||||
|
private lateinit var audioContentAdapter: AudioContentAdapter
|
||||||
private lateinit var donationAdapter: UserProfileDonationAdapter
|
private lateinit var donationAdapter: UserProfileDonationAdapter
|
||||||
private lateinit var similarCreatorAdapter: UserProfileSimilarCreatorAdapter
|
private lateinit var similarCreatorAdapter: UserProfileSimilarCreatorAdapter
|
||||||
private lateinit var cheersAdapter: UserProfileCheersAdapter
|
private lateinit var cheersAdapter: UserProfileCheersAdapter
|
||||||
|
@ -118,6 +123,7 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
|
||||||
setupDonationView()
|
setupDonationView()
|
||||||
setupSimilarCreatorView()
|
setupSimilarCreatorView()
|
||||||
setupFanTalkView()
|
setupFanTalkView()
|
||||||
|
setupAudioContentListView()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun hideKeyboard(onAfterExecute: () -> Unit) {
|
private fun hideKeyboard(onAfterExecute: () -> Unit) {
|
||||||
|
@ -432,6 +438,52 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
|
||||||
rvCheers.adapter = cheersAdapter
|
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) {
|
private fun showCheersReportPopup(cheersId: Long) {
|
||||||
val dialog = CheersReportDialog(this, layoutInflater) {
|
val dialog = CheersReportDialog(this, layoutInflater) {
|
||||||
if (it.isBlank()) {
|
if (it.isBlank()) {
|
||||||
|
@ -477,6 +529,7 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
|
||||||
setCheers(it.cheers)
|
setCheers(it.cheers)
|
||||||
setCreatorProfile(it.creator)
|
setCreatorProfile(it.creator)
|
||||||
setCreatorNotice(it.notice, it.creator.creatorId)
|
setCreatorNotice(it.notice, it.creator.creatorId)
|
||||||
|
setAudioContentList(it.contentList)
|
||||||
setLiveRoomList(it.liveRoomList)
|
setLiveRoomList(it.liveRoomList)
|
||||||
setSimilarCreatorList(it.similarCreatorList)
|
setSimilarCreatorList(it.similarCreatorList)
|
||||||
setUserDonationRanking(it.userDonationRanking)
|
setUserDonationRanking(it.userDonationRanking)
|
||||||
|
@ -625,6 +678,36 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
|
private fun setAudioContentList(audioContentList: List<GetAudioContentListItem>) {
|
||||||
|
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")
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
private fun setLiveRoomList(liveRoomList: List<LiveRoomResponse>) {
|
private fun setLiveRoomList(liveRoomList: List<LiveRoomResponse>) {
|
||||||
if (liveRoomList.isEmpty()) {
|
if (liveRoomList.isEmpty()) {
|
||||||
|
|
|
@ -237,6 +237,15 @@
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:id="@+id/layout_user_profile_audio_content"
|
||||||
|
layout="@layout/layout_user_profile_audio_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="13.3dp"
|
||||||
|
android:layout_marginTop="46.7dp"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/layout_user_profile_live"
|
android:id="@+id/layout_user_profile_live"
|
||||||
layout="@layout/layout_user_profile_live"
|
layout="@layout/layout_user_profile_live"
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:text="콘텐츠"
|
||||||
|
android:textColor="@color/color_eeeeee"
|
||||||
|
android:textSize="16.7sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_all"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:fontFamily="@font/gmarket_sans_light"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="전체보기"
|
||||||
|
android:textColor="@color/color_bbbbbb"
|
||||||
|
android:textSize="11.3sp" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_new_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="21.3dp"
|
||||||
|
android:background="@drawable/bg_round_corner_4_7_9970ff"
|
||||||
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="17dp"
|
||||||
|
android:text="새로운 콘텐츠 등록하기"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="14.7sp"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rv_audio_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingVertical="20dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tv_new_content" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
Loading…
Reference in New Issue