Skip to content

Commit

Permalink
[FEATURE] #19 Home화면 UI 구현 및 API 연동 (#38)
Browse files Browse the repository at this point in the history
* [base] 모듈 생성

* [chore] 프로가드 파일 추가

* [ui] HomeHeader UI 구현

* [ui] PokitScreen subBar UI 구현

* [chore] 이름 수정

* [ui] PokitItem 구현

* [ui] PokitItem 구현

* [chore] PokitItem 삭제

- 하 개뻘짓함;;;

* [ui] PokitScreen UI 구현

* [chore] 프리뷰 이름 수정

* [ui] 미분류 UI 구현

* [ui] 바텀네비 구현

* [ui] 헤더 수정

* [ui] mid 수정

* [ui] Pokit 화면 구현

* [ui] HomeScreen 포킷 화면 연동

* [chore] height 수정

* [chore] 아이콘 사이즈 수정

* [chore] 미사용 리소스 제거

* [ui] 미분류 화면 구현

* [ui] 리마인드 화면 구현

* [Feature] #32 포킷 상세 및 포킷 추가/수정화면 API 연결 (#35)

* [FEATURE] #32 포킷 목록 조회 API 구현 (useCase, repository, datasource, api)

* [FIX] 포킷 상세 화면에서 포킷 수정과 링크 수정의 이벤트 호출부가 서로 바뀌어 있던 현상 수정

* [BASE] #32 RemotePokitDataSource, PokitRepositoryImpl 관련 테스트코드 작성

* [BASE] #32 pokitDetail 모듈에 domain의존성 추가 및 매핑 함수 구현

* [BASE] #32 포킷 상세 화면 포킷 목록 조회 useCase 연결 및 포킷 목록 페이지네이션 구현

* [FEATURE] #32 포킷 상세 화면 포킷 목록 조회 useCase 연결 및 포킷 목록 페이지네이션 구현

* [FEATURE] #32 포킷 수정/포킷 추가 API, repository, useCase 구현

* [UI] #32 포킷 상세 화면에서 링크 아이템의 날짜+도메인을 표시하는 텍스트의 최대 라인을 1로 변경 및 해당 케이스 preview 추가

* [FEATURE] #32 카테고리 내 링크 목록 조회 API, repository, useCase 구현

* [UI] #32 카테고리 상세 화면에서 필터의 정렬 기준값 2개가 모두 "최신순"으로 되어있던 부분 수정

* [FEATURE] #32 카테고리 상세 화면에서 링크 페이지네이션 적용 및 기존 카테고리 내 링크 목록 조회에서 필터 옵션 적용가능하도록 수정 + 테스트코드 추가

* [FIX] #32 포킷 목록 페이징에서 새로고침시 기존 데이터를 지우지 않던 문제 수정

* [FIX] #32 포킷 내 링크 목록 조회의 response 변경내역 적용 및 포킷 상세 화면에 진입할 때마다 새로고침되는 현상 수정

* [FEATURE] #32 포킷 상세조회, 포킷 이미지 목록 조회 API, Datasource, Repository, UseCase 구현

* [FEATURE] #32 포킷 상세 화면에 포킷 상세조회 UseCase연결

* [FEATURE] #32 포킷 추가/수정 화면에 API 연결 및 포킷 목록 리스트 페이지네이션 적용

* [FIX] #32 포킷 추가 모듈에 누락된 coil 라이브러리 의존성 추가

* [FEATURE] #32 포킷 추가 화면에 추가/수정 API 연결 및 포킷 도메인과 관련된 에러 코드 매핑 로직 구현

* [FEATURE] #32 포킷 삭제, 포킷 개수 조회 API, datasource, repository, useCase 구현

* [FEATURE] #32 포킷 상세 화면에 포킷 삭제 API 연결

* [FEATURE] #32 포킷 수정 후 포킷 상세 화면에서 포킷 명 변경 반영

* [CHORE] #32 ktlint 적용, 오타 수정

* [CHORE] #32 코드리뷰 반영

* [chore] HomeViewModel 추가

* [feature] 카테고리 타입 화면 렌더링 구현

* [feature] 리마인드 화면 연결

* [feature] 정렬순서 로직 반영

