Skip to content

Commit 54e0417

Browse files
authored
Merge pull request #1199 from BCSDLab/refactor/#1043-refactor-lostandfound
[Koin Project][Refactor] 분실물 화면 리팩토링
2 parents 4363293 + 3a52ca8 commit 54e0417

37 files changed

+571
-705
lines changed

feature/article/src/main/java/in/koreatech/koin/feature/article/enums/ArticleBoardType.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package `in`.koreatech.koin.feature.article.enums
22

3-
/*
4-
Included from main koin module because we can't access ArticleBoardType from lostandfound module
5-
*/
6-
73
import androidx.annotation.StringRes
84
import `in`.koreatech.koin.feature.article.R
95

feature/article/src/main/java/in/koreatech/koin/feature/article/ui/article/state/ArticlePaginationState.kt renamed to feature/article/src/main/java/in/koreatech/koin/feature/article/model/ArticlePaginationState.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
package `in`.koreatech.koin.feature.article.ui.article.state
1+
package `in`.koreatech.koin.feature.article.model
22

33
import `in`.koreatech.koin.domain.model.article.ArticlePagination
4-
import `in`.koreatech.koin.feature.article.model.ArticleHeaderState
5-
import `in`.koreatech.koin.feature.article.model.toArticleHeaderState
64

