From 811f6f74482188177cee432ccede90a6f2267378 Mon Sep 17 00:00:00 2001 From: Son Myeongji Date: Wed, 27 Mar 2024 16:15:48 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat=20:=20=ED=95=99=EA=B3=BC=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=95=99=EA=B3=BC?= =?UTF-8?q?=EA=B3=B5=EC=A7=80=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/repository/NoticeRepository.kt | 10 +++++-- .../ui/view/notice/NoticeViewModel.kt | 27 ++++++++++++++----- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/NoticeRepository.kt b/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/NoticeRepository.kt index e6c2481a..d651e0c7 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/NoticeRepository.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/NoticeRepository.kt @@ -1,5 +1,6 @@ package com.dongyang.android.youdongknowme.data.repository +import com.dongyang.android.youdongknowme.data.local.SharedPreference import com.dongyang.android.youdongknowme.data.remote.entity.Notice import com.dongyang.android.youdongknowme.data.remote.service.NoticeService import com.dongyang.android.youdongknowme.standard.network.ErrorResponseHandler @@ -9,6 +10,11 @@ import com.dongyang.android.youdongknowme.standard.network.RetrofitObject class NoticeRepository( private val errorResponseHandler: ErrorResponseHandler ) { + + fun getUserDepartment(): String { + return SharedPreference.getDepartment() + } + suspend fun fetchUniversityNotices(page: Int): NetworkResult> { return try { val universityNotices = RetrofitObject.getNetwork().create(NoticeService::class.java) @@ -23,8 +29,8 @@ class NoticeRepository( suspend fun fetchDepartmentNotices( department: String, - page: Int) - : NetworkResult> { + page: Int + ): NetworkResult> { return try { val departmentNotices = RetrofitObject.getNetwork().create(NoticeService::class.java) .getDepartmentNotice(department, page, DEFAULT_SIZE) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt index 8684e826..79257123 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt @@ -9,6 +9,7 @@ import com.dongyang.android.youdongknowme.standard.base.BaseViewModel import com.dongyang.android.youdongknowme.standard.network.NetworkResult import com.dongyang.android.youdongknowme.ui.view.util.Event import kotlinx.coroutines.launch +import timber.log.Timber class NoticeViewModel( private val noticeRepository: NoticeRepository @@ -26,6 +27,9 @@ class NoticeViewModel( private val _selectedTab: MutableLiveData> = MutableLiveData() val selectedTab: LiveData> = _selectedTab + private val _myDepartment: MutableLiveData = MutableLiveData() + val myDepartment: LiveData = _myDepartment + private val _universityNotices: MutableLiveData?> = MutableLiveData() val universityNotices: LiveData?> = _universityNotices @@ -38,6 +42,12 @@ class NoticeViewModel( init { updateSelectedTabType(NoticeTabType.SCHOOL) fetchUniversityNotices() + getUserDepartment() + } + + private fun getUserDepartment() { + val myDepartment = noticeRepository.getUserDepartment() + _myDepartment.postValue(myDepartment) } fun updateSelectedTabType(tabType: NoticeTabType) { @@ -77,9 +87,12 @@ class NoticeViewModel( _isLoading.postValue(true) viewModelScope.launch { - when (val result = noticeRepository.fetchDepartmentNotices( - "컴퓨터소프트웨어공학과", departmentNoticeCurrentPage - )) { + Timber.d(myDepartment.value.toString()) + when (val result = + noticeRepository.fetchDepartmentNotices( + myDepartment.value.toString(), + departmentNoticeCurrentPage + )) { is NetworkResult.Success -> { val updatedNotices = _departmentNotices.value.orEmpty() + result.data _departmentNotices.postValue(updatedNotices) @@ -119,9 +132,11 @@ class NoticeViewModel( } NoticeTabType.FACULTY -> viewModelScope.launch { - when (val result = noticeRepository.fetchDepartmentNotices( - "컴퓨터소프트웨어공학과", DEFAULT_REFRESH_PAGE - )) { + when (val result = + noticeRepository.fetchDepartmentNotices( + myDepartment.value.toString(), + DEFAULT_REFRESH_PAGE + )) { is NetworkResult.Success -> { _departmentNotices.value = result.data _isError.postValue(false) From c7cce44b294d8c0007cc8f6c8e41c4c06da9777f Mon Sep 17 00:00:00 2001 From: Son Myeongji Date: Wed, 27 Mar 2024 16:22:18 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat=20:=20=EA=B2=80=EC=83=89=20=EC=8B=9C?= =?UTF-8?q?=20=EC=82=AC=EC=9A=A9=EC=9E=90=EC=9D=98=20=ED=95=99=EA=B3=BC=20?= =?UTF-8?q?=EB=B0=98=EC=98=81=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/repository/NoticeRepository.kt | 3 ++- .../ui/view/notice/NoticeViewModel.kt | 2 +- .../ui/view/search/SearchViewModel.kt | 17 +++++++++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/NoticeRepository.kt b/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/NoticeRepository.kt index d651e0c7..a377cb2b 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/NoticeRepository.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/data/repository/NoticeRepository.kt @@ -43,11 +43,12 @@ class NoticeRepository( suspend fun fetchSearchNotices( searchWord: String, + department: String, page: Int ): NetworkResult> { return try { val searchNotices = RetrofitObject.getNetwork().create(NoticeService::class.java) - .getSearchNotice(searchWord, "컴퓨터소프트웨어공학과", page, DEFAULT_SIZE) + .getSearchNotice(searchWord, department, page, DEFAULT_SIZE) NetworkResult.Success(searchNotices) } catch (exception: Exception) { val error = errorResponseHandler.getError(exception) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt index 79257123..dc089d19 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt @@ -28,7 +28,7 @@ class NoticeViewModel( val selectedTab: LiveData> = _selectedTab private val _myDepartment: MutableLiveData = MutableLiveData() - val myDepartment: LiveData = _myDepartment + private val myDepartment: LiveData = _myDepartment private val _universityNotices: MutableLiveData?> = MutableLiveData() val universityNotices: LiveData?> = _universityNotices diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/search/SearchViewModel.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/search/SearchViewModel.kt index b1fb5e87..219ba829 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/search/SearchViewModel.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/search/SearchViewModel.kt @@ -24,16 +24,28 @@ class SearchViewModel( val isError: LiveData = _isError private val _searchContent: MutableLiveData = MutableLiveData() - val searchContent: LiveData = _searchContent + private val searchContent: LiveData = _searchContent private val _searchClearVisibility: MutableLiveData = MutableLiveData() val searchClearVisibility: LiveData get() = _searchClearVisibility + private val _myDepartment: MutableLiveData = MutableLiveData() + val myDepartment: LiveData = _myDepartment + private val _searchNotices: MutableLiveData> = MutableLiveData() val searchNotices: LiveData> = _searchNotices private var searchNoticeCurrentPage = 1 + init { + getUserDepartment() + } + + private fun getUserDepartment() { + val myDepartment = noticeRepository.getUserDepartment() + _myDepartment.postValue(myDepartment) + } + fun updateSearchContent(newContent: String) { _searchContent.value = newContent _searchNotices.postValue(emptyList()) @@ -54,7 +66,8 @@ class SearchViewModel( viewModelScope.launch { when (val result = noticeRepository.fetchSearchNotices( - _searchContent.value.toString(), + searchContent.value.toString(), + myDepartment.value.toString(), searchNoticeCurrentPage )) { is NetworkResult.Success -> { From 2f059fbe21ab178d737ea86eaca28e551ab2e9c4 Mon Sep 17 00:00:00 2001 From: Son Myeongji Date: Thu, 28 Mar 2024 13:42:42 +0900 Subject: [PATCH 3/3] =?UTF-8?q?style=20:=20=EB=A1=9C=EA=B7=B8=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/youdongknowme/ui/view/notice/NoticeViewModel.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt index dc089d19..8def8f83 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/notice/NoticeViewModel.kt @@ -9,7 +9,6 @@ import com.dongyang.android.youdongknowme.standard.base.BaseViewModel import com.dongyang.android.youdongknowme.standard.network.NetworkResult import com.dongyang.android.youdongknowme.ui.view.util.Event import kotlinx.coroutines.launch -import timber.log.Timber class NoticeViewModel( private val noticeRepository: NoticeRepository @@ -87,7 +86,6 @@ class NoticeViewModel( _isLoading.postValue(true) viewModelScope.launch { - Timber.d(myDepartment.value.toString()) when (val result = noticeRepository.fetchDepartmentNotices( myDepartment.value.toString(),