* [Feature]#36 링크 관련 API 구현 및 링크 추가/수정 화면, 검색 화면에 연결 (#37)

* [FEATURE] #36 링크 삭제, 링크 수정, 검색 링크 목록, 링크 상세 조회 API, Datasource, UseCase 구현

* [FEATURE] #36 검색화면 검색 API 연동

* [FEATURE] #36 검색화면 bottomSheet 내 포킷 목록 조회 API 연결

* [FEATURE] #36 검색화면의 link상세 bottomSheet 구현 및 기존 bottomSheet에 공유 제외 클릭 이벤트 연결

* [BASE] #36 data 모듈에 room, sharedPreferences 관련 세팅 및 데이터베이스 구성

* [FEATURE] #36 최근 검색어 관련 기능 구현

* [FEATURE] #36 즐겨찾기 등록/취소 API, datasource, useCase 구현

* [FEATURE] #36 검색 화면에 즐겨찾기 등록/취소 API 연결

* [FIX] #36 페이징 클래스에서 아이템 수정이 반영되지 않는 문제 수정

* [FEATURE] #36 링크 추가, open graph 링크 메타 정보 조회 api, datasource, repository, usecase 구현

* [FEATURE] #36 링크 추가 화면에 링크 추가, 링크 수정, 링크 메타 정보 조회 useCase 연결

* [FIX] #36 링크 추가 화면에서 링크 입력 도중 1초 이상 시간 소요시 키보드를 강제 종료시키는 문제 수정

* [CHORE] #36 ktlint 적용

* [FEATURE] #36 미분류 카테고리 컨텐츠 조회 API, datasource, api 구현

* [FIX] #36 rootNavHost에 링크 추가/삭제 화면 인자 변경 반영

* [ui] TodayLinkCard 구현

* [feature] 미사용 리소스 제거 및 포킷 조회 api 연동

* [chore] createdAt 추가

* [chore] createdAt 추가

* [feature] 최신순, 이름순 정렬 구현

* [chore] coil 추가

* [chore] private 키워드 추가

* [chore] private 키워드 수정

* [feature] 미분류 구현

* [chore] 미사용 리소스 제거

* [feature] 리마인드 api 연동

* [chore] 컴포저블 이름 수정

* [ui] 바텀시트 구현

* [feature] 1차 QA

* [chore] ktlint test

* [chore] 주석제거

* [chore] , 추가

---------

Co-authored-by: Sehwan Yun <39579912+l5x5l@users.noreply.github.com>
  • Loading branch information
