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 29e702f5e..e4d76abbd 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
@@ -176,36 +176,4 @@ class MedicineInfoMapper @Inject constructor() {
dataMap.clear()
result
}
-
- fun initHeaderSpan(context: Context, text: String): SpannableStringBuilder {
- return SpannableStringBuilder(text).apply {
- val underline1Idx =
- text.indexOf(context.getString(R.string.highlightWord1)) to text.indexOf(context.getString(R.string.highlightWord1)) + 2
-
- setSpan(UnderlineSpan(), underline1Idx.first, underline1Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
- setSpan(StyleSpan(Typeface.BOLD), underline1Idx.first, underline1Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
- setSpan(RelativeSizeSpan(TEXT_SIZE_PERCENT), underline1Idx.first, underline1Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
-
- val underline2Idx =
- text.indexOf(context.getString(R.string.highlightWord2)) to text.indexOf(context.getString(R.string.highlightWord2)) + 2
-
- setSpan(UnderlineSpan(), underline2Idx.first, underline2Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
- setSpan(StyleSpan(Typeface.BOLD), underline2Idx.first, underline2Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
- setSpan(RelativeSizeSpan(TEXT_SIZE_PERCENT), underline2Idx.first, underline2Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
- }
- }
-
- fun getNoHistorySpan(context: Context): SpannableStringBuilder {
- val text = context.getString(R.string.failedLoading)
- val highLightIndex = text.indexOf(context.getString(R.string.highlightWord3))
- return SpannableStringBuilder(text).apply {
- setSpan(
- ForegroundColorSpan(ContextCompat.getColor(context, R.color.main)),
- highLightIndex,
- highLightIndex + 3,
- Spannable.SPAN_INCLUSIVE_INCLUSIVE,
- )
- setSpan(UnderlineSpan(), highLightIndex, highLightIndex + 3, Spannable.SPAN_INCLUSIVE_INCLUSIVE)
- }
- }
}
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
new file mode 100644
index 000000000..0d990937d
--- /dev/null
+++ b/core/common/src/main/java/com/android/mediproject/core/common/mapper/SpanProvider.kt
@@ -0,0 +1,101 @@
+package com.android.mediproject.core.common.mapper
+
+import android.content.Context
+import android.graphics.Typeface
+import android.text.Spannable
+import android.text.SpannableStringBuilder
+import android.text.Spanned
+import android.text.style.ForegroundColorSpan
+import android.text.style.RelativeSizeSpan
+import android.text.style.StyleSpan
+import android.text.style.UnderlineSpan
+import androidx.core.content.ContentProviderCompat.requireContext
+import androidx.core.content.ContextCompat
+import com.android.mediproject.core.common.R
+import javax.inject.Inject
+import javax.inject.Singleton
+
+@Singleton
+class SpanProvider @Inject constructor() {
+ companion object {
+ private const val TEXT_SIZE_PERCENT = 1.2F
+ }
+
+ fun homeInitHeaderSpan(context: Context, text: String): SpannableStringBuilder {
+ return SpannableStringBuilder(text).apply {
+ val underline1Idx =
+ text.indexOf(context.getString(R.string.highlightWord1)) to text.indexOf(context.getString(R.string.highlightWord1)) + 2
+
+ setSpan(UnderlineSpan(), underline1Idx.first, underline1Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
+ setSpan(StyleSpan(Typeface.BOLD), underline1Idx.first, underline1Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
+ setSpan(
+ RelativeSizeSpan(TEXT_SIZE_PERCENT),
+ underline1Idx.first,
+ underline1Idx.second,
+ Spanned.SPAN_INCLUSIVE_INCLUSIVE,
+ )
+
+ val underline2Idx =
+ text.indexOf(context.getString(R.string.highlightWord2)) to text.indexOf(context.getString(R.string.highlightWord2)) + 2
+
+ setSpan(UnderlineSpan(), underline2Idx.first, underline2Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
+ setSpan(StyleSpan(Typeface.BOLD), underline2Idx.first, underline2Idx.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
+ setSpan(
+ RelativeSizeSpan(TEXT_SIZE_PERCENT),
+ underline2Idx.first,
+ underline2Idx.second,
+ Spanned.SPAN_INCLUSIVE_INCLUSIVE,
+ )
+ }
+ }
+
+ fun penaltyGetNoHistorySpan(context: Context): SpannableStringBuilder {
+ val text = context.getString(R.string.failedLoading)
+ val highLightIndex = text.indexOf(context.getString(R.string.highlightWord3))
+ return SpannableStringBuilder(text).apply {
+ setSpan(
+ ForegroundColorSpan(ContextCompat.getColor(context, R.color.main)),
+ highLightIndex,
+ highLightIndex + 3,
+ Spannable.SPAN_INCLUSIVE_INCLUSIVE,
+ )
+ setSpan(UnderlineSpan(), highLightIndex, highLightIndex + 3, Spannable.SPAN_INCLUSIVE_INCLUSIVE)
+ }
+ }
+
+ fun myPageSetNoShowCommentListSpan(context: Context): SpannableStringBuilder {
+ return SpannableStringBuilder(context.getString(R.string.noMyComment)).apply {
+ setSpan(
+ ForegroundColorSpan(
+ ContextCompat.getColor(
+ context,
+ R.color.main,
+ ),
+ ),
+ 7, 9, Spannable.SPAN_INCLUSIVE_INCLUSIVE,
+ )
+ setSpan(
+ UnderlineSpan(),
+ 7,
+ 9,
+ Spannable.SPAN_INCLUSIVE_INCLUSIVE,
+ )
+ }
+ }
+
+ fun myPageSetGuestModeScreenSpan(context: Context): SpannableStringBuilder {
+ return SpannableStringBuilder(context.getString(R.string.guestDescription)).apply {
+ setSpan(
+ ForegroundColorSpan(
+ ContextCompat.getColor(
+ context,
+ R.color.main,
+ ),
+ ),
+ 15, 18,
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE,
+ )
+ setSpan(UnderlineSpan(), 15, 18, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
+ }
+ }
+}
diff --git a/core/common/src/main/res/values/strings.xml b/core/common/src/main/res/values/strings.xml
index 5aab4a6ea..7d8daf472 100644
--- a/core/common/src/main/res/values/strings.xml
+++ b/core/common/src/main/res/values/strings.xml
@@ -64,9 +64,13 @@
인터넷 연결이 필요합니다.
+
찾고
소통
식약처로 부터 데이터를 불러오는데 실패했습니다.
데이터
+
+ 내가 작성한 댓글이 없습니다.
+ 로그인하여 다른 사용자들과 \n소통을 즐겨보세요 !
diff --git a/core/domain/src/main/java/com/android/mediproject/core/domain/GetUserUseCase.kt b/core/domain/src/main/java/com/android/mediproject/core/domain/GetUserUseCase.kt
index 2b596d585..bfe8c27cd 100644
--- a/core/domain/src/main/java/com/android/mediproject/core/domain/GetUserUseCase.kt
+++ b/core/domain/src/main/java/com/android/mediproject/core/domain/GetUserUseCase.kt
@@ -12,7 +12,7 @@ class GetUserUseCase @Inject constructor(private val appDataStore: AppDataStore)
suspend operator fun invoke(): Flow = channelFlow {
appDataStore.nickName.collect { nickName ->
Log.d("wap", nickName)
- trySend(User(nickName = nickName))
+ trySend(User(nickName = nickName,""))
}
}
}
diff --git a/feature/home/src/main/java/com/android/mediproject/feature/home/HomeFragment.kt b/feature/home/src/main/java/com/android/mediproject/feature/home/HomeFragment.kt
index a3b898df0..06c16f58f 100644
--- a/feature/home/src/main/java/com/android/mediproject/feature/home/HomeFragment.kt
+++ b/feature/home/src/main/java/com/android/mediproject/feature/home/HomeFragment.kt
@@ -7,6 +7,7 @@ import androidx.core.os.bundleOf
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import com.android.mediproject.core.common.mapper.MedicineInfoMapper
+import com.android.mediproject.core.common.mapper.SpanProvider
import com.android.mediproject.core.common.util.SystemBarStyler
import com.android.mediproject.core.common.viewmodel.repeatOnStarted
import com.android.mediproject.core.ui.base.BaseFragment
@@ -28,7 +29,7 @@ class HomeFragment : BaseFragment(FragmentHo
@Inject lateinit var systemBarStyler: SystemBarStyler
- @Inject lateinit var medicineInfoMapper: MedicineInfoMapper
+ @Inject lateinit var spanProvider: SpanProvider
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@@ -132,7 +133,7 @@ class HomeFragment : BaseFragment(FragmentHo
private fun setHeaderText() {
val span: SpannableStringBuilder
viewLifecycleOwner.apply {
- span = medicineInfoMapper.initHeaderSpan(requireContext(), getString(R.string.headerTextOnHome))
+ span = spanProvider.homeInitHeaderSpan(requireContext(), getString(R.string.headerTextOnHome))
}
binding.headerText.text = span
}
diff --git a/feature/mypage/src/main/java/com/android/mediproject/feature/mypage/MyPageFragment.kt b/feature/mypage/src/main/java/com/android/mediproject/feature/mypage/MyPageFragment.kt
index 853a6ce85..9ec6ee8f1 100644
--- a/feature/mypage/src/main/java/com/android/mediproject/feature/mypage/MyPageFragment.kt
+++ b/feature/mypage/src/main/java/com/android/mediproject/feature/mypage/MyPageFragment.kt
@@ -9,6 +9,7 @@ import android.view.View
import androidx.core.content.ContextCompat
import androidx.fragment.app.viewModels
import androidx.recyclerview.widget.LinearLayoutManager
+import com.android.mediproject.core.common.mapper.SpanProvider
import com.android.mediproject.core.common.util.SystemBarStyler
import com.android.mediproject.core.common.viewmodel.UiState
import com.android.mediproject.core.model.token.CurrentTokens
@@ -30,6 +31,9 @@ class MyPageFragment :
@Inject
lateinit var systemBarStyler: SystemBarStyler
+ @Inject
+ lateinit var spanProvider: SpanProvider
+
override val fragmentViewModel: MyPageViewModel by viewModels()
private val myCommentListAdapter: MyPageMyCommentAdapter by lazy { MyPageMyCommentAdapter() }
private var myPageMoreBottomSheet: MyPageMoreBottomSheetFragment? = null
@@ -91,21 +95,7 @@ class MyPageFragment :
}
private fun setGuestModeScreenSpan(): SpannableStringBuilder {
- val span =
- SpannableStringBuilder(getString(com.android.mediproject.feature.mypage.R.string.guestDescription)).apply {
- setSpan(
- ForegroundColorSpan(
- ContextCompat.getColor(
- requireContext(),
- R.color.main,
- ),
- ),
- 15, 18,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE,
- )
- setSpan(UnderlineSpan(), 15, 18, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
- }
- return span
+ return spanProvider.myPageSetGuestModeScreenSpan(requireContext())
}
private fun setGuestModeScreenVisible() = binding.apply {
@@ -253,25 +243,7 @@ class MyPageFragment :
}
private fun setNoShowCommentListSpan(): SpannableStringBuilder {
- val span =
- SpannableStringBuilder(getString(com.android.mediproject.feature.mypage.R.string.noMyComment)).apply {
- setSpan(
- ForegroundColorSpan(
- ContextCompat.getColor(
- requireContext(),
- R.color.main,
- ),
- ),
- 7, 9, Spannable.SPAN_INCLUSIVE_INCLUSIVE,
- )
- setSpan(
- UnderlineSpan(),
- 7,
- 9,
- Spannable.SPAN_INCLUSIVE_INCLUSIVE,
- )
- }
- return span
+ return spanProvider.myPageSetNoShowCommentListSpan(requireContext())
}
private fun setNoShowCommentListVisible() = binding.apply {
diff --git a/feature/mypage/src/main/res/values/strings.xml b/feature/mypage/src/main/res/values/strings.xml
index fb3953a95..0b540664d 100644
--- a/feature/mypage/src/main/res/values/strings.xml
+++ b/feature/mypage/src/main/res/values/strings.xml
@@ -2,10 +2,8 @@
즐겨찾기 목록
내가 작성한 댓글 목록
게스트 모드
- 로그인하여 다른 사용자들과 \n소통을 즐겨보세요 !
로그인
회원가입
- 내가 작성한 댓글이 없습니다.
닉네임 변경
비밀번호 변경
diff --git a/feature/news/src/main/java/com/android/mediproject/feature/news/penalties/recentpenaltylist/RecentPenaltyListFragment.kt b/feature/news/src/main/java/com/android/mediproject/feature/news/penalties/recentpenaltylist/RecentPenaltyListFragment.kt
index 6c4aeac5f..6d81005d1 100644
--- a/feature/news/src/main/java/com/android/mediproject/feature/news/penalties/recentpenaltylist/RecentPenaltyListFragment.kt
+++ b/feature/news/src/main/java/com/android/mediproject/feature/news/penalties/recentpenaltylist/RecentPenaltyListFragment.kt
@@ -5,6 +5,7 @@ import android.view.View
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import com.android.mediproject.core.common.mapper.MedicineInfoMapper
+import com.android.mediproject.core.common.mapper.SpanProvider
import com.android.mediproject.core.common.util.deepNavigate
import com.android.mediproject.core.common.util.navigateByDeepLink
import com.android.mediproject.core.common.viewmodel.UiState
@@ -29,7 +30,7 @@ class RecentPenaltyListFragment :
lateinit var penaltyListAdapter: PenaltyListAdapter
@Inject
- lateinit var medicineInfoMapper: MedicineInfoMapper
+ lateinit var spanProvider: SpanProvider
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@@ -46,7 +47,7 @@ class RecentPenaltyListFragment :
}
repeatOnStarted { eventFlow.collect { event -> handleEvent(event) } }
}
- noHistoryTextView.text = medicineInfoMapper.getNoHistorySpan(requireContext())
+ noHistoryTextView.text = spanProvider.penaltyGetNoHistorySpan(requireContext())
}
setRecyclerView()
}