diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/alarm/AlarmFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/alarm/AlarmFragment.kt index 713a2b5..bf3f449 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/alarm/AlarmFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/alarm/AlarmFragment.kt @@ -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 @@ -98,6 +99,11 @@ class AlarmFragment : BaseFragment() { 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, diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/contact/ContactsFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/contact/ContactsFragment.kt index 8935d39..632a512 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/contact/ContactsFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/contact/ContactsFragment.kt @@ -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 @@ -61,4 +62,11 @@ class ContactsFragment : BaseFragment() { ) binding.rvContacts.adapter = expandableAdapter } + + override fun initListener() { + super.initListener() + binding.ivHomeLogo.setOnClickListener { + (requireActivity() as HomeActivity).replaceFragment(R.id.fl_home, HomeFragment(), false) + } + } } \ No newline at end of file diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/deptUrl/DeptUrlFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/deptUrl/DeptUrlFragment.kt index 8ed60b3..15fddb1 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/deptUrl/DeptUrlFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/deptUrl/DeptUrlFragment.kt @@ -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 @@ -65,4 +66,11 @@ class DeptUrlFragment : BaseFragment() { ) binding.rvDeptUrl.adapter = expandableAdapter } + + override fun initListener() { + super.initListener() + binding.ivHomeLogo.setOnClickListener { + (requireActivity() as HomeActivity).replaceFragment(R.id.fl_home, HomeFragment(), false) + } + } } \ No newline at end of file diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/home/HomeCalendarViewModel.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/home/HomeCalendarViewModel.kt index 680cf08..35c2b0d 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/home/HomeCalendarViewModel.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/home/HomeCalendarViewModel.kt @@ -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("즐겨찾기 되었습니다.") } } @@ -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("삭제되었습니다.") } } } diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteFragment.kt index 3003cff..c1f195c 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteFragment.kt @@ -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 @@ -53,4 +56,10 @@ class FavoriteFragment : BaseFragment() { }.attach() } + override fun initListener() { + super.initListener() + binding.ivHomeLogo.setOnClickListener { + (requireActivity() as HomeActivity).binding.bottomNavigation.selectedItemId = R.id.navigation_home + } + } } diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteNoticeFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteNoticeFragment.kt index 4bdd1ea..b820f8a 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteNoticeFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteNoticeFragment.kt @@ -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 @@ -35,9 +36,9 @@ class FavoriteNoticeFragment( setBookmarkClickListener(object : OnRvItemClickListener> { override fun onClick(item: Pair) { if (item.second) { - favoriteNoticeViewModel.postBookmark(item.first, noticeType) + favoriteNoticeViewModel.postBookmark(noticeType, item.first) } else { - favoriteNoticeViewModel.deleteBookmark(item.first, noticeType) + favoriteNoticeViewModel.deleteBookmark(noticeType, item.first) } } }) @@ -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 -> { diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteNoticeViewModel.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteNoticeViewModel.kt index 172f0d0..2efe2cf 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteNoticeViewModel.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/FavoriteNoticeViewModel.kt @@ -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 @@ -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.Loading) val bookmarkState: LiveData> get() = _bookmarkState - fun postBookmark(noticeId: Int, noticeType: NoticeType) { - _bookmarkState.value = UiState.Loading + private val _toastState = MutableLiveData>(UiState.Loading) + val toastState: LiveData> 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("삭제되었습니다.") } } } diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/KeywordManageFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/KeywordManageFragment.kt index 58e7a08..ee451dd 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/KeywordManageFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/KeywordManageFragment.kt @@ -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 @@ -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, diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/MyPageFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/MyPageFragment.kt index 6719d82..eae9bae 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/MyPageFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/myPage/MyPageFragment.kt @@ -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 @@ -124,6 +125,9 @@ class MyPageFragment : BaseFragment() { 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, diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/notice/CommonNoticeFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/notice/CommonNoticeFragment.kt index 849fbb4..c4233ef 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/notice/CommonNoticeFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/notice/CommonNoticeFragment.kt @@ -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() } diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/notice/CommonNoticeViewModel.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/notice/CommonNoticeViewModel.kt index b4363ed..0614f61 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/notice/CommonNoticeViewModel.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/notice/CommonNoticeViewModel.kt @@ -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("즐겨찾기 되었습니다.") } } @@ -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("삭제되었습니다.") } } } diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/search/SearchResultFragment.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/search/SearchResultFragment.kt index d2572ef..1918e3b 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/search/SearchResultFragment.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/search/SearchResultFragment.kt @@ -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 @@ -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) diff --git a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/search/SearchResultNoticeViewModel.kt b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/search/SearchResultNoticeViewModel.kt index e6d10ee..8096059 100644 --- a/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/search/SearchResultNoticeViewModel.kt +++ b/ThinkerBell/presentation/src/main/java/com/neverland/thinkerbell/view/search/SearchResultNoticeViewModel.kt @@ -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("즐겨찾기 되었습니다.") } } @@ -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("삭제되었습니다.") } } } diff --git a/ThinkerBell/presentation/src/main/res/layout/fragment_common_notice.xml b/ThinkerBell/presentation/src/main/res/layout/fragment_common_notice.xml index ec68787..f92eb5a 100644 --- a/ThinkerBell/presentation/src/main/res/layout/fragment_common_notice.xml +++ b/ThinkerBell/presentation/src/main/res/layout/fragment_common_notice.xml @@ -31,23 +31,12 @@ android:src="@drawable/logo_app" app:tint="@color/primary2" /> - - - - + +