feat: 마이페이지

- 신규 UI 적용
This commit is contained in:
2025-07-25 16:52:34 +09:00
parent 3b7b5f98bd
commit 39be49b481
26 changed files with 560 additions and 738 deletions

View File

@@ -0,0 +1,37 @@
package kr.co.vividnext.sodalive.common
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.annotation.DrawableRes
import kr.co.vividnext.sodalive.R
/**
* Function Button Helper
* include된 function button 레이아웃에 이미지와 텍스트를 설정하는 헬퍼 클래스
*/
object FunctionButtonHelper {
/**
* Function button에 이미지와 텍스트를 설정합니다.
*
* @param buttonView include된 버튼 뷰
* @param iconRes 아이콘 drawable 리소스 ID
* @param title 버튼 제목
* @param clickListener 클릭 리스너 (optional)
*/
fun setupFunctionButton(
buttonView: View,
@DrawableRes iconRes: Int,
title: String,
clickListener: View.OnClickListener? = null
) {
val iconImageView = buttonView.findViewById<ImageView>(R.id.iv_function_icon)
val titleTextView = buttonView.findViewById<TextView>(R.id.tv_function_title)
iconImageView.setImageResource(iconRes)
titleTextView.text = title
clickListener?.let { buttonView.setOnClickListener(it) }
}
}

View File

