Skip to content

Commit

Permalink
๐Ÿ“ ๊ธฐํš, ๋””์ž์ธ ์ˆ˜์ • ์‚ฌํ•ญ ๋ฐ˜์˜ (#14)
Browse files Browse the repository at this point in the history
* ๐Ÿ”จ๊ณต์ง€ ์•„์ดํ…œ ์ฆ๊ฒจ์ฐพ๊ธฐ ์œ„์น˜ ์ˆ˜์ •

* ๐Ÿ”จ๋‚˜์˜ ๊ณต์ง€ ๋ฒ„ํŠผ ์‚ญ์ œ

* ๐Ÿ”จ์ฆ๊ฒจ์ฐพ๊ธฐ ํ† ์ŠคํŠธ ๋ฉ”์‹œ์ง€ ๋ผ์ดํŒ… ์ˆ˜์ •

* ๐Ÿ”จ์ฆ๊ฒจ์ฐพ๊ธฐ ํ† ์ŠคํŠธ ๋ฉ”์‹œ์ง€ ๋ผ์ดํŒ… ์ˆ˜์ •

* ๐Ÿ”จ๋กœ๊ณ  ํด๋ฆญ ์‹œ ํ™ˆ ํ™”๋ฉด ์ด๋™ ๊ตฌํ˜„
  • Loading branch information
GyeongminKimGyeongminKim authored Sep 4, 2024
1 parent 846c1dc commit 7b7bbd7
Show file tree
Hide file tree
Showing 17 changed files with 130 additions and 91 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.neverland.thinkerbell.databinding.FragmentAlarmBinding
import com.neverland.thinkerbell.utils.UiState
import com.neverland.thinkerbell.view.HomeActivity
import com.neverland.thinkerbell.view.alarm.adapter.AlarmVPAdapter
import com.neverland.thinkerbell.view.home.HomeFragment
import com.neverland.thinkerbell.view.myPage.KeywordManageFragment
import dagger.hilt.android.AndroidEntryPoint

Expand Down Expand Up @@ -98,6 +99,11 @@ class AlarmFragment : BaseFragment<FragmentAlarmBinding>() {

override fun initListener() {
super.initListener()

binding.ivHomeLogo.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(R.id.fl_home, HomeFragment(), false)
}

binding.btnEmpty.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(
R.id.fl_home,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.neverland.thinkerbell.databinding.FragmentContactsBinding
import com.neverland.thinkerbell.utils.UiState
import com.neverland.thinkerbell.view.HomeActivity
import com.neverland.thinkerbell.view.OnRvItemClickListener
import com.neverland.thinkerbell.view.home.HomeFragment
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
Expand Down Expand Up @@ -61,4 +62,11 @@ class ContactsFragment : BaseFragment<FragmentContactsBinding>() {
)
binding.rvContacts.adapter = expandableAdapter
}

override fun initListener() {
super.initListener()
binding.ivHomeLogo.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(R.id.fl_home, HomeFragment(), false)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.neverland.thinkerbell.databinding.FragmentDeptUrlBinding
import com.neverland.thinkerbell.utils.UiState
import com.neverland.thinkerbell.view.HomeActivity
import com.neverland.thinkerbell.view.OnRvItemClickListener
import com.neverland.thinkerbell.view.home.HomeFragment
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
Expand Down Expand Up @@ -65,4 +66,11 @@ class DeptUrlFragment : BaseFragment<FragmentDeptUrlBinding>() {
)
binding.rvDeptUrl.adapter = expandableAdapter
}

override fun initListener() {
super.initListener()
binding.ivHomeLogo.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(R.id.fl_home, HomeFragment(), false)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,12 @@ class HomeCalendarViewModel @Inject constructor(
noticeId = noticeId
)
.onFailure {
LoggerUtil.e("[${category.koName}] ๋ถ๋งˆํฌ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‹คํŒจ")
LoggerUtil.e("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ์‹คํŒจ")
}
.onSuccess {
LoggerUtil.d("[${category.koName}] ๋ถ๋งˆํฌ ์„ฑ๊ณต")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์„ฑ๊ณต")
LoggerUtil.d("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์„ฑ๊ณต")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
}

}
Expand All @@ -75,12 +75,12 @@ class HomeCalendarViewModel @Inject constructor(
noticeId = noticeId
)
.onFailure {
LoggerUtil.e("[${category.koName}] ๋ถ๋งˆํฌ ์‚ญ์ œ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‚ญ์ œ ์‹คํŒจ")
LoggerUtil.e("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์‹คํŒจ")
}
.onSuccess {
LoggerUtil.d("[${category.koName}] ๋ถ๋งˆํฌ ์‚ญ์ œ ์„ฑ๊ณต")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‚ญ์ œ ์„ฑ๊ณต")
LoggerUtil.d("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์„ฑ๊ณต")
_toastState.value = UiState.Success("์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ import androidx.fragment.app.viewModels
import com.google.android.material.tabs.TabLayoutMediator
import com.neverland.domain.enums.NoticeType
import com.neverland.domain.model.notice.NoticeItem
import com.neverland.thinkerbell.R
import com.neverland.thinkerbell.base.BaseFragment
import com.neverland.thinkerbell.databinding.FragmentFavoriteBinding
import com.neverland.thinkerbell.utils.UiState
import com.neverland.thinkerbell.view.HomeActivity
import com.neverland.thinkerbell.view.home.HomeFragment
import com.neverland.thinkerbell.view.myPage.adapter.FavoriteVPAdapter
import dagger.hilt.android.AndroidEntryPoint

Expand Down Expand Up @@ -53,4 +56,10 @@ class FavoriteFragment : BaseFragment<FragmentFavoriteBinding>() {
}.attach()
}

override fun initListener() {
super.initListener()
binding.ivHomeLogo.setOnClickListener {
(requireActivity() as HomeActivity).binding.bottomNavigation.selectedItemId = R.id.navigation_home
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.os.Bundle
import android.view.View
import androidx.fragment.app.viewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.neverland.core.utils.LoggerUtil
import com.neverland.domain.enums.NoticeType
import com.neverland.domain.model.notice.NoticeItem
import com.neverland.thinkerbell.base.BaseFragment
Expand Down Expand Up @@ -35,9 +36,9 @@ class FavoriteNoticeFragment(
setBookmarkClickListener(object : OnRvItemClickListener<Pair<Int, Boolean>> {
override fun onClick(item: Pair<Int, Boolean>) {
if (item.second) {
favoriteNoticeViewModel.postBookmark(item.first, noticeType)
favoriteNoticeViewModel.postBookmark(noticeType, item.first)
} else {
favoriteNoticeViewModel.deleteBookmark(item.first, noticeType)
favoriteNoticeViewModel.deleteBookmark(noticeType, item.first)
}
}
})
Expand All @@ -48,16 +49,17 @@ class FavoriteNoticeFragment(

override fun setObserver() {
super.setObserver()
favoriteNoticeViewModel.bookmarkState.observe(viewLifecycleOwner) {
favoriteNoticeViewModel.toastState.observe(viewLifecycleOwner) {
when(it) {
is UiState.Loading -> {

}
is UiState.Error -> {
showToast("๋ถ๋งˆํฌ ์ˆ˜์ • ์‹คํŒจ")

}
is UiState.Success -> {
showToast("๋ถ๋งˆํฌ ์ˆ˜์ • ์„ฑ๊ณต")
LoggerUtil.i(it.data)
showToast(it.data)
}
is UiState.Empty -> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.neverland.core.utils.LoggerUtil
import com.neverland.domain.enums.NoticeType
import com.neverland.domain.usecase.bookmark.DeleteBookmarkUseCase
import com.neverland.domain.usecase.bookmark.PostBookmarkUseCase
Expand All @@ -15,46 +16,50 @@ import javax.inject.Inject

@HiltViewModel
class FavoriteNoticeViewModel @Inject constructor(
private val postBookmarkNoticeUseCase: PostBookmarkUseCase,
private val deleteBookmarkNoticeUseCase: DeleteBookmarkUseCase
private val postBookmarkUseCase: PostBookmarkUseCase,
private val deleteBookmarkUseCase: DeleteBookmarkUseCase,
) : ViewModel() {


private val _bookmarkState = MutableLiveData<UiState<Unit>>(UiState.Loading)
val bookmarkState: LiveData<UiState<Unit>> get() = _bookmarkState

fun postBookmark(noticeId: Int, noticeType: NoticeType) {
_bookmarkState.value = UiState.Loading
private val _toastState = MutableLiveData<UiState<String>>(UiState.Loading)
val toastState: LiveData<UiState<String>> get() = _toastState

fun postBookmark(category: NoticeType, noticeId: Int){
viewModelScope.launch {
postBookmarkNoticeUseCase.invoke(
noticeId = noticeId,
category = noticeType,
ssaId = application.getAndroidId()
postBookmarkUseCase.invoke(
ssaId = application.getAndroidId(),
category = category,
noticeId = noticeId
)
.onSuccess {
_bookmarkState.value = UiState.Success(Unit)
.onFailure {
LoggerUtil.e("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ์‹คํŒจ")
}
.onFailure { exception ->
_bookmarkState.value = UiState.Error(exception)
.onSuccess {
LoggerUtil.d("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์„ฑ๊ณต")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
}

}
}

fun deleteBookmark(noticeId: Int, noticeType: NoticeType) {
_bookmarkState.value = UiState.Loading

fun deleteBookmark(category: NoticeType, noticeId: Int){
viewModelScope.launch {
deleteBookmarkNoticeUseCase.invoke(
noticeId = noticeId,
category = noticeType,
ssaId = application.getAndroidId()
deleteBookmarkUseCase.invoke(
ssaId = application.getAndroidId(),
category = category,
noticeId = noticeId
)
.onSuccess {
_bookmarkState.value = UiState.Success(Unit)
.onFailure {
LoggerUtil.e("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์‹คํŒจ")
}
.onFailure { exception ->
_bookmarkState.value = UiState.Error(exception)
.onSuccess {
LoggerUtil.d("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์„ฑ๊ณต")
_toastState.value = UiState.Success("์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import com.neverland.thinkerbell.databinding.FragmentKeywordManageBinding
import com.neverland.thinkerbell.utils.UiState
import com.neverland.thinkerbell.view.HomeActivity
import com.neverland.thinkerbell.view.OnRvItemClickListener
import com.neverland.thinkerbell.view.home.HomeFragment
import com.neverland.thinkerbell.view.myPage.adapter.KeywordManagementAdapter
import dagger.hilt.android.AndroidEntryPoint

Expand Down Expand Up @@ -53,6 +54,10 @@ class KeywordManageFragment :

override fun initListener() {
super.initListener()
binding.ivHomeLogo.setOnClickListener {
(requireActivity() as HomeActivity).binding.bottomNavigation.selectedItemId = R.id.navigation_home
}

binding.btnKeywordAdd.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(
R.id.fl_home,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.neverland.thinkerbell.databinding.FragmentMyPageBinding
import com.neverland.thinkerbell.utils.UiState
import com.neverland.thinkerbell.view.HomeActivity
import com.neverland.thinkerbell.view.OnRvItemClickListener
import com.neverland.thinkerbell.view.home.HomeFragment
import com.neverland.thinkerbell.view.myPage.adapter.MyPageFavoriteNoticeAdapter
import com.neverland.thinkerbell.view.myPage.adapter.MyPageKeywordAdapter
import dagger.hilt.android.AndroidEntryPoint
Expand Down Expand Up @@ -124,6 +125,9 @@ class MyPageFragment : BaseFragment<FragmentMyPageBinding>() {

override fun initListener() {
super.initListener()
binding.ivHomeLogo.setOnClickListener {
(requireActivity() as HomeActivity).binding.bottomNavigation.selectedItemId = R.id.navigation_home
}
binding.ibPageRightFavorite.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(
R.id.fl_home,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,10 +123,6 @@ class CommonNoticeFragment(
(requireActivity() as HomeActivity).binding.bottomNavigation.selectedItemId = R.id.navigation_home
}

binding.ibProfile.setOnClickListener {
(requireActivity() as HomeActivity).binding.bottomNavigation.selectedItemId = R.id.navigation_my_page
}

binding.btnBack.setOnClickListener {
showNoticePage()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,12 @@ class CommonNoticeViewModel @Inject constructor(
noticeId = noticeId
)
.onFailure {
LoggerUtil.e("[${category.koName}] ๋ถ๋งˆํฌ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‹คํŒจ")
LoggerUtil.e("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ์‹คํŒจ")
}
.onSuccess {
LoggerUtil.d("[${category.koName}] ๋ถ๋งˆํฌ ์„ฑ๊ณต")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์„ฑ๊ณต")
LoggerUtil.d("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์„ฑ๊ณต")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
}

}
Expand All @@ -135,12 +135,12 @@ class CommonNoticeViewModel @Inject constructor(
noticeId = noticeId
)
.onFailure {
LoggerUtil.e("[${category.koName}] ๋ถ๋งˆํฌ ์‚ญ์ œ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‚ญ์ œ ์‹คํŒจ")
LoggerUtil.e("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์‹คํŒจ")
}
.onSuccess {
LoggerUtil.d("[${category.koName}] ๋ถ๋งˆํฌ ์‚ญ์ œ ์„ฑ๊ณต")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‚ญ์ œ ์„ฑ๊ณต")
LoggerUtil.d("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์„ฑ๊ณต")
_toastState.value = UiState.Success("์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import com.neverland.thinkerbell.base.BaseFragment
import com.neverland.thinkerbell.databinding.FragmentSearchResultBinding
import com.neverland.thinkerbell.utils.UiState
import com.neverland.thinkerbell.view.HomeActivity
import com.neverland.thinkerbell.view.home.HomeFragment
import com.neverland.thinkerbell.view.search.adapter.SearchResultVPAdapter
import dagger.hilt.android.AndroidEntryPoint
import java.util.regex.Pattern
Expand Down Expand Up @@ -83,6 +84,10 @@ class SearchResultFragment(
override fun initListener() {
super.initListener()

binding.ivHomeLogo.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(R.id.fl_home, HomeFragment(), false)
}

binding.etSearch.setOnEditorActionListener { _, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH ||
(event != null && event.keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_DOWN)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ class SearchResultNoticeViewModel @Inject constructor(
noticeId = noticeId
)
.onFailure {
LoggerUtil.e("[${category.koName}] ๋ถ๋งˆํฌ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‹คํŒจ")
LoggerUtil.e("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ์‹คํŒจ")
}
.onSuccess {
LoggerUtil.d("[${category.koName}] ๋ถ๋งˆํฌ ์„ฑ๊ณต")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์„ฑ๊ณต")
LoggerUtil.d("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์„ฑ๊ณต")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
}

}
Expand All @@ -50,12 +50,12 @@ class SearchResultNoticeViewModel @Inject constructor(
noticeId = noticeId
)
.onFailure {
LoggerUtil.e("[${category.koName}] ๋ถ๋งˆํฌ ์‚ญ์ œ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‚ญ์ œ ์‹คํŒจ")
LoggerUtil.e("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์‹คํŒจ: ${it.message}")
_toastState.value = UiState.Success("์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์‹คํŒจ")
}
.onSuccess {
LoggerUtil.d("[${category.koName}] ๋ถ๋งˆํฌ ์‚ญ์ œ ์„ฑ๊ณต")
_toastState.value = UiState.Success("๋ถ๋งˆํฌ ์‚ญ์ œ ์„ฑ๊ณต")
LoggerUtil.d("[${category.koName}] ์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์„ฑ๊ณต")
_toastState.value = UiState.Success("์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
}
}
}
Expand Down
Loading

0 comments on commit 7b7bbd7

Please sign in to comment.