Skip to content

Commit

Permalink
Merge pull request #137 from Team-Sopetit/feature/#134-fix-snackbar
Browse files Browse the repository at this point in the history
#134 [fix] 스낵바 띄우기 및 위치 조정
  • Loading branch information
pump9918 authored Feb 2, 2024
2 parents 7f4a8e9 + 3eddd4a commit 93b5ccb
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ package com.sopetit.softie.ui.happyroutine
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.viewModels
import coil.load
import com.sopetit.softie.R
import com.sopetit.softie.databinding.FragmentHappyMyRoutineBinding
import com.sopetit.softie.ui.happyroutine.complete.HappyRoutineCompleteActivity
import com.sopetit.softie.ui.happyroutine.delete.HappyDeleteFragment
import com.sopetit.softie.ui.happyroutine.list.HappyAddListActivity
import com.sopetit.softie.util.CustomSnackbar
import com.sopetit.softie.util.OriginalBottomSheet
import com.sopetit.softie.util.binding.BindingBottomSheet
import com.sopetit.softie.util.binding.BindingFragment
Expand All @@ -22,17 +25,23 @@ class HappyMyRoutineFragment :
BindingFragment<FragmentHappyMyRoutineBinding>(R.layout.fragment_happy_my_routine) {

private val viewModel by viewModels<HappyMyRoutineViewModel>()
private var resultLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == AppCompatActivity.RESULT_OK) {
customHappyRoutineAddSnackBar()
}
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.viewModel = viewModel
setStatusBarColor(R.color.background)

initSetBearFace()
setMyCardEnter()
setCardEnter()
setEditEnter()
setClearEnter()
startHappyAddListActivity()
setCardImageClickListener()
startHappyDeleteActivity()
startHappyRoutineCompleteBottomSheet()
}

override fun onResume() {
Expand All @@ -41,6 +50,15 @@ class HappyMyRoutineFragment :
viewModel.getHappyProgress()
}

private fun customHappyRoutineAddSnackBar() {
val customSnackbar = CustomSnackbar.make(
(binding.root.rootView),
getString(R.string.happy_routine_add_snack_bar),
binding.btnHappyProgressClear
)
customSnackbar.show(1000)
}

private fun initSetBearFace() {
viewModel.setDollFace()
viewModel.bearFace.observe(viewLifecycleOwner) { bearFace ->
Expand All @@ -51,25 +69,25 @@ class HappyMyRoutineFragment :
}
}

