diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/detail/LiveRoomDetailAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/detail/LiveRoomDetailAdapter.kt deleted file mode 100644 index 7a64b1c..0000000 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/detail/LiveRoomDetailAdapter.kt +++ /dev/null @@ -1,50 +0,0 @@ -package kr.co.vividnext.sodalive.live.room.detail - -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import coil.load -import coil.transform.RoundedCornersTransformation -import kr.co.vividnext.sodalive.R -import kr.co.vividnext.sodalive.databinding.ItemLiveRoomDetailUserBinding -import kr.co.vividnext.sodalive.extensions.dpToPx - -class LiveRoomDetailAdapter( - private val onClick: (GetRoomDetailUser) -> Unit -) : RecyclerView.Adapter() { - - val items = mutableListOf() - - inner class ViewHolder( - private val binding: ItemLiveRoomDetailUserBinding - ) : RecyclerView.ViewHolder(binding.root) { - fun bind(item: GetRoomDetailUser) { - binding.tvNickname.text = item.nickname - binding.ivProfile.load(item.profileImageUrl) { - crossfade(true) - placeholder(R.drawable.ic_place_holder) - transformations(RoundedCornersTransformation(23.4f.dpToPx())) - } - binding.root.setOnClickListener { onClick(item) } - } - } - - override fun onCreateViewHolder( - parent: ViewGroup, - viewType: Int - ): ViewHolder { - return ViewHolder( - ItemLiveRoomDetailUserBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false - ) - ) - } - - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - holder.bind(items[position]) - } - - override fun getItemCount() = items.count() -} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/detail/LiveRoomDetailFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/detail/LiveRoomDetailFragment.kt index 51f2703..cb970f9 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/detail/LiveRoomDetailFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/detail/LiveRoomDetailFragment.kt @@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.live.room.detail import android.annotation.SuppressLint import android.content.Intent -import android.graphics.Rect import android.net.Uri import android.os.Bundle import android.view.LayoutInflater @@ -10,21 +9,17 @@ import android.view.View import android.view.ViewGroup import android.webkit.URLUtil import android.widget.FrameLayout -import android.widget.LinearLayout import android.widget.Toast -import androidx.recyclerview.widget.GridLayoutManager -import androidx.recyclerview.widget.RecyclerView import coil.load import coil.transform.CircleCropTransformation -import coil.transform.RoundedCornersTransformation import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialogFragment import kr.co.vividnext.sodalive.R +import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.databinding.FragmentLiveRoomDetailBinding -import kr.co.vividnext.sodalive.databinding.ItemLiveDetailUserSummaryBinding -import kr.co.vividnext.sodalive.extensions.dpToPx +import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity import org.koin.android.ext.android.inject class LiveRoomDetailFragment( @@ -40,9 +35,6 @@ class LiveRoomDetailFragment( private lateinit var binding: FragmentLiveRoomDetailBinding - private var isAllProfileOpen = false - - private lateinit var adapter: LiveRoomDetailAdapter private lateinit var loadingDialog: LoadingDialog private lateinit var roomDetail: GetRoomDetailResponse @@ -65,58 +57,10 @@ class LiveRoomDetailFragment( val behavior = BottomSheetBehavior.from(bottomSheet!!) behavior.state = BottomSheetBehavior.STATE_EXPANDED - setupAdapter() bindData() viewModel.getDetail(roomId) { dismiss() } binding.ivClose.setOnClickListener { dismiss() } - binding.tvOpenAllProfile.setOnClickListener { - isAllProfileOpen = !isAllProfileOpen - if (isAllProfileOpen) { - binding.llProfiles.visibility = View.GONE - binding.rvParticipate.visibility = View.VISIBLE - binding.tvParticipateExpression.visibility = View.VISIBLE - binding.tvOpenAllProfile.text = "닫기" - binding.tvOpenAllProfile.setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_live_detail_top, - 0, - 0, - 0 - ) - } else { - binding.llProfiles.visibility = View.VISIBLE - binding.rvParticipate.visibility = View.GONE - binding.tvParticipateExpression.visibility = View.GONE - binding.tvOpenAllProfile.text = "펼쳐보기" - binding.tvOpenAllProfile.setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_live_detail_bottom, - 0, - 0, - 0 - ) - } - } - } - - private fun setupAdapter() { - val recyclerView = binding.rvParticipate - adapter = LiveRoomDetailAdapter {} - - recyclerView.layoutManager = GridLayoutManager(requireContext(), 5) - recyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() { - override fun getItemOffsets( - outRect: Rect, - view: View, - parent: RecyclerView, - state: RecyclerView.State - ) { - super.getItemOffsets(outRect, view, parent, state) - - outRect.top = 13.3f.dpToPx().toInt() - outRect.bottom = 13.3f.dpToPx().toInt() - } - }) - recyclerView.adapter = adapter } private fun bindData() { @@ -142,14 +86,6 @@ class LiveRoomDetailFragment( private fun setRoomDetail(response: GetRoomDetailResponse) { binding.tvTitle.text = response.title binding.tvDate.text = response.beginDateTime - binding.tvParticipate.text = response.numberOfParticipants.toString() - binding.tvTotal.text = "/${response.numberOfParticipantsTotal}" - - binding.tvOpenAllProfile.visibility = if (response.numberOfParticipants <= 0) { - View.GONE - } else { - View.VISIBLE - } if (response.price > 0) { binding.tvCan.text = response.price.toString() @@ -170,7 +106,6 @@ class LiveRoomDetailFragment( } setManagerProfile(manager = response.manager) - setParticipantUserSummary(response.participatingUsers) binding.tvTags.text = response.tags.joinToString(" ") { "#$it" } binding.tvContent.text = response.notice @@ -179,7 +114,6 @@ class LiveRoomDetailFragment( binding.ivShare2.setOnClickListener { shareRoom(response) } if (response.channelName.isNullOrBlank()) { - binding.tvParticipateExpression.text = "예약자" when { response.manager.id == SharedPreferenceManager.userId -> { binding.llStartDelete.visibility = View.VISIBLE @@ -219,7 +153,6 @@ class LiveRoomDetailFragment( } } } else { - binding.tvParticipateExpression.text = "참여자" binding.tvReservationComplete.visibility = View.GONE binding.tvParticipateNow.visibility = View.VISIBLE binding.tvReservation.visibility = View.GONE @@ -229,9 +162,6 @@ class LiveRoomDetailFragment( } binding.llStartDelete.visibility = View.GONE } - - adapter.items.addAll(response.participatingUsers) - adapter.notifyDataSetChanged() } private fun setManagerProfile(manager: GetRoomDetailManager) { @@ -293,38 +223,16 @@ class LiveRoomDetailFragment( if (manager.isCreator) { binding.tvManagerProfile.visibility = View.VISIBLE - binding.tvManagerProfile.setOnClickListener {} + binding.tvManagerProfile.setOnClickListener { + val intent = Intent(requireActivity(), UserProfileActivity::class.java) + intent.putExtra(Constants.EXTRA_USER_ID, manager.id) + startActivity(intent) + } } else { binding.tvManagerProfile.visibility = View.GONE } } - private fun setParticipantUserSummary(participatingUsers: List) { - val userCount = if (participatingUsers.size > 10) { - 10 - } else { - participatingUsers.size - } - - for (index in 0 until userCount) { - val user = participatingUsers[index] - val itemView = ItemLiveDetailUserSummaryBinding.inflate(layoutInflater) - itemView.ivProfile.load(user.profileImageUrl) { - crossfade(true) - placeholder(R.drawable.ic_place_holder) - transformations(RoundedCornersTransformation(16.7f.dpToPx())) - } - - val lp = LinearLayout.LayoutParams(33.3f.dpToPx().toInt(), 33.3f.dpToPx().toInt()) - if (index > 0) { - lp.setMargins(-16.7f.dpToPx().toInt(), 0, 0, 0) - } - itemView.root.layoutParams = lp - - binding.llProfiles.addView(itemView.root) - } - } - private fun shareRoom(response: GetRoomDetailResponse) { viewModel.shareRoomLink( response.roomId, diff --git a/app/src/main/res/layout/fragment_live_room_detail.xml b/app/src/main/res/layout/fragment_live_room_detail.xml index c415130..eb712f7 100644 --- a/app/src/main/res/layout/fragment_live_room_detail.xml +++ b/app/src/main/res/layout/fragment_live_room_detail.xml @@ -71,97 +71,8 @@ app:drawableEndCompat="@drawable/ic_can" tools:ignore="RelativeOverlap" tools:text="300" /> - - - - - - - - - - - - - - - - - - - - -