Skip to content

Commit

Permalink
Merge pull request #143 from Team-Sopetit/feature/#136-daily-routine-…
Browse files Browse the repository at this point in the history
…before-release-issue

#136 [fix] 릴리즈 전 데일리 루틴 이슈 수정
  • Loading branch information
minemi00 authored Feb 1, 2024
2 parents a10e00f + be83173 commit ecbf726
Show file tree
Hide file tree
Showing 24 changed files with 104 additions and 227 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@ import com.sopetit.softie.databinding.FragmentDailyRoutineBinding
import com.sopetit.softie.domain.entity.DailyRoutine
import com.sopetit.softie.ui.dailyroutine.complete.DailyRoutineCompleteActivity
import com.sopetit.softie.ui.dailyroutine.dailyroutineadd.DailyRoutineAddActivity
import com.sopetit.softie.ui.main.MainActivity
import com.sopetit.softie.util.CustomSnackbar
import com.sopetit.softie.util.OriginalBottomSheet.Companion.BOTTOM_SHEET_TAG
import com.sopetit.softie.util.binding.BindingAdapter.setCoilImage
import com.sopetit.softie.util.binding.BindingBottomSheet
import com.sopetit.softie.util.binding.BindingFragment
import com.sopetit.softie.util.setSingleOnClickListener
import com.sopetit.softie.util.setStatusBarColor
import com.sopetit.softie.util.snackBar
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
Expand Down Expand Up @@ -131,12 +132,12 @@ class DailyRoutineFragment :
isDrawable = false,
imageDrawable = 0,
imageUri = dailyRoutine.iconImageUrl,
title = "데일리 루틴을 완료했나요?",
content = "한 번 완료하면 이전으로 되돌릴 수 없어요",
title = getString(R.string.daily_routine_complete_question),
content = getString(R.string.daily_routine_complete_notice),
isContentVisible = true,
contentColor = R.color.gray400,
backBtnContent = "아니, 아직이야!",
doBtnContent = "완료했어",
backBtnContent = getString(R.string.daily_routine_complete_yet),
doBtnContent = getString(R.string.daily_routine_complete_fix),
doBtnColor = R.drawable.shape_main1_fill_12_rect,
backBtnAction = {},
doBtnAction = {
Expand Down Expand Up @@ -228,22 +229,27 @@ class DailyRoutineFragment :
isDrawable = true,
imageDrawable = R.drawable.ic_bear_face_crying,
imageUri = "",
title = "정말 삭제할까요?",
content = "루틴을 삭제해도 달성 횟수는 저장돼요",
title = getString(R.string.daily_routine_edit_delete_question),
content = getString(R.string.daily_routine_edit_delete_notice),
isContentVisible = true,
contentColor = R.color.red,
backBtnContent = "취소",
doBtnContent = "삭제할래",
backBtnContent = getString(R.string.daily_routine_edit_delete_cancel),
doBtnContent = getString(R.string.daily_routine_edit_delete_fix),
doBtnColor = R.drawable.shape_red_fill_12_rect,
backBtnAction = {},
doBtnAction = {
val arraySize = viewModel.editRoutineIdArray.size
viewModel.deleteDailyRoutine()
viewModel.isDailyRoutineDelete.observe(viewLifecycleOwner) {
snackBar(
binding.root.rootView,
"데일리 루틴을 ${arraySize}개 삭제했어요"

val customSnackbar = CustomSnackbar.make(
(binding.root.rootView),
getString(R.string.daily_routine_edit_delete_num, arraySize),
(requireActivity() as MainActivity).findViewById(R.id.bottom_navigation_home)
)

customSnackbar.show(1000)

viewModel.setDeleteView(false)
viewModel.getDailyRoutine()

Expand Down Expand Up @@ -273,7 +279,12 @@ class DailyRoutineFragment :
private val addDailyRoutineLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == AppCompatActivity.RESULT_OK) {
snackBar(binding.root, getString(R.string.daily_routine_snack_bar))
val customSnackbar = CustomSnackbar.make(
binding.root.rootView,
getString(R.string.daily_routine_add_snack_bar),
(requireActivity() as MainActivity).findViewById(R.id.bottom_navigation_home)
)
customSnackbar.show(1000)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ class DailyRoutineAddActivity :
setItemDiv()
setCurrentCard()
initViewPager()
initPagerDiv(0, 20)
addClickListener()
observeRoutineCardList()
}
Expand Down Expand Up @@ -93,51 +92,14 @@ class DailyRoutineAddActivity :
private fun initViewPager() {
viewPager.adapter = dailyRoutineAddCardPagerAdapter

val dp = resources.getDimensionPixelSize(R.dimen.view_margin)
val d = resources.displayMetrics.density
val margin = (dp * d * 1.3).toInt()

with(binding.vpDailyRoutineAddCard) {
clipChildren = false
clipToPadding = false
offscreenPageLimit = VIEW_PAGE.toInt()
setPadding(margin, PADDING_CARD, margin, PADDING_CARD)
}
val compositePageTransformer = CompositePageTransformer()
binding.vpDailyRoutineAddCard.setPageTransformer(compositePageTransformer)
}

private fun initPagerDiv(previewWidth: Int, itemMargin: Int) {
val decoMargin = previewWidth + itemMargin
val pageTransX = decoMargin + previewWidth
val decoration = PageDecoration(decoMargin)

binding.vpDailyRoutineAddCard.also {
it.offscreenPageLimit = VIEW_PAGE.toInt()
it.addItemDecoration(decoration)
it.setPageTransformer { page, position ->
page.translationX = position * -pageTransX
}
}
}

private fun setIndicator() {
binding.diDailyRoutineAddIndicator.attachTo(binding.vpDailyRoutineAddCard)
}

private class PageDecoration(private val margin: Int) : RecyclerView.ItemDecoration() {

override fun getItemOffsets(
outRect: Rect,
view: View,
parent: RecyclerView,
state: RecyclerView.State
) {
outRect.left = margin
outRect.right = margin
}
}

class HorizontalItemDecorator(
private val marginStart: Int,
private val marginEnd: Int,
Expand Down Expand Up @@ -230,9 +192,4 @@ class DailyRoutineAddActivity :
setResult(Activity.RESULT_OK, resultIntent)
finish()
}

companion object {
const val VIEW_PAGE = 3
const val PADDING_CARD = 0
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import coil.load
import com.sopetit.softie.R
import com.sopetit.softie.databinding.ItemDailyRoutineAddCardBinding
import com.sopetit.softie.domain.entity.Routine
import com.sopetit.softie.util.ItemDiffCallback
import com.sopetit.softie.util.binding.BindingAdapter.setCoilImage
import timber.log.Timber

class DailyRoutineAddCardPagerAdapter :
Expand Down Expand Up @@ -52,7 +53,10 @@ class DailyRoutineAddCardPagerAdapter :
) :
RecyclerView.ViewHolder(binding.root) {
fun onBind(data: Routine) {
binding.tvDailyRoutineAddCard.setCoilImage(background)
binding.tvDailyRoutineAddCard.load(background) {
placeholder(R.drawable.ic_daily_routine_card_base)
error(R.drawable.ic_daily_routine_card_base)
}
Timber.d("load Image -> $data")
binding.tvDailyRoutineAddCardName.text = data.content
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import com.sopetit.softie.R
import com.sopetit.softie.databinding.ItemDailyRoutineAddThemeBinding
import com.sopetit.softie.domain.entity.Theme
import com.sopetit.softie.util.ItemDiffCallback
import com.sopetit.softie.util.binding.BindingAdapter.setCoilImage
import com.sopetit.softie.util.binding.BindingAdapter.setBaseCoilImage
import com.sopetit.softie.util.setSingleOnClickListener

class DailyRoutineAddThemeAdapter :
Expand Down Expand Up @@ -38,7 +38,7 @@ class DailyRoutineAddThemeAdapter :
RecyclerView.ViewHolder(binding.root) {
fun onBind(data: Theme) {
binding.tvDailyRoutineAddThemeName.text = data.name
binding.ivDailyRoutineAddThemeIcon.setCoilImage(data.iconImageUrl)
binding.ivDailyRoutineAddThemeIcon.setBaseCoilImage(data.iconImageUrl)
if (selectedPosition == absoluteAdapterPosition) {
changeThemeBackground(binding, true)
changeThemeTextColor(binding, true)
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/sopetit/softie/util/Context.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ fun snackBar(
anchorView: View,
message: String,
) {
CustomSnackbar.make(anchorView, message).show()
CustomSnackbar.make(anchorView, message, anchorView).show()
}

fun Context.toast(message: String) {
Expand Down
13 changes: 10 additions & 3 deletions app/src/main/java/com/sopetit/softie/util/CustomSnackbar.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@ import com.google.android.material.snackbar.Snackbar
import com.sopetit.softie.R
import com.sopetit.softie.databinding.SnackbarCustomBinding

class CustomSnackbar(view: View, private val message: String) {
class CustomSnackbar(view: View, private val message: String, anchor: View) {

private val context = view.context
private val snackbar = Snackbar.make(view, "", Snackbar.LENGTH_SHORT)
private val snackbar = Snackbar.make(view, "", Snackbar.LENGTH_SHORT).apply {
anchorView = anchor
}
private val snackbarLayout = snackbar.view as Snackbar.SnackbarLayout

private val binding: SnackbarCustomBinding =
Expand All @@ -38,7 +40,12 @@ class CustomSnackbar(view: View, private val message: String) {
snackbar.show()
}

fun show(duration: Int) {
snackbar.duration = duration
snackbar.show()
}

companion object {
fun make(view: View, message: String) = CustomSnackbar(view, message)
fun make(view: View, message: String, anchor: View) = CustomSnackbar(view, message, anchor)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import androidx.databinding.BindingAdapter
import coil.decode.SvgDecoder
import coil.load
import com.bumptech.glide.Glide
import com.sopetit.softie.R

object BindingAdapter {
@BindingAdapter("setImage")
Expand All @@ -27,4 +28,19 @@ object BindingAdapter {
}
}
}

@BindingAdapter("setBaseCoilImage")
@JvmStatic
fun ImageView.setBaseCoilImage(imgUrl: String?) {
this.let {
it.load(imgUrl) {
if (imgUrl?.endsWith(".svg") == true) {
decoderFactory { result, options, _ -> SvgDecoder(result.source, options) }
}
crossfade(true)
placeholder(R.drawable.ic_loading_bear)
error(R.drawable.ic_loading_bear)
}
}
}
}
13 changes: 0 additions & 13 deletions app/src/main/res/drawable/ic_daily.xml

This file was deleted.

13 changes: 0 additions & 13 deletions app/src/main/res/drawable/ic_daily_add.xml

This file was deleted.

Loading

0 comments on commit ecbf726

Please sign in to comment.