라이브 상단 UI 변경

This commit is contained in:
klaus 2024-01-16 05:31:23 +09:00
parent d75e4af348
commit 3a541f71a6
13 changed files with 149 additions and 208 deletions

View File

@ -27,7 +27,6 @@ import androidx.activity.OnBackPressedCallback
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.widget.PopupMenu
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import coil.load
@ -111,7 +110,6 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
private var isSpeakerMute = false
private var isMicrophoneMute = false
private var isSpeaker = false
private var isSpeakerFold = false
private var isNoChatting = false
private var remainingNoChattingTime = noChattingTime
@ -456,31 +454,6 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
}
binding.ivNotification.setOnClickListener { viewModel.toggleShowNotice() }
binding.rlNotice.setOnClickListener { viewModel.toggleExpandNotice() }
binding.tvSpeakerFold.setOnClickListener {
isSpeakerFold = !isSpeakerFold
if (isSpeakerFold) {
binding.rlSpeaker.visibility = View.VISIBLE
binding.rvSpeakers.visibility = View.VISIBLE
binding.tvSpeakerFold.text = "접기"
binding.tvSpeakerFold.setCompoundDrawablesWithIntrinsicBounds(
R.drawable.ic_live_detail_top,
0,
0,
0
)
} else {
binding.rlSpeaker.visibility = View.GONE
binding.rvSpeakers.visibility = View.GONE
binding.tvSpeakerFold.text = "펼치기"
binding.tvSpeakerFold.setCompoundDrawablesWithIntrinsicBounds(
R.drawable.ic_live_detail_bottom,
0,
0,
0
)
}
}
binding.tvBgSwitch.setOnClickListener { viewModel.toggleBackgroundImage() }
binding.llDonation.setOnClickListener {
@ -626,7 +599,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
)
)
binding.tvBgSwitch
.setBackgroundResource(R.drawable.bg_round_corner_13_3_transparent_3bb9f1)
.setBackgroundResource(R.drawable.bg_round_corner_5_3_transparent_3bb9f1)
} else {
binding.ivCover.visibility = View.GONE
binding.tvBgSwitch.text = "배경 OFF"
@ -637,7 +610,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
)
)
binding.tvBgSwitch
.setBackgroundResource(R.drawable.bg_round_corner_13_3_transparent_bbbbbb)
.setBackgroundResource(R.drawable.bg_round_corner_5_3_transparent_bbbbbb)
}
}
@ -715,7 +688,11 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
}
speakerListAdapter.managerId = response.creatorId
speakerListAdapter.updateList(response.speakerList)
speakerListAdapter.updateList(
response.speakerList.filter {
it.id != response.creatorId
}
)
if (response.creatorId == SharedPreferenceManager.userId) {
binding.ivEdit.setOnClickListener {
@ -804,7 +781,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
if (response.creatorId != SharedPreferenceManager.userId) {
binding.ivCreatorFollow.visibility = View.VISIBLE
if (response.isFollowing) {
binding.ivCreatorFollow.setImageResource(R.drawable.btn_following)
binding.ivCreatorFollow.setImageResource(R.drawable.btn_select_checked)
binding.ivCreatorFollow.setOnClickListener {
viewModel.creatorUnFollow(
creatorId = response.creatorId,
@ -812,7 +789,7 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
)
}
} else {
binding.ivCreatorFollow.setImageResource(R.drawable.btn_follow)
binding.ivCreatorFollow.setImageResource(R.drawable.btn_plus_round)
binding.ivCreatorFollow.setOnClickListener {
viewModel.creatorFollow(
creatorId = response.creatorId,
@ -999,7 +976,11 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
val rvSpeakers = binding.rvSpeakers
speakerListAdapter = LiveRoomProfileListAdapter()
rvSpeakers.layoutManager = GridLayoutManager(applicationContext, 5)
rvSpeakers.layoutManager = LinearLayoutManager(
applicationContext,
LinearLayoutManager.HORIZONTAL,
false
)
rvSpeakers.addItemDecoration(object : RecyclerView.ItemDecoration() {
override fun getItemOffsets(
outRect: Rect,
@ -1009,8 +990,8 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
) {
super.getItemOffsets(outRect, view, parent, state)
outRect.top = 5f.dpToPx().toInt()
outRect.bottom = 5f.dpToPx().toInt()
outRect.left = 4f.dpToPx().toInt()
outRect.right = 4f.dpToPx().toInt()
}
})
rvSpeakers.adapter = speakerListAdapter

View File

@ -188,7 +188,7 @@ data class LiveRoomNormalChat(
}
-1 -> {
itemBinding.ivBg.setImageResource(R.drawable.bg_circle_6f3dec_9970ff)
itemBinding.ivBg.setImageResource(R.drawable.bg_circle_3bb9f1)
itemBinding.ivCrown.setImageResource(R.drawable.ic_crown)
itemBinding.ivCrown.visibility = View.VISIBLE
}
@ -227,7 +227,7 @@ data class LiveRoomNormalChat(
)
if (SharedPreferenceManager.userId == userId) {
itemBinding.llMessageBg.setBackgroundResource(R.drawable.bg_round_corner_3_3_999970ff)
itemBinding.llMessageBg.setBackgroundResource(R.drawable.bg_round_corner_3_3_553bb9f1)
} else {
itemBinding.llMessageBg.setBackgroundResource(R.drawable.bg_round_corner_3_3_99000000)
}

View File

@ -5,8 +5,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import coil.load
import coil.transform.RoundedCornersTransformation
import coil.transform.CircleCropTransformation
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.databinding.ItemLiveRoomProfileBinding
import kr.co.vividnext.sodalive.extensions.dpToPx
@ -21,7 +20,7 @@ class LiveRoomProfileListAdapter : RecyclerView.Adapter<LiveRoomProfileListAdapt
binding.ivProfile.loadUrl(item.profileImage) {
crossfade(true)
placeholder(R.drawable.ic_place_holder)
transformations(RoundedCornersTransformation(23.3f.dpToPx()))
transformations(CircleCropTransformation())
if (activeSpeakers.contains(item.id.toInt())) {
binding.ivBg.visibility = View.VISIBLE
@ -36,15 +35,9 @@ class LiveRoomProfileListAdapter : RecyclerView.Adapter<LiveRoomProfileListAdapt
}
val ivMuteLp = binding.ivMute.layoutParams
ivMuteLp.width = 51.7f.dpToPx().toInt()
ivMuteLp.height = 51.7f.dpToPx().toInt()
ivMuteLp.width = 30f.dpToPx().toInt()
ivMuteLp.height = 30f.dpToPx().toInt()
binding.ivMute.layoutParams = ivMuteLp
if (managerId == item.id) {
binding.ivCrown.visibility = View.VISIBLE
} else {
binding.ivCrown.visibility = View.GONE
}
}
binding.tvNickname.text = item.nickname

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -3,7 +3,7 @@
android:shape="oval">
<gradient
android:gradientRadius="50%"
android:endColor="@color/color_6f3dec"
android:startColor="@color/color_9970ff"
android:endColor="@color/color_3bb9f1"
android:startColor="@color/color_3bb9f1"
android:type="radial" />
</shape>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/color_999970ff" />
<solid android:color="@color/color_553bb9f1" />
<corners android:radius="3.3dp" />
<stroke
android:width="1dp"
android:color="@color/color_999970ff" />
android:color="@color/color_553bb9f1" />
</shape>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<corners android:radius="13.3dp" />
<corners android:radius="5.3dp" />
<stroke
android:width="1dp"
android:color="@color/color_3bb9f1" />

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<corners android:radius="5.3dp" />
<stroke
android:width="1dp"
android:color="@color/color_bbbbbb" />
</shape>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<corners android:radius="13.3dp" />
<corners android:radius="5.3dp" />
<stroke
android:width="1dp"
android:color="@color/color_ff5c49" />

View File

@ -63,10 +63,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:background="@drawable/bg_round_corner_13_3_transparent_ff5c49"
android:background="@drawable/bg_round_corner_5_3_transparent_ff5c49"
android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="11dp"
android:paddingVertical="7dp"
android:paddingHorizontal="8dp"
android:paddingVertical="4.7dp"
android:text="나가기"
android:textColor="@color/color_ff5c49"
android:textSize="10sp"
@ -85,12 +85,12 @@
android:id="@+id/tv_bg_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:background="@drawable/bg_round_corner_13_3_transparent_bbbbbb"
android:layout_marginEnd="5.3dp"
android:background="@drawable/bg_round_corner_5_3_transparent_bbbbbb"
android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center"
android:paddingHorizontal="11dp"
android:paddingVertical="7dp"
android:paddingHorizontal="8dp"
android:paddingVertical="4.7dp"
android:text="배경 OFF"
android:textColor="@color/color_eeeeee"
android:textSize="10sp"
@ -100,110 +100,120 @@
android:id="@+id/iv_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:background="@drawable/bg_round_corner_13_3_transparent_bbbbbb"
android:layout_marginEnd="5.3dp"
android:background="@drawable/bg_round_corner_5_3_transparent_bbbbbb"
android:contentDescription="@null"
android:paddingHorizontal="11dp"
android:paddingVertical="5dp"
android:padding="2.7dp"
android:src="@drawable/ic_share" />
<ImageView
android:id="@+id/iv_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_round_corner_13_3_transparent_bbbbbb"
android:background="@drawable/bg_round_corner_5_3_transparent_bbbbbb"
android:contentDescription="@null"
android:paddingHorizontal="11dp"
android:paddingVertical="5dp"
android:padding="2.7dp"
android:src="@drawable/ic_edit"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="10.7dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_19"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5.3dp"
android:background="@drawable/bg_round_corner_2_6_601d14"
android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp"
android:text="19"
android:textColor="@color/color_e33621"
android:visibility="gone" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="3.3sp"
android:maxLines="1"
android:textColor="@color/color_eeeeee"
android:textSize="15.3sp"
tools:text="🧸여자들이 좋아하는 남자 스타일은?" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10.7dp"
android:paddingHorizontal="13.3dp">
android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="8dp">
<ImageView
android:id="@+id/iv_creator_profile"
android:layout_width="33.3dp"
android:layout_height="33.3dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:contentDescription="@null" />
<RelativeLayout
android:layout_width="180dp"
android:layout_height="wrap_content"
android:background="@drawable/bg_round_corner_5_3_transparent_bbbbbb"
android:padding="5.3dp">
<TextView
android:id="@+id/tv_creator_nickname"
<ImageView
android:id="@+id/iv_creator_profile"
android:layout_width="33.3dp"
android:layout_height="33.3dp"
android:layout_centerVertical="true"
android:contentDescription="@null" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginHorizontal="5.3dp"
android:layout_toStartOf="@+id/iv_creator_follow"
android:layout_toEndOf="@+id/iv_creator_profile"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_19"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5.3dp"
android:background="@drawable/bg_round_corner_2_6_601d14"
android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp"
android:text="19"
android:textColor="@color/color_e33621"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="@font/gmarket_sans_bold"
android:lines="1"
android:textColor="@color/color_eeeeee"
android:textSize="12sp"
tools:text="오늘 라이브 방송은ㅇㄹ너ㅏㅣㅇㄴ럴ㄴ아ㅣㄴㅇ러ㅏㅣ" />
</LinearLayout>
<TextView
android:id="@+id/tv_creator_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2.7dp"
android:ellipsize="end"
android:fontFamily="@font/gmarket_sans_medium"
android:lines="1"
android:textColor="@color/color_777777"
android:textSize="12sp"
tools:text="청령" />
</LinearLayout>
<ImageView
android:id="@+id/iv_creator_follow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/btn_plus_round" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_speakers"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginStart="5.3dp"
android:layout_toEndOf="@+id/iv_creator_profile"
android:drawablePadding="5.3dp"
android:ellipsize="end"
android:fontFamily="@font/gmarket_sans_light"
android:maxLines="1"
android:textColor="@color/color_eeeeee"
android:textSize="12sp"
app:drawableStartCompat="@drawable/ic_crown"
tools:text="란월" />
<ImageView
android:id="@+id/iv_creator_follow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="13.3dp"
android:layout_toEndOf="@+id/tv_creator_nickname"
android:contentDescription="@null"
tools:src="@drawable/btn_following" />
android:clipToPadding="true"
android:orientation="horizontal" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginHorizontal="13.3dp"
android:layout_marginVertical="8dp"
android:background="@color/color_26909090" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="13.3dp">
android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="8dp">
<ImageView
android:id="@+id/iv_notification"
@ -218,7 +228,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:orientation="horizontal">
android:orientation="horizontal"
tools:ignore="RelativeOverlap">
<LinearLayout
android:id="@+id/ll_donation"
@ -244,6 +255,8 @@
android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center_vertical"
android:textColor="@color/color_bbbbbb"
android:textSize="10.7sp"
tools:ignore="SmallSp"
tools:text="999,999,999,999" />
</LinearLayout>
@ -255,8 +268,7 @@
android:background="@drawable/bg_round_corner_15_transparent_bbbbbb"
android:orientation="horizontal"
android:paddingHorizontal="11dp"
android:paddingVertical="7dp"
android:visibility="gone"
android:paddingVertical="5.3dp"
tools:ignore="RelativeOverlap">
<TextView
@ -265,7 +277,8 @@
android:fontFamily="@font/gmarket_sans_medium"
android:text="참여자"
android:textColor="@color/color_bbbbbb"
android:textSize="12sp" />
android:textSize="10.7sp"
tools:ignore="SmallSp" />
<TextView
android:id="@+id/tv_participate"
@ -274,8 +287,8 @@
android:layout_marginStart="6.7dp"
android:fontFamily="@font/gmarket_sans_bold"
android:textColor="@color/color_bbbbbb"
android:textSize="12sp"
tools:ignore="RelativeOverlap"
android:textSize="10.7sp"
tools:ignore="RelativeOverlap,SmallSp"
tools:text="18" />
</LinearLayout>
</LinearLayout>
@ -318,55 +331,8 @@
tools:text="jkljkljkljkljkljkljkl" />
</RelativeLayout>
</ScrollView>
<RelativeLayout
android:id="@+id/rl_speaker"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="26.7dp"
android:layout_marginTop="20dp"
android:fontFamily="@font/gmarket_sans_bold"
android:text="스피커"
android:textColor="@color/color_eeeeee"
android:textSize="12sp" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_speakers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="26.7dp"
android:clipToPadding="true"
android:paddingVertical="13.3dp" />
</LinearLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ll_top">
<TextView
android:id="@+id/tv_speaker_fold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:background="@drawable/bg_bottom_round_corner_10_222222"
android:drawablePadding="6.7dp"
android:paddingHorizontal="13.3dp"
android:paddingVertical="6.7dp"
android:text="접기"
android:textColor="@color/color_bbbbbb"
android:textSize="13.3sp"
app:drawableStartCompat="@drawable/ic_live_detail_top" />
</RelativeLayout>
<ImageView
android:id="@+id/iv_noti_microphone_mute"
android:layout_width="wrap_content"

View File

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<RelativeLayout
android:layout_width="51.7dp"
android:layout_height="51.7dp">
android:layout_width="30dp"
android:layout_height="30dp">
<ImageView
android:id="@+id/iv_profile"
android:layout_width="46.7dp"
android:layout_height="46.7dp"
android:layout_width="26.7dp"
android:layout_height="26.7dp"
android:layout_centerInParent="true"
android:contentDescription="@null"
tools:src="@mipmap/ic_launcher" />
@ -32,15 +32,6 @@
android:layout_centerInParent="true"
android:contentDescription="@null"
android:src="@drawable/ic_mute" />
<ImageView
android:id="@+id/iv_crown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:contentDescription="@null"
android:src="@drawable/ic_crown"
android:visibility="gone" />
</RelativeLayout>
<TextView
@ -50,8 +41,9 @@
android:ellipsize="end"
android:fontFamily="@font/gmarket_sans_medium"
android:lines="1"
android:textColor="@color/color_bbbbbb"
android:textSize="12sp"
android:textColor="@color/color_777777"
android:textSize="10.7sp"
tools:ignore="SmallSp"
tools:text="932sld23" />
</LinearLayout>

View File

@ -105,4 +105,5 @@
<color name="color_b38fff">#B38FFF</color>
<color name="color_004b6c">#004B6C</color>
<color name="color_003851">#003851</color>
<color name="color_553bb9f1">#553bb9f1</color>
</resources>