private fun setMyCardEnter() {
private fun startHappyAddListActivity() {
binding.ivHappyRoutineEmptyCard.setOnClickListener {
val intent = Intent(requireContext(), HappyAddListActivity::class.java)
startActivity(intent)
resultLauncher.launch(intent)
}
}

private fun setCardEnter() {
private fun setCardImageClickListener() {
with(binding) {
clHappyProgressCardFront.setSingleOnClickListener {
setCardFlip(clHappyProgressCardFront, clHappyProgressCardBack)
setCardImageFlip(clHappyProgressCardFront, clHappyProgressCardBack)
}
clHappyProgressCardBack.setSingleOnClickListener {
setCardFlip(clHappyProgressCardBack, clHappyProgressCardFront)
setCardImageFlip(clHappyProgressCardBack, clHappyProgressCardFront)
}
}
}

private fun setEditEnter() {
private fun startHappyDeleteActivity() {
binding.tvHappyProgressEdit.setSingleOnClickListener {
val happyDeleteFragment = HappyDeleteFragment()
requireActivity().supportFragmentManager.beginTransaction()
Expand All @@ -79,7 +97,7 @@ class HappyMyRoutineFragment :
}
}

private fun setCardFlip(viewFront: View, viewToBack: View) {
private fun setCardImageFlip(viewFront: View, viewToBack: View) {
val isVisible = viewFront.visibility == View.VISIBLE
if (isVisible) {
viewFront.visibility = View.INVISIBLE
Expand Down Expand Up @@ -117,7 +135,7 @@ class HappyMyRoutineFragment :
startActivity(intentToCompleteActivity)
}

private fun setClearEnter() {
private fun startHappyRoutineCompleteBottomSheet() {
binding.btnHappyProgressClear.setOnClickListener {
viewModel.happyProgressResponse.value?.iconImageUrl?.let { url ->
initHappyRoutineCompleteBottomSheet(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ import com.sopetit.softie.R
import com.sopetit.softie.databinding.FragmentHappyDeleteBinding
import com.sopetit.softie.ui.happyroutine.HappyMyRoutineFragment
import com.sopetit.softie.ui.happyroutine.HappyMyRoutineViewModel
import com.sopetit.softie.ui.main.MainActivity
import com.sopetit.softie.util.CustomSnackbar
import com.sopetit.softie.util.OriginalBottomSheet
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.snackBar
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
Expand All @@ -25,9 +26,9 @@ class HappyDeleteFragment :
val happyProgress = viewModel.getHappyProgress()

setCardBinding(happyProgress)
setCardEnter()
setCardImageClickListener()
setCancelEnter()
setClearEnter()
startHappyDeleteBottomSheet()
}

private fun setCardBinding(happyProgress: Unit) {
Expand All @@ -49,13 +50,13 @@ class HappyDeleteFragment :
}
}

private fun setCardEnter() {
private fun setCardImageClickListener() {
with(binding) {
clHappyDeleteCardFront.setSingleOnClickListener {
setCardFlip(clHappyDeleteCardFront, clHappyDeleteCardBack)
setCardImageFlip(clHappyDeleteCardFront, clHappyDeleteCardBack)
}
clHappyDeleteCardBack.setSingleOnClickListener {
setCardFlip(clHappyDeleteCardBack, clHappyDeleteCardFront)
setCardImageFlip(clHappyDeleteCardBack, clHappyDeleteCardFront)
}
}
}
Expand All @@ -66,7 +67,7 @@ class HappyDeleteFragment :
}
}

private fun setCardFlip(viewFront: View, viewToBack: View) {
private fun setCardImageFlip(viewFront: View, viewToBack: View) {
val isVisible = viewFront.visibility == View.VISIBLE
if (isVisible) {
viewFront.visibility = View.INVISIBLE
Expand All @@ -77,7 +78,7 @@ class HappyDeleteFragment :
}
}

private fun setClearEnter() {
private fun startHappyDeleteBottomSheet() {
binding.btnHappyDeleteClear.setSingleOnClickListener {
BindingBottomSheet.Builder().build(
isDrawable = true,
Expand All @@ -96,10 +97,7 @@ class HappyDeleteFragment :
happyProgress?.let {
viewModel.deleteHappyProgress(happyProgress.routineId)
}
snackBar(
binding.root.rootView,
getString(R.string.happy_routine_delete_snack_bar)
)
customHappyDeleteSnackBar()
requireActivity().supportFragmentManager.beginTransaction()
.replace(R.id.fcv_main, HappyMyRoutineFragment())
.commit()
Expand All @@ -108,4 +106,13 @@ class HappyDeleteFragment :
).show(parentFragmentManager, OriginalBottomSheet.BOTTOM_SHEET_TAG)
}
}

private fun customHappyDeleteSnackBar() {
val customSnackbar = CustomSnackbar.make(
(binding.root.rootView),
getString(R.string.happy_routine_delete_snack_bar),
(requireActivity() as MainActivity).findViewById(R.id.bottom_navigation_home)
)
customSnackbar.show(1000)
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.sopetit.softie.ui.happyroutine.detail

import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import androidx.activity.viewModels
Expand Down Expand Up @@ -36,7 +35,7 @@ class HappyDetailActivity :
setInitBinding(routineId, imageUrl)
setCurrentCard()
setBackEnter()
setupAdapter(routineId)
setHappyDetailCardPagerAdapter(routineId)
setIndicator()
}

Expand All @@ -56,7 +55,7 @@ class HappyDetailActivity :
viewModel.mySubroutineId.observe(this) { mySubRoutineId ->
mySubRoutineId?.let {
imageUrl?.let {
setBottomSheetEnter(it, mySubRoutineId)
startHappyRoutineAddBottomSheet(it, mySubRoutineId)
}
}
}
Expand Down Expand Up @@ -86,7 +85,7 @@ class HappyDetailActivity :
}
}

private fun setBottomSheetEnter(icon: String, subRoutineId: Int) {
private fun startHappyRoutineAddBottomSheet(icon: String, subRoutineId: Int) {
binding.btnHappyDetailAdd.setSingleOnClickListener {
initHappyRoutineAddBottomSheet(icon, subRoutineId)
}
Expand All @@ -106,18 +105,18 @@ class HappyDetailActivity :
doBtnColor = R.drawable.shape_main1_fill_12_rect,
backBtnAction = {},
doBtnAction = {
moveToProgress()
viewModel.postAddRoutine(subRoutineId)
moveToProgress()
}
).show(this.supportFragmentManager, OriginalBottomSheet.BOTTOM_SHEET_TAG)
}

private fun moveToProgress() {
setResult(RESULT_OK, Intent())
setResult(RESULT_OK)
finish()
}

private fun setupAdapter(routineId: String) {
private fun setHappyDetailCardPagerAdapter(routineId: String) {
with(binding) {
vpHappyAddDetailCard.adapter = happyRoutineAddCardPagerAdapter
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,13 @@ class HappyAddListActivity :
private var happyAddListChipContentAdapter: HappyAddListChipContentAdapter? = null
private var happyAddListContentAdapter: HappyAddListContentAdapter? = null

private val addHappinessRoutineResult = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) {
finish()
}
private val startForDetailResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == RESULT_OK) {
setResult(RESULT_OK)
finish()
}
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand All @@ -43,12 +45,12 @@ class HappyAddListActivity :
setChipAdapters()
setBackEnter()
setItemDeco()
setupAdapter()
setHappyAddListAdapter()
}

private fun setChipAdapters() {
happyAddListChipContentAdapter = HappyAddListChipContentAdapter()
happyAddListContentAdapter = HappyAddListContentAdapter(::moveToDetail)
happyAddListContentAdapter = HappyAddListContentAdapter(::startDetailActivity)
}

private fun setBackEnter() {
Expand All @@ -64,7 +66,7 @@ class HappyAddListActivity :
binding.rvHappyAddListChip.addItemDecoration(chipDeco)
}

private fun setupAdapter() {
private fun setHappyAddListAdapter() {
with(binding) {
rvHappyAddListChip.adapter = happyAddListChipContentAdapter
rvHappyAddList.adapter = happyAddListContentAdapter
Expand All @@ -81,13 +83,12 @@ class HappyAddListActivity :
}
}

private fun moveToDetail(id: Int, iconImageUrl: String) {
val intentToDetail = Intent(this, HappyDetailActivity::class.java).apply {
private fun startDetailActivity(id: Int, iconImageUrl: String) {
val intent = Intent(this, HappyDetailActivity::class.java).apply {
putExtra(ID, id)
putExtra(ICON_IMAGE_URL, iconImageUrl)
}
addHappinessRoutineResult.launch(intentToDetail)
finish()
startForDetailResult.launch(intent)
}

companion object {
Expand Down
24 changes: 0 additions & 24 deletions app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,19 @@ package com.sopetit.softie.ui.main

import android.content.res.ColorStateList
import android.os.Bundle
import androidx.activity.viewModels
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.sopetit.softie.R
import com.sopetit.softie.databinding.ActivityMainBinding
import com.sopetit.softie.ui.dailyroutine.DailyRoutineFragment
import com.sopetit.softie.ui.happyroutine.HappyMyRoutineFragment
import com.sopetit.softie.ui.happyroutine.HappyMyRoutineViewModel
import com.sopetit.softie.ui.main.home.HomeFragment
import com.sopetit.softie.util.binding.BindingActivity
import com.sopetit.softie.util.setStatusBarColorFromResource
import com.sopetit.softie.util.snackBar
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class MainActivity : BindingActivity<ActivityMainBinding>(R.layout.activity_main) {
private val viewModel by viewModels<HappyMyRoutineViewModel>()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand All @@ -27,14 +23,6 @@ class MainActivity : BindingActivity<ActivityMainBinding>(R.layout.activity_main
initFragment()
initBottomNavigation()
setBottomNavigationClickListener()
changeToHappyProgressFragment()
}

private fun changeToHappyProgressFragment() {
val fragmentToLoad = intent.getStringExtra("happy_progress_fragment")
if (fragmentToLoad == "happy_progress") {
loadHappyProgressFragment()
}
}

private fun setBottomNavigationClickListener() {
Expand Down Expand Up @@ -83,16 +71,4 @@ class MainActivity : BindingActivity<ActivityMainBinding>(R.layout.activity_main
intArrayOf(selectedTextColor, unselectedTextColor)
)
}

private fun loadHappyProgressFragment() {
val fragmentTransaction = supportFragmentManager.beginTransaction()
snackBar(
binding.btnMainAnchor,
getString(R.string.happy_routine_add_snack_bar)
)
setStatusBarColorFromResource(R.color.background)
binding.bnvMain.selectedItemId = R.id.bottom_navigation_happiness_routine
fragmentTransaction.replace(R.id.fcv_main, HappyMyRoutineFragment())
fragmentTransaction.commit()
}
}
4 changes: 3 additions & 1 deletion app/src/main/res/layout/item_happy_add_detail_card.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
android:id="@+id/cl_happy_routine_add_card"
android:layout_width="280dp"
android:layout_height="398dp"
android:background="@drawable/shape_white_fill_gray100_stroke_20_rect"
android:visibility="visible"
android:background="@drawable/shape_white_fill_gray100_stroke_20_rect"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
Expand Down Expand Up @@ -119,6 +119,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="52dp"
android:layout_marginBottom="7dp"
android:src="@drawable/ic_time"
app:layout_constraintBottom_toTopOf="@id/iv_happy_routine_add_card_detail_place_back"
Expand All @@ -131,6 +132,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:textAppearance="@style/body2"
android:textColor="@color/gray400"
app:layout_constraintBottom_toBottomOf="@id/iv_happy_routine_add_card_detail_time_back"
app:layout_constraintStart_toEndOf="@id/iv_happy_routine_add_card_detail_time_back"
Expand Down

0 comments on commit 93b5ccb

Please sign in to comment.