@@ -15,14 +15,11 @@ import com.google.gson.Gson
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.box.AudioContentBoxActivity
import kr.co.vividnext.sodalive.base.BaseFragment
import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.FunctionButtonHelper
import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.databinding.FragmentMyBinding
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
import kr.co.vividnext.sodalive.extensions.moneyFormat
import kr.co.vividnext.sodalive.following.FollowingCreatorActivity
import kr.co.vividnext.sodalive.live.reservation_status.LiveReservationStatusActivity
import kr.co.vividnext.sodalive.main.MainActivity
import kr.co.vividnext.sodalive.mypage.alarm.AlarmListActivity
import kr.co.vividnext.sodalive.mypage.auth.Auth
@@ -36,7 +33,8 @@ import kr.co.vividnext.sodalive.mypage.point.PointStatusActivity
import kr.co.vividnext.sodalive.mypage.profile.ProfileUpdateActivity
import kr.co.vividnext.sodalive.mypage.service_center.ServiceCenterActivity
import kr.co.vividnext.sodalive.settings.SettingsActivity
import kr.co.vividnext.sodalive.settings.notification.MemberRole
import kr.co.vividnext.sodalive.settings.event.EventActivity
import kr.co.vividnext.sodalive.settings.notice.NoticeActivity
import kr.co.vividnext.sodalive.splash.SplashActivity
import org.koin.android.ext.android.inject
@@ -64,20 +62,11 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
}
private fun setupView() {
binding.rlServiceCenter.setOnClickListener {
startActivity(
Intent(
requireActivity(),
ServiceCenterActivity::class.java
)
)
}
val ivHowToUseLp = binding.ivHowToUse.layoutParams as LinearLayout.LayoutParams
ivHowToUseLp.width = screenWidth
ivHowToUseLp.height = (200 * screenWidth) / 1080
binding.ivHowToUse.layoutParams = ivHowToUseLp
binding.ivHowToUse.setOnClickListener {
// val ivHowToUseLp = binding.ivIntroduceVoiceon.layoutParams as LinearLayout.LayoutParams
// ivHowToUseLp.width = screenWidth
// ivHowToUseLp.height = (120 * screenWidth) / 352
// binding.ivIntroduceVoiceon.layoutParams = ivHowToUseLp
binding.ivIntroduceVoiceon.setOnClickListener {
val url = "https://blog.naver.com/sodalive_official"
if (URLUtil.isValidUrl(url)) {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
@@ -86,14 +75,10 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
if (SharedPreferenceManager.token.isNotBlank()) {
binding.ivSettings.visibility = View.VISIBLE
binding.llProfileContainer.visibility = View.VISIBLE
binding.rlProfileContainer.visibility = View.VISIBLE
binding.llProfileLoginContainer.visibility = View.GONE
binding.llFollowingMemberListContainer.visibility = View.VISIBLE
binding.rlAlarm.visibility = View.VISIBLE
binding.rlCoupon.visibility = View.VISIBLE
binding.llLockerContainer.visibility = View.VISIBLE
binding.llReservationStatusContainer.visibility = View.VISIBLE
binding.llFunctionButtonGrid.visibility = View.VISIBLE
binding.ivSettings.setOnClickListener {
startActivity(
@@ -104,7 +89,7 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
)
}
binding.ivEdit.setOnClickListener {
binding.tvEditProfile.setOnClickListener {
startActivity(
Intent(
requireActivity(),
@@ -114,12 +99,10 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
}
if (SharedPreferenceManager.userId == 17958L) {
binding.rlCan.visibility = View.GONE
binding.rlPoint.visibility = View.GONE
binding.llCanPointContainer.visibility = View.GONE
} else {
binding.rlCan.visibility = View.VISIBLE
binding.rlPoint.visibility = View.VISIBLE
binding.llTotalCan.setOnClickListener {
binding.llCanPointContainer.visibility = View.VISIBLE
binding.tvCanAmount.setOnClickListener {
startActivity(
Intent(
requireActivity(),
@@ -128,7 +111,7 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
)
}
binding.llTotalPoint.setOnClickListener {
binding.tvPointAmount.setOnClickListener {
startActivity(
Intent(
requireActivity(),
@@ -137,6 +120,7 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
)
}
binding.tvChargeCan.visibility = View.VISIBLE
binding.tvChargeCan.setOnClickListener {
startActivity(
Intent(
@@ -147,16 +131,37 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
}
}
binding.rlCoupon.setOnClickListener {
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnStorage.root,
iconRes = R.drawable.ic_my_storage,
title = "보관함"
) {
startActivity(
Intent(
requireActivity(),
CanCouponActivity::class.java
requireContext(),
AudioContentBoxActivity::class.java
)
)
}
binding.rlAlarm.setOnClickListener {
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnBlockList.root,
iconRes = R.drawable.ic_my_block,
title = "차단목록"
) {
startActivity(
Intent(
requireContext(),
BlockMemberActivity::class.java
)
)
}
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnMorningCall.root,
iconRes = R.drawable.ic_my_alarm,
title = "모닝콜"
) {
startActivity(
Intent(
requireActivity(),
@@ -165,102 +170,65 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
)
}
binding.llReservationLive.setOnClickListener {
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnNotice.root,
iconRes = R.drawable.ic_my_notice,
title = "공지사항"
) {
startActivity(
Intent(
requireActivity(),
LiveReservationStatusActivity::class.java
NoticeActivity::class.java
)
)
}
binding.tvAuth.setOnClickListener {
Auth.auth(requireActivity(), requireContext()) {
val bootpayResponse = Gson().fromJson(it, BootpayResponse::class.java)
val request = AuthVerifyRequest(receiptId = bootpayResponse.data.receiptId)
requireActivity().runOnUiThread {
viewModel.authVerify(request) {
startActivity(
Intent(
requireContext(),
SplashActivity::class.java
).apply {
addFlags(
Intent.FLAG_ACTIVITY_CLEAR_TASK or
Intent.FLAG_ACTIVITY_NEW_TASK
)
}
)
requireActivity().finish()
}
}
}
}
if (SharedPreferenceManager.role == MemberRole.CREATOR.name) {
binding.tvMyChannel.visibility = View.VISIBLE
binding.tvMyChannel.setOnClickListener {
startActivity(
Intent(
requireContext(),
UserProfileActivity::class.java
).apply {
putExtra(
Constants.EXTRA_USER_ID,
SharedPreferenceManager.userId
)
}
)
}
} else {
binding.tvMyChannel.visibility = View.GONE
}
binding.tvFollowingList.setOnClickListener {
startActivity(Intent(requireContext(), FollowingCreatorActivity::class.java))
}
binding.tvBlockMemberList.setOnClickListener {
startActivity(Intent(requireContext(), BlockMemberActivity::class.java))
}
binding.tvOrderList.setOnClickListener {
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnEvent.root,
iconRes = R.drawable.ic_my_event,
title = "이벤트"
) {
startActivity(
Intent(requireContext(), AudioContentBoxActivity::class.java)
Intent(
requireActivity(),
EventActivity::class.java
)
)
}
binding.tvPlaylist.setOnClickListener {
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnCustomerService.root,
iconRes = R.drawable.ic_my_service_center,
title = "고객센터"
) {
startActivity(
Intent(requireContext(), AudioContentBoxActivity::class.java).apply {
putExtra(Constants.EXTRA_START_TAB_POSITION, 1)
}
Intent(
requireActivity(),
ServiceCenterActivity::class.java
)
)
}
} else {
binding.tvTotalCan.text = "0"
binding.ivSettings.visibility = View.GONE
binding.llProfileContainer.visibility = View.GONE
binding.llFunctionButtonGrid.visibility = View.GONE
binding.rlProfileContainer.visibility = View.GONE
binding.llProfileLoginContainer.visibility = View.VISIBLE
binding.llFollowingMemberListContainer.visibility = View.GONE
binding.rlAlarm.visibility = View.GONE
binding.rlPoint.visibility = View.GONE
binding.rlCoupon.visibility = View.GONE
binding.llLockerContainer.visibility = View.GONE
binding.llReservationStatusContainer.visibility = View.GONE
binding.llProfileLoginContainer.setOnClickListener {
(requireActivity() as MainActivity).showLoginActivity()
}
binding.llTotalCan.setOnClickListener {
binding.tvCanAmount.text = "0"
binding.tvCanAmount.setOnClickListener {
(requireActivity() as MainActivity).showLoginActivity()
}
binding.tvChargeCan.setOnClickListener {
binding.tvPointAmount.text = "0"
binding.tvPointAmount.setOnClickListener {
(requireActivity() as MainActivity).showLoginActivity()
}
binding.tvChargeCan.visibility = View.INVISIBLE
}
}
@@ -280,11 +248,46 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
viewModel.myPageLiveData.observe(viewLifecycleOwner) {
if (it.isAuth) {
binding.tvAuth.visibility = View.GONE
binding.rlCoupon.visibility = View.VISIBLE
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnIdentityVerification.root,
iconRes = R.drawable.ic_my_auth,
title = "본인인증 완료"
)
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnCoupon.root,
iconRes = R.drawable.ic_my_coupon,
title = "쿠폰등록"
) {
startActivity(
Intent(
requireActivity(),
CanCouponActivity::class.java
)
)
}
} else {
binding.tvAuth.visibility = View.VISIBLE
binding.rlCoupon.visibility = View.GONE
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnIdentityVerification.root,
iconRes = R.drawable.ic_my_auth,
title = "본인인증"
) {
showAuthDialog()
}
FunctionButtonHelper.setupFunctionButton(
buttonView = binding.btnCoupon.root,
iconRes = R.drawable.ic_my_coupon,
title = "쿠폰등록"
) {
Toast.makeText(
requireContext(),
"본인인증 후 사용가능합니다.",
Toast.LENGTH_LONG
).show()
showAuthDialog()
}
}
binding.ivProfile.load(it.profileUrl) {
@@ -294,45 +297,34 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
}
binding.tvNickname.text = it.nickname
if (it.websiteUrl.isNullOrBlank() || !URLUtil.isValidUrl(it.websiteUrl)) {
binding.ivWebsite.visibility = View.GONE
} else {
binding.ivWebsite.visibility = View.VISIBLE
binding.ivWebsite.setOnClickListener { _ ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(it.websiteUrl)))
binding.tvCanAmount.text = (it.chargeCan + it.rewardCan).moneyFormat()
binding.tvPointAmount.text = it.point.moneyFormat()
}
}
private fun showAuthDialog() {
Auth.auth(requireActivity(), requireContext()) { json ->
val bootpayResponse = Gson().fromJson(
json,
BootpayResponse::class.java
)
val request = AuthVerifyRequest(receiptId = bootpayResponse.data.receiptId)
requireActivity().runOnUiThread {
viewModel.authVerify(request) {
startActivity(
Intent(
requireContext(),
SplashActivity::class.java
).apply {
addFlags(
Intent.FLAG_ACTIVITY_CLEAR_TASK or
Intent.FLAG_ACTIVITY_NEW_TASK
)
}
)
requireActivity().finish()
}
}
if (it.blogUrl.isNullOrBlank() || !URLUtil.isValidUrl(it.blogUrl)) {
binding.ivBlog.visibility = View.GONE
} else {
binding.ivBlog.visibility = View.VISIBLE
binding.ivBlog.setOnClickListener { _ ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(it.blogUrl)))
}
}
if (it.instagramUrl.isNullOrBlank() || !URLUtil.isValidUrl(it.instagramUrl)) {
binding.ivInstagram.visibility = View.GONE
} else {
binding.ivInstagram.visibility = View.VISIBLE
binding.ivInstagram.setOnClickListener { _ ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(it.instagramUrl)))
}
}
if (it.youtubeUrl.isNullOrBlank() || !URLUtil.isValidUrl(it.youtubeUrl)) {
binding.ivYoutube.visibility = View.GONE
} else {
binding.ivYoutube.visibility = View.VISIBLE
binding.ivYoutube.setOnClickListener { _ ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(it.youtubeUrl)))
}
}
binding.tvTotalCan.text = (it.chargeCan + it.rewardCan).moneyFormat()
binding.tvTotalPoint.text = it.point.moneyFormat()
binding.tvReservationLive.text = "${it.liveReservationCount}"
}
}
}

View File

@@ -19,8 +19,6 @@ import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.databinding.ActivitySettingsBinding
import kr.co.vividnext.sodalive.mypage.alarm.AlarmViewModel
import kr.co.vividnext.sodalive.settings.event.EventActivity
import kr.co.vividnext.sodalive.settings.notice.NoticeActivity
import kr.co.vividnext.sodalive.settings.notification.NotificationSettingsActivity
import kr.co.vividnext.sodalive.settings.signout.SignOutActivity
import kr.co.vividnext.sodalive.settings.terms.TermsActivity
@@ -73,24 +71,6 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
loadingDialog = LoadingDialog(this, layoutInflater)
binding.rlNotice.setOnClickListener {
startActivity(
Intent(
applicationContext,
NoticeActivity::class.java
)
)
}
binding.rlEvent.setOnClickListener {
startActivity(
Intent(
applicationContext,
EventActivity::class.java
)
)
}
binding.rlNotificationSettings.setOnClickListener {
startActivity(
Intent(
@@ -101,6 +81,7 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
}
if (SharedPreferenceManager.isAuth) {
binding.dividerContentSettings.visibility = View.VISIBLE
binding.rlContentSettings.visibility = View.VISIBLE
binding.rlContentSettings.setOnClickListener {
startActivity(
@@ -111,6 +92,7 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
)
}
} else {
binding.dividerContentSettings.visibility = View.GONE
binding.rlContentSettings.visibility = View.GONE
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#15202F" />
<corners android:radius="16dp" />
</shape>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FC8F0F" />
<corners android:radius="999dp" />
</shape>

View File

@@ -27,72 +27,6 @@
android:background="@drawable/bg_round_corner_6_7_222222"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/rl_notice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="16.7dp"
android:paddingStart="16.7dp"
android:paddingEnd="13.3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_bold"
android:text="공지사항"
android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/ic_forward" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginHorizontal="13.3dp"
android:background="@color/color_88909090" />
<RelativeLayout
android:id="@+id/rl_event"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="16.7dp"
android:paddingStart="16.7dp"
android:paddingEnd="13.3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_bold"
android:text="이벤트"
android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/ic_forward" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginHorizontal="13.3dp"
android:background="@color/color_88909090" />
<RelativeLayout
android:id="@+id/rl_notification_settings"
android:layout_width="match_parent"
@@ -119,37 +53,41 @@
android:src="@drawable/ic_forward" />
</RelativeLayout>
<View
android:id="@+id/divider_content_settings"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginHorizontal="13.3dp"
android:background="@color/color_88909090" />
<RelativeLayout
android:id="@+id/rl_content_settings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="16.7dp"
android:paddingStart="16.7dp"
android:paddingEnd="13.3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_bold"
android:text="콘텐츠 보기 설정"
android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/ic_forward" />
</RelativeLayout>
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_content_settings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="13.3dp"
android:background="@drawable/bg_round_corner_6_7_222222"
android:paddingVertical="16.7dp"
android:paddingStart="16.7dp"
android:paddingEnd="13.3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_bold"
android:text="콘텐츠 보기 설정"
android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/ic_forward" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@@ -41,7 +41,7 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:contentDescription="@null"
android:src="@drawable/ic_can_circle" />
android:src="@drawable/ic_can" />
<ImageView
android:id="@+id/iv_storage"

View File

@@ -2,7 +2,8 @@
<androidx.constraintlayout.widget.ConstraintLayout 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="match_parent">
android:layout_height="match_parent"
android:background="@color/color_131313">
<RelativeLayout
android:id="@+id/main_toolbar"
@@ -43,7 +44,7 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:contentDescription="@null"
android:src="@drawable/ic_can_circle" />
android:src="@drawable/ic_can" />
<ImageView
android:id="@+id/iv_message"

View File

@@ -4,38 +4,78 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black">
android:background="@color/color_131313">
<RelativeLayout
android:id="@+id/rl_toolbar"
<!-- Header -->
<LinearLayout
android:id="@+id/ll_header"
android:layout_width="0dp"
android:layout_height="50dp"
android:paddingStart="13.3dp"
android:paddingEnd="33.3dp"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="24dp"
android:paddingVertical="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<!-- Logo -->
<ImageView
android:id="@+id/iv_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:scaleType="fitStart"
android:src="@drawable/img_text_logo" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<!-- Settings Icon -->
<ImageView
android:id="@+id/iv_settings"
android:layout_width="24dp"
android:layout_height="24dp"
android:contentDescription="@null"
android:src="@drawable/ic_settings" />
</LinearLayout>
<!-- Update Banner -->
<LinearLayout
android:id="@+id/ll_update_banner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#000000"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="24dp"
android:paddingVertical="6dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_header">
<TextView
android:id="@+id/tv_update_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/pretendard_regular"
android:textColor="#B0BEC5"
android:textSize="16sp"
tools:text="[업데이트] 1.23.0 버전 업데이트" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_bold"
android:text="마이 페이지"
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp"
tools:ignore="RelativeOverlap" />
<ImageView
android:id="@+id/iv_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/ic_settings"
android:visibility="gone" />
</RelativeLayout>
android:layout_marginEnd="2dp"
android:fontFamily="@font/pretendard_regular"
android:text="자세히"
android:textColor="#B0BEC5"
android:textSize="16sp"
app:drawableEndCompat="@drawable/ic_arrow_right" />
</LinearLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="0dp"
@@ -43,521 +83,312 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rl_toolbar">
app:layout_constraintTop_toBottomOf="@id/ll_update_banner">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="13.3dp"
android:paddingTop="6.7dp"
android:paddingBottom="40dp">
android:paddingHorizontal="24dp"
android:paddingVertical="32dp">
<LinearLayout
android:id="@+id/ll_profile_login_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:background="@drawable/bg_round_corner_16_7_222222"
android:gravity="center"
android:paddingVertical="24dp">
android:paddingVertical="12dp">
<TextView
android:id="@+id/tv_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="6dp"
android:fontFamily="@font/gmarket_sans_medium"
android:fontFamily="@font/pretendard_bold"
android:gravity="center_vertical"
android:text="Login"
android:textSize="32sp"
app:drawableStartCompat="@drawable/ic_logo_circle_gray" />
android:text="LOGIN"
android:textColor="#777777"
android:textSize="32sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_profile_container"
android:layout_width="match_parent"
<RelativeLayout
android:id="@+id/rl_profile_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_round_corner_16_7_222222"
android:layout_marginBottom="32dp"
android:gravity="center_vertical"
android:padding="20dp"
android:orientation="horizontal"
android:visibility="gone">
<ImageView
android:id="@+id/iv_profile"
android:layout_width="90dp"
android:layout_height="90dp"
android:adjustViewBounds="true"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:scaleType="centerCrop" />
<LinearLayout
<!-- Nickname -->
<TextView
android:id="@+id/tv_nickname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginHorizontal="20dp"
android:layout_toStartOf="@+id/tv_edit_profile"
android:layout_toEndOf="@+id/iv_profile"
android:ellipsize="end"
android:fontFamily="@font/pretendard_bold"
android:maxLines="1"
android:textColor="#FFFFFF"
android:textSize="18sp"
tools:text="Voice on 123456" />
<!-- Edit Profile Button -->
<TextView
android:id="@+id/tv_edit_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/bg_round_corner_999_263238"
android:fontFamily="@font/pretendard_regular"
android:paddingHorizontal="12dp"
android:paddingVertical="6dp"
android:text="프로필 수정"
android:textColor="#FFFFFF"
android:textSize="14sp" />
</RelativeLayout>
<!-- Can/Point Section -->
<LinearLayout
android:id="@+id/ll_can_point_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:background="@drawable/bg_round_corner_16_263238"
android:orientation="vertical">
<!-- Can Section -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="13.3dp"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_marginEnd="13.3dp"
android:layout_toStartOf="@+id/iv_edit"
android:ellipsize="end"
android:fontFamily="@font/gmarket_sans_bold"
android:maxLines="2"
android:textColor="@color/color_eeeeee"
android:textSize="20sp"
tools:ignore="RelativeOverlap"
tools:text="닉네임" />
<ImageView
android:id="@+id/iv_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:contentDescription="@null"
android:src="@drawable/ic_myinfo_edit" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:gravity="end"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_website"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:contentDescription="@null"
android:src="@drawable/ic_website_circle"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_blog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:contentDescription="@null"
android:src="@drawable/ic_blog_circle"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_instagram"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:contentDescription="@null"
android:src="@drawable/ic_instagram_circle"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_youtube"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_youtube_circle"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_my_channel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="26.7dp"
android:background="@drawable/bg_round_corner_6_7_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:paddingVertical="13.3dp"
android:text="내 채널 보기"
android:textColor="@color/color_eeeeee"
android:textSize="15.3sp"
android:visibility="gone" />
<LinearLayout
android:id="@+id/ll_following_member_list_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="26.7dp"
android:visibility="gone">
<TextView
android:id="@+id/tv_following_list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:paddingVertical="13.3dp"
android:text="팔로잉 리스트"
android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" />
<TextView
android:id="@+id/tv_block_member_list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10.7dp"
android:layout_weight="1"
android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:paddingVertical="13.3dp"
android:text="차단 리스트"
android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" />
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_can"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="26.7dp"
android:background="@drawable/bg_round_corner_6_7_13181b"
android:paddingHorizontal="13.3dp"
android:paddingVertical="10dp">
<LinearLayout
android:id="@+id/ll_total_can"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="horizontal"
tools:ignore="RelativeOverlap">
<TextView
android:id="@+id/tv_total_can"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:textColor="@color/color_eeeeee"
android:textSize="16sp"
tools:text="23,000" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5.3dp"
android:layout_marginEnd="2.7dp"
android:contentDescription="@null"
android:gravity="center"
android:src="@drawable/ic_can" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:gravity="center"
android:src="@drawable/ic_forward" />
</LinearLayout>
<TextView
android:id="@+id/tv_charge_can"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/bg_round_corner_16_7_transparent_b38fff"
android:drawablePadding="3.7dp"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center_vertical"
android:paddingHorizontal="11.3dp"
android:paddingVertical="7dp"
android:text="충전"
android:textColor="@color/color_b38fff"
android:textSize="12sp"
app:drawableStartCompat="@drawable/ic_coin_w" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_point"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:background="@drawable/bg_round_corner_6_7_13181b"
android:paddingHorizontal="13.3dp"
android:paddingVertical="16.7dp">
<LinearLayout
android:id="@+id/ll_total_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:ignore="RelativeOverlap">
android:padding="14dp">
<TextView
android:id="@+id/tv_total_point"
android:id="@+id/tv_can_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:textColor="@color/color_eeeeee"
android:textSize="16sp"
tools:text="23,000" />
android:layout_centerVertical="true"
android:drawablePadding="8dp"
android:fontFamily="@font/pretendard_bold"
android:textColor="#FFFFFF"
android:textSize="18sp"
app:drawableEndCompat="@drawable/ic_arrow_right"
app:drawableStartCompat="@drawable/ic_can"
tools:ignore="RelativeOverlap"
tools:text="230,000" />
<ImageView
<TextView
android:id="@+id/tv_charge_can"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5.3dp"
android:layout_marginEnd="2.7dp"
android:contentDescription="@null"
android:gravity="center"
android:src="@drawable/ic_point" />
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/bg_round_corner_999_3bb9f1"
android:fontFamily="@font/pretendard_bold"
android:paddingHorizontal="16dp"
android:paddingVertical="10dp"
android:text="캔 충전"
android:textColor="#FFFFFF"
android:textSize="14sp"
android:visibility="invisible" />
</RelativeLayout>
<ImageView
<!-- Point Section -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="14dp">
<TextView
android:id="@+id/tv_point_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:gravity="center"
android:src="@drawable/ic_forward" />
</LinearLayout>
</RelativeLayout>
android:layout_centerVertical="true"
android:drawablePadding="8dp"
android:fontFamily="@font/pretendard_bold"
android:textColor="#FFFFFF"
android:textSize="18sp"
app:drawableEndCompat="@drawable/ic_arrow_right"
app:drawableStartCompat="@drawable/ic_point"
tools:ignore="RelativeOverlap"
tools:text="230,000" />
<RelativeLayout
android:id="@+id/rl_alarm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:background="@drawable/bg_round_corner_6_7_13181b"
android:paddingHorizontal="13.3dp"
android:paddingVertical="20dp"
android:visibility="gone">
<TextView
android:id="@+id/btn_point_reward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/bg_round_corner_999_fc8f0f"
android:fontFamily="@font/pretendard_bold"
android:paddingHorizontal="16dp"
android:paddingVertical="10dp"
android:text="포인트 리워드"
android:textColor="#FFFFFF"
android:textSize="14sp"
android:visibility="invisible" />
<TextView
android:id="@+id/tv_alarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginEnd="5.3dp"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:text="보이스 모닝콜 등록"
android:textColor="@color/color_eeeeee"
android:textSize="16sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toEndOf="@+id/tv_alarm"
android:contentDescription="@null"
android:src="@drawable/ic_alarm_clock_72" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:contentDescription="@null"
android:src="@drawable/ic_forward" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_coupon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:background="@drawable/bg_round_corner_6_7_13181b"
android:paddingHorizontal="13.3dp"
android:paddingVertical="20dp"
android:visibility="gone">
<TextView
android:id="@+id/tv_coupon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginEnd="5.3dp"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:text="쿠폰 등록"
android:textColor="@color/color_eeeeee"
android:textSize="16sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toEndOf="@+id/tv_coupon"
android:contentDescription="@null"
android:src="@drawable/ic_coupon" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:contentDescription="@null"
android:src="@drawable/ic_forward" />
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
<!-- Function Buttons Grid -->
<LinearLayout
android:id="@+id/ll_locker_container"
android:id="@+id/ll_function_button_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_marginBottom="32dp"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:text="내 보관함"
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" />
<!-- First Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:layout_marginBottom="16dp"
android:baselineAligned="false"
android:orientation="horizontal">
<include
android:id="@+id/btn_storage"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_block_list"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_coupon"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_morning_call"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1" />
</LinearLayout>
<!-- Second Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal">
<include
android:id="@+id/btn_notice"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_event"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_customer_service"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_identity_verification"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/iv_introduce_voiceon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@null"
android:src="@drawable/img_introduce_voiceon" />
<!-- Recent Content Section -->
<LinearLayout
android:id="@+id/ll_recent_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:orientation="vertical"
android:visibility="gone">
<!-- Title -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="14dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_order_list"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:paddingVertical="13.3dp"
android:text="구매목록"
android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" />
android:fontFamily="@font/pretendard_bold"
android:text="최근 들은 "
android:textColor="#B0BEC5"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_playlist"
android:layout_width="0dp"
android:id="@+id/tv_recent_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10.7dp"
android:layout_weight="1"
android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:paddingVertical="13.3dp"
android:text="재생목록"
android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" />
android:fontFamily="@font/pretendard_bold"
android:textColor="#FDC118"
android:textSize="16sp"
tools:text="5" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_reservation_status_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:text="예약현황"
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" />
<LinearLayout
android:id="@+id/ll_reservation_live"
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_recent_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1"
android:gravity="center"
android:paddingVertical="13.3dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_tabbar_live_selected" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6.7dp"
android:layout_marginEnd="4dp"
android:fontFamily="@font/gmarket_sans_bold"
android:text="라이브"
android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" />
<TextView
android:id="@+id/tv_reservation_live"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium"
android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp"
tools:text="3" />
</LinearLayout>
android:clipToPadding="false"
android:paddingHorizontal="24dp" />
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_service_center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:background="@drawable/bg_round_corner_6_7_13181b"
android:paddingHorizontal="13.3dp"
android:paddingVertical="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="13.7dp"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:text="보이스온 고객센터"
android:textColor="@color/color_eeeeee"
android:textSize="15.3sp"
app:drawableStartCompat="@drawable/ic_headphones" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:contentDescription="@null"
android:src="@drawable/ic_forward" />
</RelativeLayout>
<TextView
android:id="@+id/tv_auth"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:background="@drawable/bg_round_corner_6_7_004b6c"
android:fontFamily="@font/gmarket_sans_bold"
android:paddingHorizontal="13.3dp"
android:paddingVertical="20dp"
android:text="본인인증"
android:textColor="@color/color_eeeeee"
android:textSize="15.3sp"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_how_to_use"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="21.3dp"
android:contentDescription="@null"
android:src="@drawable/img_how_to_use" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<FrameLayout
android:layout_width="76dp"
android:layout_height="76dp"
android:background="@drawable/bg_round_corner_16_15202f">
<ImageView
android:id="@+id/iv_function_icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null"
android:scaleType="centerInside" />
</FrameLayout>
<TextView
android:id="@+id/tv_function_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:fontFamily="@font/pretendard_regular"
android:gravity="center"
android:textColor="#FFFFFF"
android:textSize="14sp" />
</LinearLayout>

View File

@@ -126,7 +126,7 @@
android:layout_height="16dp"
android:layout_marginEnd="2dp"
android:contentDescription="@null"
android:src="@drawable/ic_can_circle" />
android:src="@drawable/ic_can" />
<TextView
android:id="@+id/tv_can"

View File

@@ -205,7 +205,7 @@
android:layout_height="16dp"
android:layout_marginEnd="2dp"
android:contentDescription="@null"
android:src="@drawable/ic_can_circle" />
android:src="@drawable/ic_can" />
<TextView
android:id="@+id/tv_can"

View File

@@ -188,7 +188,7 @@
android:layout_height="16dp"
android:layout_marginEnd="2dp"
android:contentDescription="@null"
android:src="@drawable/ic_can_circle" />
android:src="@drawable/ic_can" />
<TextView
android:id="@+id/tv_can"