채널 상세

- 크리에이터가 아닌 유저의 채널에 접근했을 때는 팬톡과 유저 정보만 보이도록 수정
This commit is contained in:
klaus 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,9 +598,12 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
}
viewModel.creatorProfileLiveData.observe(this) {
setCheers(it.cheers)
setSeriesList(it.seriesList)
setCreatorProfile(it.creator)
setCheers(it.cheers)
if (it.isCreator) {
binding.layoutUserProfile.ivShare.visibility = View.VISIBLE
setSeriesList(it.seriesList)
setAudioContentList(it.contentList)
setLiveRoomList(it.liveRoomList)
setUserDonationRanking(it.userDonationRanking)
@ -605,8 +611,10 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
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()

View File

@ -55,6 +55,7 @@
layout="@layout/layout_user_profile" />
<LinearLayout
android:id="@+id/ll_activity_summary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp"
@ -62,7 +63,8 @@
android:background="@drawable/bg_round_corner_16_7_222222_3bb9f1"
android:baselineAligned="false"
android:gravity="center"
android:padding="13.3dp">
android:padding="13.3dp"
android:visibility="gone">
<RelativeLayout
android:layout_width="0dp"
@ -209,7 +211,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="26.7dp" />
android:layout_marginTop="26.7dp"
android:visibility="gone" />
<include
android:id="@+id/layout_creator_channel_series"
@ -238,6 +241,13 @@
android:layout_marginTop="26.7dp"
android:visibility="gone" />
<LinearLayout
android:id="@+id/ll_user_profile_introduce"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<include
android:id="@+id/layout_user_profile_introduce"
layout="@layout/layout_user_profile_introduce"
@ -250,14 +260,17 @@
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginHorizontal="13.3dp"
android:layout_marginVertical="26.7dp"
android:layout_marginTop="26.7dp"
android:background="@color/color_88909090" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_user_profile_donation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_marginTop="26.7dp"
android:orientation="vertical"
android:visibility="gone">
<include
android:id="@+id/layout_user_profile_donation"
@ -269,7 +282,7 @@
<View
android:layout_width="match_parent"
android:layout_height="6.7dp"
android:layout_marginVertical="26.7dp"
android:layout_marginTop="26.7dp"
android:background="@color/color_232323" />
</LinearLayout>
@ -277,7 +290,8 @@
android:id="@+id/layout_user_profile_fan_talk"
layout="@layout/layout_user_profile_fan_talk"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:layout_marginTop="26.7dp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</RelativeLayout>

View File

@ -58,7 +58,8 @@
android:layout_centerVertical="true"
android:layout_marginStart="6.7dp"
android:contentDescription="@null"
android:src="@drawable/btn_big_share" />
android:src="@drawable/btn_big_share"
android:visibility="gone" />
</RelativeLayout>
<TextView