From be36bbe1af14e9c9abf0f656dcd2017171ff77bc Mon Sep 17 00:00:00 2001 From: tgyuu-An Date: Mon, 21 Aug 2023 13:09:18 +0900 Subject: [PATCH] #210 MyPageMoreDialog SpanProvider --- .../core/common/mapper/MedicineInfoMapper.kt | 4 --- .../core/common/mapper/SpanProvider.kt | 35 +++++++++++++++++++ core/common/src/main/res/values/color.xml | 1 + core/common/src/main/res/values/strings.xml | 3 ++ .../mypagemore/MyPageMoreDialogFragment.kt | 35 ++++--------------- 5 files changed, 46 insertions(+), 32 deletions(-) diff --git a/core/common/src/main/java/com/android/mediproject/core/common/mapper/MedicineInfoMapper.kt b/core/common/src/main/java/com/android/mediproject/core/common/mapper/MedicineInfoMapper.kt index e4d76abbd..59b2c4d9a 100644 --- a/core/common/src/main/java/com/android/mediproject/core/common/mapper/MedicineInfoMapper.kt +++ b/core/common/src/main/java/com/android/mediproject/core/common/mapper/MedicineInfoMapper.kt @@ -28,10 +28,6 @@ import javax.inject.Singleton @Singleton class MedicineInfoMapper @Inject constructor() { - companion object { - private const val TEXT_SIZE_PERCENT = 1.2F - } - /** * 용법용량 정보 데이터를 UI에 맞게 변환 */ diff --git a/core/common/src/main/java/com/android/mediproject/core/common/mapper/SpanProvider.kt b/core/common/src/main/java/com/android/mediproject/core/common/mapper/SpanProvider.kt index 0d990937d..b753f9c44 100644 --- a/core/common/src/main/java/com/android/mediproject/core/common/mapper/SpanProvider.kt +++ b/core/common/src/main/java/com/android/mediproject/core/common/mapper/SpanProvider.kt @@ -98,4 +98,39 @@ class SpanProvider @Inject constructor() { setSpan(UnderlineSpan(), 15, 18, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) } } + + fun myPageMoreDialogGetWithdrawalSpan(context : Context): SpannableStringBuilder { + return SpannableStringBuilder(context.getString(R.string.withdrawalDescription)).apply { + setSpan( + ForegroundColorSpan( + ContextCompat.getColor( + context, + R.color.red, + ), + ), + 4, + 8, + Spannable.SPAN_INCLUSIVE_INCLUSIVE, + ) + setSpan(UnderlineSpan(), 4, 8, Spannable.SPAN_INCLUSIVE_INCLUSIVE) + } + } + + fun myPageMoregGetLogoutSpan(context: Context): SpannableStringBuilder { + return SpannableStringBuilder(context.getString(R.string.logoutDescription)).apply { + setSpan( + ForegroundColorSpan( + ContextCompat.getColor( + context, + R.color.red, + ), + ), + 4, + 8, + Spannable.SPAN_INCLUSIVE_INCLUSIVE, + ) + setSpan(UnderlineSpan(), 4, 8, Spannable.SPAN_INCLUSIVE_INCLUSIVE) + } + } + } diff --git a/core/common/src/main/res/values/color.xml b/core/common/src/main/res/values/color.xml index 3f3a75ba4..00a09ca1b 100644 --- a/core/common/src/main/res/values/color.xml +++ b/core/common/src/main/res/values/color.xml @@ -1,4 +1,5 @@ #22A7CC + #F70A0A diff --git a/core/common/src/main/res/values/strings.xml b/core/common/src/main/res/values/strings.xml index 7d8daf472..2b2672739 100644 --- a/core/common/src/main/res/values/strings.xml +++ b/core/common/src/main/res/values/strings.xml @@ -73,4 +73,7 @@ 내가 작성한 댓글이 없습니다. 로그인하여 다른 사용자들과 \n소통을 즐겨보세요 ! + + 정말로 로그아웃을 원하신다면 완료 버튼을 눌러주세요. + 정말로 회원탈퇴를 원하신다면 “회원탈퇴”를 입력한 뒤, 완료 버튼을 눌러주세요. diff --git a/feature/mypage/src/main/java/com/android/mediproject/feature/mypage/mypagemore/MyPageMoreDialogFragment.kt b/feature/mypage/src/main/java/com/android/mediproject/feature/mypage/mypagemore/MyPageMoreDialogFragment.kt index 8f02f95e2..e7ba8c884 100644 --- a/feature/mypage/src/main/java/com/android/mediproject/feature/mypage/mypagemore/MyPageMoreDialogFragment.kt +++ b/feature/mypage/src/main/java/com/android/mediproject/feature/mypage/mypagemore/MyPageMoreDialogFragment.kt @@ -17,12 +17,14 @@ import androidx.core.os.bundleOf import androidx.fragment.app.DialogFragment import androidx.fragment.app.setFragmentResult import androidx.fragment.app.viewModels +import com.android.mediproject.core.common.mapper.SpanProvider import com.android.mediproject.core.ui.base.view.Subtitle.Companion.PASSWORD import com.android.mediproject.feature.mypage.R import com.android.mediproject.feature.mypage.databinding.FragmentMyPageMoreDialogBinding import com.google.android.material.dialog.MaterialAlertDialogBuilder import dagger.hilt.android.AndroidEntryPoint import com.android.mediproject.core.common.viewmodel.repeatOnStarted +import javax.inject.Inject @AndroidEntryPoint class MyPageMoreDialogFragment(private val flag: DialogType) : DialogFragment() { @@ -38,6 +40,9 @@ class MyPageMoreDialogFragment(private val flag: DialogType) : DialogFragment() LOGOUT(308) } + @Inject + lateinit var spanProvider: SpanProvider + private val fragmentViewModel: MyPageMoreDialogViewModel by viewModels() private var _binding: FragmentMyPageMoreDialogBinding? = null val binding get() = _binding!! @@ -311,20 +316,7 @@ class MyPageMoreDialogFragment(private val flag: DialogType) : DialogFragment() } private fun getWithdrawalSpan(): SpannableStringBuilder { - return SpannableStringBuilder(getString(R.string.withdrawalDescription)).apply { - setSpan( - ForegroundColorSpan( - ContextCompat.getColor( - requireContext(), - com.android.mediproject.core.ui.R.color.red, - ), - ), - 4, - 8, - Spannable.SPAN_INCLUSIVE_INCLUSIVE, - ) - setSpan(UnderlineSpan(), 4, 8, Spannable.SPAN_INCLUSIVE_INCLUSIVE) - } + return spanProvider.myPageMoreDialogGetWithdrawalSpan(requireContext()) } private fun setLogoutVisible() = binding.apply { @@ -333,20 +325,7 @@ class MyPageMoreDialogFragment(private val flag: DialogType) : DialogFragment() } private fun getLogoutSpan(): SpannableStringBuilder { - return SpannableStringBuilder(getString(R.string.logoutDescription)).apply { - setSpan( - ForegroundColorSpan( - ContextCompat.getColor( - requireContext(), - com.android.mediproject.core.ui.R.color.red, - ), - ), - 4, - 8, - Spannable.SPAN_INCLUSIVE_INCLUSIVE, - ) - setSpan(UnderlineSpan(), 4, 8, Spannable.SPAN_INCLUSIVE_INCLUSIVE) - } + return spanProvider.myPageMoregGetLogoutSpan(requireContext()) } private fun checkEditableWithdrawal(editable: Editable?): Boolean {