Skip to content

Commit

Permalink
Merge pull request #59 from Team-Sopetit/feature/#52-fix-happy-empty-…
Browse files Browse the repository at this point in the history
…view

#52 [fix] 행복루틴 엠티뷰 서버 연결
  • Loading branch information
pump9918 authored Jan 17, 2024
2 parents 152802a + a19b291 commit 5ebb953
Show file tree
Hide file tree
Showing 9 changed files with 159 additions and 15 deletions.
6 changes: 0 additions & 6 deletions app/src/main/java/com/sopetit/softie/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@ abstract class RepositoryModule {
memberRepositoryImpl: MemberRepositoryImpl
): MemberRepository

/*@Binds
@Singleton
abstract fun bindToHappyCardRepository(
happinessRoutineRepositoryImpl: HappinessRoutineRepositoryImpl
): HappinessRoutineRepository*/

@Binds
@Singleton
abstract fun bindToDailyRoutineRepository(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,49 @@
package com.sopetit.softie.ui.happyroutine

import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import android.view.View
import androidx.fragment.app.viewModels
import coil.load
import com.sopetit.softie.R
import com.sopetit.softie.databinding.FragmentHappyRoutineBinding
import com.sopetit.softie.ui.happyroutine.list.HappyAddListActivity
import com.sopetit.softie.util.binding.BindingFragment
import com.sopetit.softie.util.setStatusBarColor
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class HappyRoutineFragment :
BindingFragment<FragmentHappyRoutineBinding>(R.layout.fragment_happy_routine) {

private val viewModel by viewModels<HappyRoutineViewModel>()
lateinit var sharedPreferences: SharedPreferences

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

setClickEmptyCardListener()
sharedPreferences =
this.requireActivity().getSharedPreferences("user", Context.MODE_PRIVATE)
val bearType = sharedPreferences.getString("bearType", "BROWN")

initSetBearFace(bearType)
setCardEnter()
}

private fun initSetBearFace(dollType: String?) {
if (dollType != null) {
viewModel.setDollFace(dollType)
viewModel.bearFace.observe(viewLifecycleOwner) { bearFace ->
binding.ivHappyRoutineCharacter.load(bearFace)
}
}
}

private fun setClickEmptyCardListener() {
binding.clHappyRoutineEmptyCard.setOnClickListener {
val intentToHappyAddList = Intent(activity, HappyAddListActivity::class.java)
startActivity(intentToHappyAddList)
private fun setCardEnter() {
binding.ivHappyRoutineEmptyCard.setOnClickListener {
val intent = Intent(requireContext(), HappyAddListActivity::class.java)
startActivity(intent)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.sopetit.softie.ui.happyroutine

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.sopetit.softie.domain.usecase.doll.GetDollUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import timber.log.Timber
import javax.inject.Inject

@HiltViewModel
class HappyRoutineViewModel @Inject constructor(
private val getDollUseCase: GetDollUseCase
) : ViewModel() {
private val _bearFace: MutableLiveData<String> = MutableLiveData()
val bearFace: LiveData<String>
get() = _bearFace

fun setDollFace(type: String) {
viewModelScope.launch {
when (type) {
"BROWN" -> getDollUseCase.invoke(type)
"GRAY" -> getDollUseCase.invoke(type)
"PANDA" -> getDollUseCase.invoke(type)
"RED" -> getDollUseCase.invoke(type)
else -> getDollUseCase.invoke("BROWN")
}.onSuccess { response ->
_bearFace.value = response
Timber.d("곰돌이 서버 통신 성공 -> $response")
}.onFailure {
Timber.e("곰돌이 서버 통신 실패 -> ${it.message}")
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.sopetit.softie.ui.main.home

import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import android.view.View
import androidx.fragment.app.viewModels
Expand All @@ -25,6 +27,7 @@ class HomeFragment : BindingFragment<FragmentHomeBinding>(R.layout.fragment_home
private val pandaBearLottieList =
listOf(R.raw.panda_hello, R.raw.panda_eating_daily, R.raw.panda_eating_happy)
private lateinit var userLottieList: List<Int>
private lateinit var sharedPreferences: SharedPreferences

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
Expand All @@ -35,6 +38,10 @@ class HomeFragment : BindingFragment<FragmentHomeBinding>(R.layout.fragment_home
initLottie()
setClickListener()
setObserveHomeResponse()
sharedPreferences =
this.requireActivity().getSharedPreferences("user", Context.MODE_PRIVATE)
sharedPreferences.edit()
.putString("bearType", viewModel.homeResponse.value?.dollType ?: "BROWN").commit()
}

private fun setUserLottieList() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.sopetit.softie.domain.entity.Cotton
import com.sopetit.softie.domain.entity.Home
import com.sopetit.softie.domain.usecase.GetHomeUseCase
import com.sopetit.softie.domain.usecase.PatchCottonUseCase
import com.sopetit.softie.domain.usecase.doll.GetDollUseCase
import com.sopetit.softie.ui.main.home.HomeFragment.Companion.RUN_OUT
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
Expand All @@ -17,7 +18,8 @@ import javax.inject.Inject
@HiltViewModel
class HomeViewModel @Inject constructor(
private val getHomeUseCase: GetHomeUseCase,
private val patchCottonUseCase: PatchCottonUseCase
private val patchCottonUseCase: PatchCottonUseCase,
private val getDollUseCase: GetDollUseCase
) : ViewModel() {
private val _homeResponse = MutableLiveData<Home>()
val homeResponse: LiveData<Home> get() = _homeResponse
Expand Down
Loading

0 comments on commit 5ebb953

Please sign in to comment.