75
data class ArticlePaginationState(
86
val articles: List<ArticleHeaderState>,

feature/article/src/main/java/in/koreatech/koin/feature/article/ui/article/state/ArticleState.kt renamed to feature/article/src/main/java/in/koreatech/koin/feature/article/model/ArticleState.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
package `in`.koreatech.koin.feature.article.ui.article.state
1+
package `in`.koreatech.koin.feature.article.model
22

33
import `in`.koreatech.koin.domain.model.article.Article
4-
import `in`.koreatech.koin.feature.article.model.ArticleHeaderState
5-
import `in`.koreatech.koin.feature.article.model.toArticleHeaderState
64

75
data class ArticleState(
86
val header: ArticleHeaderState,

feature/article/src/main/java/in/koreatech/koin/feature/article/ui/article/state/AttachmentState.kt renamed to feature/article/src/main/java/in/koreatech/koin/feature/article/model/AttachmentState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package `in`.koreatech.koin.feature.article.ui.article.state
1+
package `in`.koreatech.koin.feature.article.model
22

33
import `in`.koreatech.koin.core.util.RegexPatterns
44
import `in`.koreatech.koin.domain.model.article.Attachment

feature/article/src/main/java/in/koreatech/koin/feature/article/ui/article/state/HtmlElement.kt renamed to feature/article/src/main/java/in/koreatech/koin/feature/article/model/HtmlElement.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package `in`.koreatech.koin.feature.article.ui.article.state
1+
package `in`.koreatech.koin.feature.article.model
22

33
import android.os.Parcelable
44
import `in`.koreatech.koin.domain.model.article.html.CssAttribute

feature/article/src/main/java/in/koreatech/koin/feature/article/ui/lostandfound/list/LostAndFoundItemState.kt renamed to feature/article/src/main/java/in/koreatech/koin/feature/article/model/LostAndFoundItemState.kt

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
package `in`.koreatech.koin.feature.article.ui.lostandfound.list
1+
package `in`.koreatech.koin.feature.article.model
22

33
import android.os.Parcelable
4-
import `in`.koreatech.koin.domain.model.article.ArticleHeader
54
import `in`.koreatech.koin.domain.model.article.ArticleLostAndFoundHeader
65
import `in`.koreatech.koin.feature.article.enums.LostItemCategory
76
import `in`.koreatech.koin.feature.article.enums.LostOrFoundType
87
import java.time.LocalDate
9-
import java.time.format.DateTimeFormatter
108
import kotlinx.parcelize.Parcelize
119

1210
@Parcelize
@@ -38,22 +36,3 @@ fun ArticleLostAndFoundHeader.toLostAndFoundItemState() =
3836
registeredAt = LocalDate.parse(registeredAt),
3937
updatedAt = updatedAt
4038
)
41-
42-
fun ArticleHeader.toLostAndFoundItemState(): LostAndFoundItemState {
43-
val title = title.split("|") // Backend saves title as "category|foundPlace|foundDate"
44-
val titleDateFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yy.MM.dd")
45-
46-
return LostAndFoundItemState(
47-
id = id,
48-
boardId = boardId,
49-
lostOrFound = LostOrFoundType.FOUND, // Hardcode value to FOUND for now
50-
category = LostItemCategory.safeValueOf(title[0]),
51-
foundPlace = title[1].trim(),
52-
foundDate = LocalDate.parse(title[2].trim(), titleDateFormatter),
53-
content = "",
54-
author = author,
55-
isReported = false, // Set default value to false because search api doesn't have this field
56-
registeredAt = LocalDate.parse(registeredAt),
57-
updatedAt = updatedAt
58-
)
59-
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package `in`.koreatech.koin.feature.article.model
2+
3+
import androidx.compose.runtime.Immutable
4+
import `in`.koreatech.koin.domain.model.article.ArticleLostAndFoundPagination
5+
6+
@Immutable
7+
data class LostAndFoundPaginationState(
8+
val articleLostAndFoundHeader: List<LostAndFoundItemState>,
9+
val totalCount: Int,
10+
val currentCount: Int,
11+
val totalPage: Int,
12+
val currentPage: Int
13+
)
14+
15+
fun ArticleLostAndFoundPagination.toLostAndFoundPaginationState() = LostAndFoundPaginationState(
16+
articleLostAndFoundHeader = articleLostAndFoundHeader.map { it.toLostAndFoundItemState() },
17+
totalCount = totalCount,
18+
currentCount = currentCount,
19+
totalPage = totalPage,
20+
currentPage = currentPage
21+
)

feature/article/src/main/java/in/koreatech/koin/feature/article/ui/article/adapter/AttachmentAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import androidx.recyclerview.widget.DiffUtil
66
import androidx.recyclerview.widget.ListAdapter
77
import androidx.recyclerview.widget.RecyclerView
88
import `in`.koreatech.koin.feature.article.databinding.ItemAttachmentBinding
9-
import `in`.koreatech.koin.feature.article.ui.article.state.AttachmentState
9+
import `in`.koreatech.koin.feature.article.model.AttachmentState
1010

1111
class AttachmentAdapter(
1212
private val onClick: (AttachmentState) -> Unit,

feature/article/src/main/java/in/koreatech/koin/feature/article/ui/article/detail/ArticleDetailFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ import `in`.koreatech.koin.feature.article.R
3535
import `in`.koreatech.koin.feature.article.databinding.FragmentArticleDetailBinding
3636
import `in`.koreatech.koin.feature.article.enums.LinkType
3737
import `in`.koreatech.koin.feature.article.model.ArticleHeaderState
38+
import `in`.koreatech.koin.feature.article.model.ArticleState
39+
import `in`.koreatech.koin.feature.article.model.AttachmentState
3840
import `in`.koreatech.koin.feature.article.ui.article.adapter.AttachmentAdapter
3941
import `in`.koreatech.koin.feature.article.ui.article.adapter.HotArticleAdapter
40-
import `in`.koreatech.koin.feature.article.ui.article.state.ArticleState
41-
import `in`.koreatech.koin.feature.article.ui.article.state.AttachmentState
4242
import javax.inject.Inject
4343
import kotlinx.coroutines.flow.collectLatest
4444
import kotlinx.coroutines.launch

feature/article/src/main/java/in/koreatech/koin/feature/article/ui/article/detail/ArticleDetailViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import `in`.koreatech.koin.core.viewmodel.BaseViewModel
1010
import `in`.koreatech.koin.domain.repository.ArticleRepository
1111
import `in`.koreatech.koin.feature.article.enums.ArticleBoardType
1212
import `in`.koreatech.koin.feature.article.model.ArticleHeaderState
13+
import `in`.koreatech.koin.feature.article.model.ArticleState
1314
import `in`.koreatech.koin.feature.article.model.toArticleHeaderState
14-
import `in`.koreatech.koin.feature.article.ui.article.state.ArticleState
15-
import `in`.koreatech.koin.feature.article.ui.article.state.toArticleState
15+
import `in`.koreatech.koin.feature.article.model.toArticleState
1616
import kotlinx.coroutines.flow.SharingStarted
1717
import kotlinx.coroutines.flow.StateFlow
1818
import kotlinx.coroutines.flow.map

0 commit comments

Comments
 (0)