채널 상세

- 크리에이터가 아닌 유저의 채널에 접근했을 때는 팬톡과 유저 정보만 보이도록 수정
This commit is contained in:
2025-01-04 01:22:16 +09:00
parent b5546b4957
commit 87f02918f8
7 changed files with 63 additions and 26 deletions

View File

@@ -15,6 +15,7 @@ import kr.co.vividnext.sodalive.databinding.ItemAuditionApplicantBinding
class AuditionApplicantListAdapter(
private val onClickVote: (Int) -> Unit,
private val onClickNickname: (Long) -> Unit,
private val onClickPlayOrPause: (Int, Long, String) -> Unit
) : ListAdapter<GetAuditionRoleApplicantItem, AuditionApplicantListAdapter.ViewHolder>(DiffCallback()) {
@@ -54,6 +55,8 @@ class AuditionApplicantListAdapter(
}
binding.tvNickname.text = item.nickname
binding.tvNickname.setOnClickListener { onClickNickname(item.memberId) }
binding.tvCountVote.text = item.voteCount.toString()
binding.ivProfile.load(item.profileImageUrl) {
crossfade(true)

View File

@@ -12,6 +12,7 @@ data class GetAuditionApplicantListResponse(
@Keep
data class GetAuditionRoleApplicantItem(
@SerializedName("applicantId") val applicantId: Long,
@SerializedName("memberId") val memberId: Long,
@SerializedName("nickname") val nickname: String,
@SerializedName("profileImageUrl") val profileImageUrl: String,
@SerializedName("voiceUrl") val voiceUrl: String,

View File

@@ -24,6 +24,7 @@ import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.common.RealPathUtil
import kr.co.vividnext.sodalive.databinding.ActivityAuditionRoleDetailBinding
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
import kr.co.vividnext.sodalive.explorer.profile.creator_community.write.RecordingVoiceFragment
import kr.co.vividnext.sodalive.extensions.dpToPx
import org.koin.android.ext.android.inject
@@ -179,6 +180,13 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
onClickPlayOrPause = { position, applicantId, voiceUrl ->
mediaPlayerManager.toggleContent(position, applicantId, voiceUrl)
},
onClickNickname = { memberId ->
startActivity(
Intent(applicationContext, UserProfileActivity::class.java).apply {
putExtra(Constants.EXTRA_USER_ID, memberId)
}
)
},
onClickVote = { applicantId ->
viewModel.voteApplicant(
applicantId,

View File

@@ -26,7 +26,9 @@ data class GetCreatorProfileResponse(
@SerializedName("seriesList")
val seriesList: List<GetSeriesListResponse.SeriesListItem>,
@SerializedName("isBlock")
val isBlock: Boolean
val isBlock: Boolean,
@SerializedName("isCreatorRole")
val isCreator: Boolean
)
@Keep

View File

@@ -16,7 +16,9 @@ import android.view.inputmethod.InputMethodManager
import android.webkit.URLUtil
import android.widget.LinearLayout
import android.widget.Toast
import androidx.annotation.OptIn
import androidx.appcompat.widget.PopupMenu
import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import coil.load
@@ -52,11 +54,11 @@ import kr.co.vividnext.sodalive.extensions.dpToPx
import kr.co.vividnext.sodalive.extensions.loadUrl
import kr.co.vividnext.sodalive.extensions.moneyFormat
import kr.co.vividnext.sodalive.live.LiveViewModel
import kr.co.vividnext.sodalive.live.room.menu.MenuConfigActivity
import kr.co.vividnext.sodalive.live.reservation.complete.LiveReservationCompleteActivity
import kr.co.vividnext.sodalive.live.room.LiveRoomActivity
import kr.co.vividnext.sodalive.live.room.dialog.LivePaymentDialog
import kr.co.vividnext.sodalive.live.room.dialog.LiveRoomPasswordDialog
import kr.co.vividnext.sodalive.live.room.menu.MenuConfigActivity
import kr.co.vividnext.sodalive.live.roulette.config.RouletteConfigActivity
import kr.co.vividnext.sodalive.report.CheersReportDialog
import kr.co.vividnext.sodalive.report.ProfileReportDialog
@@ -494,6 +496,7 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
recyclerView.adapter = seriesAdapter
}
@OptIn(UnstableApi::class)
private fun setupAudioContentListView() {
binding.layoutUserProfileAudioContent.tvAll.setOnClickListener {
val intent = Intent(applicationContext, AudioContentActivity::class.java)
@@ -595,18 +598,23 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
}
viewModel.creatorProfileLiveData.observe(this) {
setCheers(it.cheers)
setSeriesList(it.seriesList)
setCreatorProfile(it.creator)
setAudioContentList(it.contentList)
setLiveRoomList(it.liveRoomList)
setUserDonationRanking(it.userDonationRanking)
setActivitySummary(it.activitySummary)
setCommunityPostList(it.communityPostList)
setCheers(it.cheers)
if (it.isCreator) {
binding.layoutUserProfile.ivShare.visibility = View.VISIBLE
setSeriesList(it.seriesList)
setAudioContentList(it.contentList)
setLiveRoomList(it.liveRoomList)
setUserDonationRanking(it.userDonationRanking)
setActivitySummary(it.activitySummary)
setCommunityPostList(it.communityPostList)
}
}
}
private fun setActivitySummary(activitySummary: GetCreatorActivitySummary) {
binding.llActivitySummary.visibility = View.VISIBLE
binding.tvLiveCount.text = activitySummary.liveCount.moneyFormat()
binding.tvLiveContributorCount.text = activitySummary.liveContributorCount.moneyFormat()
binding.tvLiveTime.text = activitySummary.liveTime.moneyFormat()