jiwon2724 and l5x5l authored Aug 17, 2024
1 parent e58e42f commit a65cc3a
Show file tree
Hide file tree
Showing 53 changed files with 1,605 additions and 18 deletions.
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ dependencies {
implementation(project(":feature:pokitdetail"))
implementation(project(":feature:search"))
implementation(project(":feature:settings"))
implementation(project(":feature:home"))

// hilt
implementation(libs.hilt)
Expand Down
1 change: 0 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

<application
android:name=".PokitApplication"
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
Expand Down
17 changes: 16 additions & 1 deletion app/src/main/java/pokitmons/pokit/navigation/RootNavHost.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ import com.strayalpaca.addpokit.AddPokitViewModel
import com.strayalpaca.pokitdetail.PokitDetailScreenContainer
import com.strayalpaca.pokitdetail.PokitDetailViewModel
import pokitmons.pokit.LoginViewModel
import pokitmons.pokit.home.HomeScreen
import pokitmons.pokit.home.pokit.PokitViewModel
import pokitmons.pokit.login.LoginScreen
import pokitmons.pokit.navigation.PokitDetail.pokitIdArg
import pokitmons.pokit.search.SearchScreenContainer
import pokitmons.pokit.search.SearchViewModel
import pokitmons.pokit.settings.SettingViewModel
Expand All @@ -27,7 +30,7 @@ import pokitmons.pokit.settings.setting.SettingsScreen
fun RootNavHost(
navHostController: NavHostController,
) {
NavHost(navController = navHostController, startDestination = Login.route) {
NavHost(navController = navHostController, startDestination = Home.route) {
composable(Login.route) {
val viewModel: LoginViewModel = hiltViewModel()
LoginScreen(
Expand Down Expand Up @@ -121,5 +124,17 @@ fun RootNavHost(
onBackPressed = navHostController::popBackStack
)
}

composable(route = Home.route) {
val viewModel: PokitViewModel = hiltViewModel()
HomeScreen(
viewModel = viewModel,
onNavigateToSearch = { navHostController.navigate(Search.route) },
onNavigateToSetting = { navHostController.navigate(Setting.route) },
onNavigateToPokitDetail = { navHostController.navigate("${PokitDetail.route}/$it") },
onNavigateAddLink = { navHostController.navigate(AddLink.route) },
onNavigateAddPokit = { navHostController.navigate(AddPokit.route) }
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ fun PokitCard(
shape = RoundedCornerShape(8.dp)
)
.background(
color = PokitTheme.colors.backgroundBase,
color = PokitTheme.colors.backgroundPrimary,
shape = RoundedCornerShape(8.dp)
)
.clickable(onClick = onClick)
Expand All @@ -59,7 +59,7 @@ fun PokitCard(
)

IconButton(
onClick = onClickKebab,
onClick = { onClickKebab() },
modifier = Modifier
.size(24.dp)
.align(Alignment.Top)
Expand Down
9 changes: 9 additions & 0 deletions core/ui/src/main/res/drawable/icon_18_align.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="18dp"
android:height="18dp"
android:viewportWidth="18"
android:viewportHeight="18">
<path
android:pathData="M12.938,3L12.862,3.005C12.587,3.042 12.376,3.278 12.376,3.563L12.375,13.082L9.96,10.668L9.897,10.614C9.677,10.451 9.364,10.469 9.165,10.669C8.945,10.888 8.945,11.245 9.165,11.464L12.543,14.839L12.606,14.894C12.826,15.057 13.139,15.039 13.338,14.839L16.71,11.464L16.765,11.401C16.928,11.18 16.91,10.868 16.71,10.668L16.647,10.614C16.427,10.451 16.114,10.469 15.915,10.669L13.5,13.085L13.501,3.563L13.495,3.486C13.458,3.212 13.223,3 12.938,3ZM4.661,3.165L1.29,6.536L1.235,6.599C1.072,6.819 1.09,7.132 1.29,7.332L1.353,7.386C1.573,7.549 1.886,7.531 2.085,7.332L4.498,4.918L4.498,14.441L4.503,14.517C4.541,14.792 4.776,15.004 5.061,15.004L5.137,14.999C5.412,14.961 5.623,14.726 5.623,14.441L5.623,4.919L8.04,7.332L8.103,7.386C8.323,7.549 8.636,7.531 8.835,7.331C9.055,7.111 9.054,6.755 8.835,6.536L5.456,3.164L5.393,3.11C5.173,2.947 4.86,2.965 4.661,3.165Z"
android:fillColor="#262626"/>
</vector>
10 changes: 10 additions & 0 deletions core/ui/src/main/res/drawable/icon_24_remind.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M11.707,4.707C11.52,4.895 11.265,5 11,5C10.735,5 10.48,4.895 10.293,4.707C10.105,4.52 10,4.265 10,4V2C10,1.735 10.105,1.48 10.293,1.293C10.48,1.105 10.735,1 11,1C11.265,1 11.52,1.105 11.707,1.293C11.895,1.48 12,1.735 12,2V4C12,4.265 11.895,4.52 11.707,4.707ZM20.843,5.158C18.966,3.281 15.923,3.281 14.046,5.158L14.046,5.158L13.069,6.135C12.581,6.623 12.581,7.415 13.069,7.903C13.557,8.391 14.349,8.391 14.837,7.903L15.814,6.925L15.814,6.925C16.715,6.025 18.174,6.025 19.075,6.925C19.975,7.826 19.975,9.285 19.075,10.186L15.519,13.741L16.403,14.625L15.519,13.741C14.619,14.642 13.159,14.642 12.259,13.741C11.771,13.253 10.979,13.253 10.491,13.741C10.003,14.229 10.003,15.021 10.491,15.509C12.368,17.386 15.41,17.386 17.287,15.509L20.843,11.954L19.959,11.07L20.843,11.954C22.719,10.077 22.719,7.034 20.843,5.158L19.961,6.039L20.843,5.158ZM15.509,10.491C13.632,8.614 10.59,8.614 8.713,10.491L5.158,14.046L6.033,14.922L5.158,14.046C3.281,15.923 3.281,18.966 5.158,20.843L6.039,19.961L5.158,20.843C7.034,22.719 10.077,22.719 11.954,20.843L11.954,20.843L12.933,19.863C13.421,19.375 13.421,18.584 12.933,18.096C12.445,17.608 11.653,17.607 11.165,18.096L10.186,19.075L10.186,19.075C9.285,19.975 7.826,19.975 6.925,19.075C6.025,18.174 6.025,16.715 6.925,15.814L10.481,12.259L10.481,12.259C11.381,11.358 12.841,11.358 13.741,12.259C14.229,12.747 15.021,12.747 15.509,12.259C15.997,11.771 15.997,10.979 15.509,10.491ZM5,11C5,10.735 4.895,10.48 4.707,10.293C4.52,10.105 4.265,10 4,10H2C1.735,10 1.48,10.105 1.293,10.293C1.105,10.48 1,10.735 1,11C1,11.265 1.105,11.52 1.293,11.707C1.48,11.895 1.735,12 2,12H4C4.265,12 4.52,11.895 4.707,11.707C4.895,11.52 5,11.265 5,11ZM4.497,3.724C4.765,3.716 5.025,3.816 5.22,4L6.72,5.42C6.906,5.607 7.011,5.861 7.011,6.125C7.011,6.389 6.906,6.643 6.72,6.83C6.627,6.927 6.516,7.005 6.392,7.058C6.268,7.112 6.135,7.139 6,7.14C5.866,7.145 5.732,7.122 5.607,7.074C5.481,7.026 5.367,6.953 5.27,6.86L3.83,5.47C3.635,5.286 3.522,5.031 3.514,4.763C3.507,4.495 3.606,4.235 3.79,4.04C3.975,3.845 4.229,3.731 4.497,3.724Z"
android:fillColor="#262626"
android:fillType="evenOdd"/>
</vector>
13 changes: 13 additions & 0 deletions core/ui/src/main/res/drawable/image_floating.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="60dp"
android:height="60dp"
android:viewportWidth="60"
android:viewportHeight="60">
<path
android:pathData="M0,30C0,13.432 13.432,0 30,0C46.569,0 60,13.432 60,30C60,46.569 46.569,60 30,60C13.432,60 0,46.569 0,30Z"
android:fillColor="#FE8422"/>
<path
android:pathData="M30,17.4C30.994,17.4 31.8,18.206 31.8,19.2V28.2H40.8C41.794,28.2 42.6,29.006 42.6,30C42.6,30.994 41.794,31.8 40.8,31.8H31.8V40.8C31.8,41.794 30.994,42.6 30,42.6C29.006,42.6 28.2,41.794 28.2,40.8V31.8H19.2C18.206,31.8 17.4,30.994 17.4,30C17.4,29.006 18.206,28.2 19.2,28.2H28.2V19.2C28.2,18.206 29.006,17.4 30,17.4Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
</vector>
22 changes: 22 additions & 0 deletions core/ui/src/main/res/drawable/logo_pokit.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="104dp"
android:height="32dp"
android:viewportWidth="104"
android:viewportHeight="32">
<group>
<clip-path
android:pathData="M0,0h104v32h-104z"/>
<path
android:pathData="M6.4,2.29H13.8V31.53H6.4V2.29ZM3.11,9.49C3.11,9.49 8.56,14.51 10.37,15.4C12.18,16.29 14.94,17.24 16.23,17.28C17.85,17.35 19.81,16.95 20.69,16.15C21.57,15.35 22.01,14.19 22.01,12.68V12.64C22.01,11.11 21.57,9.96 20.69,9.18C19.81,8.39 18.45,7.76 17.03,8C14.59,8.42 11.12,10.91 11.12,10.91L8.96,6.12C8.96,6.12 13.68,2.39 18.81,2.29C21.04,2.25 22.85,2.72 24.46,3.57C26.06,4.43 27.3,5.63 28.18,7.18C29.06,8.73 29.5,10.55 29.5,12.64V12.68C29.5,14.76 29.06,16.58 28.18,18.12C27.3,19.67 26.06,20.87 24.46,21.71C22.85,22.55 19.71,23.1 17.65,23.1C15.1,23.1 11.22,22.59 8.28,20.98C4.74,19.06 0,14.14 0,14.14L3.11,9.49Z"
android:fillColor="#FE8422"/>
<path
android:pathData="M34.63,30.65C32.95,29.74 31.65,28.43 30.74,26.71C29.84,25 29.38,22.93 29.38,20.51V20.47C29.38,18.1 29.85,16.04 30.78,14.32C31.71,12.6 33.01,11.28 34.69,10.37C36.37,9.45 38.35,9 40.62,9C42.89,9 44.89,9.45 46.57,10.37C48.25,11.28 49.55,12.59 50.48,14.3C51.41,16.01 51.88,18.06 51.88,20.47V20.51C51.88,22.94 51.42,25.02 50.51,26.73C49.59,28.45 48.3,29.75 46.62,30.65C44.95,31.55 42.95,32 40.62,32C38.29,32 36.31,31.54 34.63,30.64L34.63,30.65ZM42.76,25.85C43.35,25.38 43.8,24.7 44.11,23.79C44.43,22.89 44.59,21.79 44.59,20.51V20.47C44.59,19.2 44.42,18.12 44.1,17.22C43.77,16.32 43.31,15.63 42.71,15.16C42.12,14.69 41.42,14.45 40.62,14.45C39.81,14.45 39.12,14.69 38.53,15.16C37.93,15.63 37.47,16.32 37.13,17.22C36.81,18.12 36.64,19.2 36.64,20.47V20.51C36.64,21.8 36.8,22.89 37.12,23.79C37.44,24.7 37.91,25.38 38.5,25.85C39.1,26.32 39.81,26.55 40.63,26.55C41.45,26.55 42.16,26.32 42.75,25.85H42.76Z"
android:fillColor="#FE8422"/>
<path
android:pathData="M80.83,7.09C81.86,7.09 82.73,6.74 83.43,6.04C84.13,5.33 84.48,4.5 84.48,3.55C84.48,2.59 84.13,1.74 83.43,1.04C82.73,0.35 81.87,0 80.83,0C79.79,0 78.94,0.35 78.24,1.04C77.53,1.74 77.18,2.57 77.18,3.55C77.18,4.52 77.53,5.34 78.24,6.04C78.94,6.74 79.81,7.09 80.83,7.09Z"
android:fillColor="#FE8422"/>
<path
android:pathData="M101.86,14.73V9.47H98.6C98.6,7.77 98.6,6.08 98.6,4.38H92.05V9.47C91.06,9.47 90.06,9.47 89.07,9.47V14.73C90.06,14.73 91.05,14.73 92.04,14.73C92.11,16.76 92.08,18.79 91.96,20.82C91.92,21.45 91.87,22.09 91.59,22.65C90.99,23.85 89.5,24.32 88.16,24.32C86.93,24.32 85.57,23.93 84.97,22.86C84.65,22.29 84.6,21.61 84.56,20.95C84.46,19.13 84.41,17.32 84.43,15.5C84.43,13.48 84.43,11.47 84.43,9.46C82.04,9.46 79.65,9.46 77.27,9.46C77.27,13.13 77.27,16.81 77.27,20.48C77.27,21.15 77.27,21.84 76.99,22.44C76.7,23.09 76.14,23.58 75.51,23.9C73.88,24.73 71.82,24.45 70.3,23.42C68.78,22.4 67.78,20.71 67.32,18.93C69.9,15.77 72.48,12.61 75.06,9.46C72.76,9.46 70.46,9.45 68.17,9.44C67.82,9.44 67.46,9.44 67.16,9.61C66.92,9.74 66.75,9.97 66.57,10.19C64.61,12.75 62.66,15.31 60.69,17.86C60.68,12.67 60.67,7.47 60.66,2.28C58.28,2.28 55.9,2.28 53.53,2.28C53.53,9.19 53.53,16.11 53.53,23.02C53.53,25.65 53.53,28.27 53.53,30.9C53.53,31.25 53.44,31.41 53.73,31.52C53.98,31.63 54.49,31.52 54.77,31.52H56.73C57.06,31.52 60.66,31.52 60.66,31.52C60.66,30.02 60.59,27.35 60.64,25.88C60.68,24.42 61.2,23.78 62,23.16C62.99,27.03 66.19,30.24 70.04,31.25C73.89,32.25 78.24,30.99 80.97,28.08C82.69,30.23 85.42,31.53 88.17,31.52C90.93,31.51 93.64,30.18 95.34,28.02C96.58,29.06 97.84,30.11 99.3,30.8C100.75,31.49 102.47,31.79 103.99,31.27L103.96,23.84C102.86,24.89 100.95,24.57 99.89,23.49C98.83,22.4 98.45,20.8 98.45,19.28C98.45,17.76 98.45,16.25 98.45,14.72C99.53,14.72 100.77,14.72 101.85,14.72L101.86,14.73Z"
android:fillColor="#FE8422"/>
</group>
</vector>
9 changes: 9 additions & 0 deletions core/ui/src/main/res/drawable/logo_remind.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="112dp"
android:height="26dp"
android:viewportWidth="112"
android:viewportHeight="26">
<path
android:pathData="M0.7,25V2.45H10.47C12.29,2.45 13.84,2.74 15.11,3.33C16.38,3.91 17.35,4.76 18.02,5.88C18.68,6.99 19.02,8.34 19.02,9.94V9.97C19.02,11.42 18.67,12.72 17.97,13.88C17.27,15.03 16.34,15.87 15.17,16.39L19.67,25H13.22L9.36,17.23C9.33,17.23 9.29,17.23 9.23,17.23C9.19,17.23 9.15,17.23 9.09,17.23H6.44V25H0.7ZM6.44,13.08H9.83C10.85,13.08 11.66,12.8 12.25,12.23C12.85,11.66 13.16,10.9 13.16,9.95V9.92C13.16,8.97 12.85,8.21 12.23,7.64C11.62,7.07 10.81,6.78 9.8,6.78H6.44V13.08ZM29.04,25.36C27.25,25.36 25.71,25.01 24.41,24.3C23.12,23.58 22.13,22.56 21.43,21.23C20.74,19.91 20.4,18.33 20.4,16.5V16.48C20.4,14.66 20.74,13.09 21.43,11.77C22.13,10.44 23.11,9.42 24.37,8.7C25.64,7.98 27.13,7.63 28.85,7.63C30.57,7.63 32.06,7.98 33.32,8.69C34.58,9.39 35.55,10.38 36.24,11.66C36.93,12.93 37.27,14.42 37.27,16.14V17.77H23.12V14.48H34.68L32.1,17.56V15.42C32.1,14.6 31.97,13.9 31.71,13.33C31.45,12.74 31.09,12.31 30.62,12.02C30.15,11.71 29.6,11.56 28.98,11.56C28.35,11.56 27.8,11.71 27.32,12.02C26.85,12.32 26.49,12.76 26.23,13.34C25.97,13.92 25.84,14.61 25.84,15.42V17.58C25.84,18.38 25.97,19.07 26.23,19.64C26.5,20.21 26.88,20.66 27.37,20.97C27.87,21.27 28.46,21.42 29.15,21.42C29.74,21.42 30.25,21.33 30.66,21.14C31.08,20.95 31.41,20.72 31.65,20.45C31.9,20.18 32.06,19.93 32.15,19.69L32.16,19.63H37.16L37.12,19.81C36.99,20.41 36.75,21.03 36.4,21.67C36.04,22.31 35.55,22.91 34.91,23.47C34.29,24.03 33.49,24.49 32.52,24.84C31.56,25.19 30.4,25.36 29.04,25.36ZM39.06,25V7.98H44.61V11.05H44.72C45.05,10.01 45.65,9.18 46.5,8.56C47.35,7.94 48.36,7.63 49.53,7.63C50.34,7.63 51.07,7.77 51.7,8.06C52.34,8.34 52.87,8.76 53.3,9.3C53.72,9.83 54.01,10.48 54.17,11.27H54.28C54.5,10.53 54.86,9.89 55.36,9.34C55.87,8.8 56.48,8.38 57.19,8.08C57.91,7.78 58.69,7.63 59.53,7.63C60.65,7.63 61.62,7.87 62.45,8.36C63.29,8.84 63.94,9.52 64.41,10.39C64.87,11.26 65.11,12.27 65.11,13.42V25H59.56V14.84C59.56,14.25 59.47,13.76 59.3,13.36C59.12,12.95 58.85,12.65 58.5,12.45C58.15,12.24 57.7,12.14 57.17,12.14C56.68,12.14 56.25,12.26 55.87,12.48C55.51,12.71 55.23,13.03 55.03,13.44C54.83,13.84 54.73,14.33 54.73,14.91V25H49.44V14.8C49.44,14.21 49.34,13.73 49.16,13.34C48.98,12.95 48.71,12.65 48.36,12.45C48.01,12.24 47.59,12.14 47.08,12.14C46.58,12.14 46.14,12.26 45.76,12.5C45.4,12.73 45.11,13.05 44.91,13.47C44.71,13.89 44.61,14.38 44.61,14.94V25H39.06ZM67.41,25V7.98H72.96V25H67.41ZM70.18,6.16C69.39,6.16 68.71,5.89 68.16,5.34C67.62,4.8 67.35,4.16 67.35,3.42C67.35,2.67 67.62,2.03 68.16,1.5C68.71,0.96 69.39,0.69 70.18,0.69C70.98,0.69 71.65,0.96 72.19,1.5C72.74,2.03 73.01,2.67 73.01,3.42C73.01,4.16 72.74,4.8 72.19,5.34C71.65,5.89 70.98,6.16 70.18,6.16ZM75.33,25V7.98H80.87V10.98H80.98C81.42,9.91 82.07,9.08 82.94,8.5C83.8,7.92 84.87,7.63 86.15,7.63C88.03,7.63 89.47,8.19 90.48,9.33C91.5,10.45 92.01,12.03 92.01,14.05V25H86.47V15.23C86.47,14.27 86.24,13.51 85.78,12.97C85.32,12.42 84.64,12.14 83.73,12.14C83.15,12.14 82.64,12.28 82.22,12.55C81.79,12.82 81.46,13.19 81.22,13.67C80.99,14.15 80.87,14.71 80.87,15.34V25H75.33ZM100.52,25.36C99.1,25.36 97.89,25.01 96.86,24.31C95.85,23.61 95.08,22.6 94.54,21.28C94.01,19.96 93.74,18.36 93.74,16.48V16.47C93.74,14.59 94.01,13 94.54,11.69C95.08,10.36 95.85,9.36 96.86,8.67C97.89,7.97 99.1,7.63 100.52,7.63C101.33,7.63 102.07,7.76 102.74,8.03C103.42,8.29 104,8.68 104.49,9.19C104.99,9.69 105.39,10.29 105.68,11H105.79V2.45H111.33V25H105.79V22.09H105.68C105.4,22.78 105.01,23.37 104.51,23.86C104.02,24.34 103.43,24.71 102.76,24.97C102.08,25.23 101.33,25.36 100.52,25.36ZM102.57,20.84C103.21,20.84 103.78,20.67 104.26,20.33C104.75,19.97 105.12,19.47 105.38,18.83C105.65,18.17 105.79,17.4 105.79,16.5V16.48C105.79,15.58 105.65,14.8 105.38,14.16C105.11,13.51 104.74,13.02 104.26,12.67C103.78,12.32 103.21,12.14 102.57,12.14C101.92,12.14 101.36,12.31 100.88,12.66C100.4,13 100.03,13.5 99.76,14.16C99.5,14.8 99.36,15.57 99.36,16.47V16.48C99.36,17.39 99.5,18.17 99.76,18.81C100.02,19.46 100.39,19.96 100.86,20.31C101.36,20.67 101.92,20.84 102.57,20.84Z"
android:fillColor="#FE8422"/>
</vector>
30 changes: 30 additions & 0 deletions data/src/main/java/pokitmons/pokit/data/api/RemindApi.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package pokitmons.pokit.data.api

import pokitmons.pokit.data.model.home.remind.Remind
import pokitmons.pokit.data.model.home.remind.RemindResponse
import pokitmons.pokit.domain.model.pokit.PokitsSort
import retrofit2.http.GET
import retrofit2.http.Query

interface RemindApi {
@GET("remind/unread")
suspend fun getUnreadContents(
@Query("size") size: Int = 10,
@Query("page") page: Int = 0,
@Query("sort") sort: String = PokitsSort.RECENT.value,
): RemindResponse

@GET("remind/today")
suspend fun getTodayContents(
@Query("size") size: Int = 10,
@Query("page") page: Int = 0,
@Query("sort") sort: String = PokitsSort.RECENT.value,
): List<Remind>

@GET("remind/bookmark")
suspend fun getBookmarkContents(
@Query("size") size: Int = 10,
@Query("page") page: Int = 0,
@Query("sort") sort: String = PokitsSort.RECENT.value,
): RemindResponse
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package pokitmons.pokit.data.datasource.remote.home.remind

import pokitmons.pokit.data.model.home.remind.Remind
import pokitmons.pokit.data.model.home.remind.RemindRequest
import pokitmons.pokit.data.model.home.remind.RemindResponse

interface RemindDataSource {
suspend fun getUnreadContents(remindRequest: RemindRequest): RemindResponse
suspend fun getTodayContents(remindRequest: RemindRequest): List<Remind>
suspend fun getBookmarkContents(remindRequest: RemindRequest): RemindResponse
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package pokitmons.pokit.data.datasource.remote.home.remind

import pokitmons.pokit.data.api.RemindApi
import pokitmons.pokit.data.model.home.remind.Remind
import pokitmons.pokit.data.model.home.remind.RemindRequest
import pokitmons.pokit.data.model.home.remind.RemindResponse
import javax.inject.Inject

class RemindDataSourceImpl @Inject constructor(private val remindApi: RemindApi) : RemindDataSource {
override suspend fun getUnreadContents(remindRequest: RemindRequest): RemindResponse {
return remindApi.getUnreadContents()
}

override suspend fun getTodayContents(remindRequest: RemindRequest): List<Remind> {
return remindApi.getTodayContents()
}

override suspend fun getBookmarkContents(remindRequest: RemindRequest): RemindResponse {
return remindApi.getBookmarkContents()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package pokitmons.pokit.data.di.home.remind

import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import pokitmons.pokit.data.datasource.remote.home.remind.RemindDataSource
import pokitmons.pokit.data.datasource.remote.home.remind.RemindDataSourceImpl
import pokitmons.pokit.data.repository.home.remind.RemindRepositoryImpl
import pokitmons.pokit.domain.repository.home.remind.RemindRepository
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
abstract class RemindModule {
@Binds
@Singleton
abstract fun bindRemindRepository(remindRepositoryImpl: RemindRepositoryImpl): RemindRepository

@Binds
@Singleton
abstract fun bindRemindDataSource(remindDataSourceImpl: RemindDataSourceImpl): RemindDataSource
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ class BearerTokenInterceptor : Interceptor {
val requestWithToken: Request = originalRequest.newBuilder()
.header(
"Authorization",
"Bearer eyJhbGciOiJIUzM4NCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzIxNjU4MjUxLCJleHAiOj" +
"MwMDE3MjE2NTgyNTF9.gw6LZimKLuZJ2y0UV5cgvk3F7o92pkRIDgx-qlD_S7qEI01QAFt9dZDyHADabftI"
"Bearer eyJhbGciOiJIUzM4NCJ9.eyJzdWIiOiIxMCIsImlhdCI6MTcyMzY0MzEzOSwiZXhwIjoy" +
"MDIzNjQzMTM5fQ.3jJ6rpPCaMKSrmiB3NtQ3_sYH0zbBuoS0GAwX69HCu62-Vk6x--eUu4dhZJTmqlm"
)
.build()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import okhttp3.logging.HttpLoggingInterceptor
import pokitmons.pokit.data.api.AuthApi
import pokitmons.pokit.data.api.LinkApi
import pokitmons.pokit.data.api.PokitApi
import pokitmons.pokit.data.api.RemindApi
import pokitmons.pokit.data.api.SettingApi
import retrofit2.Retrofit
import java.util.concurrent.TimeUnit
Expand Down Expand Up @@ -85,4 +86,9 @@ object NetworkModule {
fun provideSettingService(retrofit: Retrofit): SettingApi {
return retrofit.create(SettingApi::class.java)
}

@Provides
fun provideRemindService(retrofit: Retrofit): RemindApi {
return retrofit.create(RemindApi::class.java)
}
}
Loading

0 comments on commit a65cc3a

Please sign in to comment.