Skip to content

Commit

Permalink
#210 MyPageMoreDialog SpanProvider
Browse files Browse the repository at this point in the history
  • Loading branch information
tgyuuAn committed Aug 21, 2023
1 parent 6d5bf69 commit be36bbe
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,6 @@ import javax.inject.Singleton
@Singleton
class MedicineInfoMapper @Inject constructor() {

companion object {
private const val TEXT_SIZE_PERCENT = 1.2F
}

/**
* 용법용량 정보 데이터를 UI에 맞게 변환
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}

}
1 change: 1 addition & 0 deletions core/common/src/main/res/values/color.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="main">#22A7CC</color>
<color name="red">#F70A0A</color>
</resources>
3 changes: 3 additions & 0 deletions core/common/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,7 @@

<string name="noMyComment">내가 작성한 댓글이 없습니다.</string>
<string name="guestDescription">로그인하여 다른 사용자들과 \n소통을 즐겨보세요 !</string>

<string name="logoutDescription">정말로 로그아웃을 원하신다면 완료 버튼을 눌러주세요.</string>
<string name="withdrawalDescription">정말로 회원탈퇴를 원하신다면 “회원탈퇴”를 입력한 뒤, 완료 버튼을 눌러주세요.</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand All @@ -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!!
Expand Down Expand Up @@ -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 {
Expand All @@ -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 {
Expand Down

0 comments on commit be36bbe

Please sign in to comment.