Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d720f51
feat: 북마크 콘텐츠 모두 보기 화면 UI 구현
yrsel Feb 23, 2026
dd12881
feat: 페이지네이션 도메인 레이어 구현
yrsel Feb 23, 2026
1552621
feat: 페이지네이션 Ui/Presentation 레이어 구현
yrsel Feb 23, 2026
5c00a16
feat: 북마크 콘텐츠 페이지네이션 API 데이터 영역 반환값 및 매퍼 수정
yrsel Feb 23, 2026
5288e0d
feat: 콘텐츠 북마크 페이지네이션 로직 구현
yrsel Feb 23, 2026
9c659ac
feat: 북마크 목록 콘텐츠와 마이페이지 북마크 콘텐츠 데이터 동기화
yrsel Feb 23, 2026
fd52d75
refactor: ktlintformat
yrsel Feb 23, 2026
3b55f90
refactor: 북마크 콘텐츠 수 조회 API 연동
yrsel Feb 24, 2026
748f514
refactor: 페이지네이션 API 내부 메서드 분리, 불필요한 어노테이션 제거
yrsel Feb 24, 2026
3d3e99a
refactor: 코드래빗 반영
yrsel Feb 24, 2026
0c7d1f6
refactor: 회원탈퇴 strings 띄어쓰기 수정
yrsel Feb 27, 2026
e83e6a8
Merge branch 'develop' of https://github.com/woowacourse-teams/2025-T…
yrsel Feb 27, 2026
8df6919
refactor: 북마크 수 조회 함수 반환값 수정
yrsel Feb 28, 2026
818d72c
refactor: BookmarkContentScreen 파라미터명에 on 접두사 추가
yrsel Feb 28, 2026
be984be
refactor: BookmarkContent 내부 컴포넌트들 공통에서 사용할 수 있도록 추출
yrsel Feb 28, 2026
55a5c1d
refactor: bookmarks, accounts 복수형 패키지 이름 수정
yrsel Feb 28, 2026
a944888
refactor: 북마크 콘텐츠 목록 scaffold에 snackbarhost 추가
yrsel Feb 28, 2026
2565a78
refactor: 북마크 콘텐츠 목록 modifier 수정
yrsel Feb 28, 2026
e5eb90e
refactor: 마이페이지의 북마크와 북마크 목록의 북마크, 구분할 수 있는 이름으로 수정
yrsel Feb 28, 2026
e8f2889
refactor: BookmarkContentList 람다 파라미터명 수정
yrsel Feb 28, 2026
241b5ec
refactor: 북마크 목록 페이지네이션 threshold 값 조정
yrsel Feb 28, 2026
b1886c7
refactor: 북마크 콘텐츠 수 조회 API 에러에 대한 Preview 추가
yrsel Feb 28, 2026
170643d
refactor: 북마크 목록 페이지네이션 더보기 에러에 대한 preview 추가
yrsel Feb 28, 2026
b1af884
refactor: 마이페이지 preview 추가
yrsel Feb 28, 2026
6433fa9
refactor: ktlintformat
yrsel Feb 28, 2026
4bb19d5
refactor: 코드래빗 리뷰 반영
yrsel Feb 28, 2026
6fb2e7b
feat: 북마크 페이지네이션 파라미터 Cursor 객체 사용하도록 수정
yrsel Feb 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
android:theme="@style/Theme.Turip"
android:usesCleartextTraffic="true"
tools:targetApi="31">
<activity
android:name=".ui.bookmarks.BookmarkContentActivity"
android:exported="false" />
<activity
android:name=".ui.mypage.MyPageActivity"
android:exported="false" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ import com.on.turip.data.bookmarks.dto.BookmarkContentResponse
import com.on.turip.data.bookmarks.dto.BookmarkContentsResponse
import com.on.turip.data.content.toDomain
import com.on.turip.domain.bookmark.BookmarkContent
import com.on.turip.domain.bookmark.PagedBookmarkContents
import com.on.turip.domain.common.paging.Page

fun Long.toRequestDto(): BookmarkAddRequest = BookmarkAddRequest(contentId = this)

fun BookmarkContentsResponse.toDomain(): PagedBookmarkContents =
PagedBookmarkContents(
bookmarkContents = contents.map { it.toDomain() },
loadable = loadable,
fun BookmarkContentsResponse.toDomain(): Page<BookmarkContent> =
Page(
items = contents.map { it.toDomain() },
hasNext = loadable,
)

fun BookmarkContentResponse.toDomain(): BookmarkContent =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ import com.on.turip.core.result.mapCatching
import com.on.turip.data.bookmarks.datasource.BookmarkRemoteDataSource
import com.on.turip.data.bookmarks.toDomain
import com.on.turip.data.bookmarks.toRequestDto
import com.on.turip.domain.bookmark.PagedBookmarkContents
import com.on.turip.domain.bookmark.BookmarkContent
import com.on.turip.domain.bookmark.repository.BookmarkRepository
import com.on.turip.domain.common.paging.Page
import javax.inject.Inject

class DefaultBookmarkRepository @Inject constructor(
Expand All @@ -20,5 +21,5 @@ class DefaultBookmarkRepository @Inject constructor(
override suspend fun loadBookmarks(
size: Int,
lastId: Long,
): TuripResult<PagedBookmarkContents> = bookmarkRemoteDataSource.getBookmarks(size, lastId).mapCatching { it.toDomain() }
): TuripResult<Page<BookmarkContent>> = bookmarkRemoteDataSource.getBookmarks(size, lastId).mapCatching { it.toDomain() }
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package com.on.turip.domain.bookmark.repository

import com.on.turip.core.result.TuripResult
import com.on.turip.domain.bookmark.PagedBookmarkContents
import com.on.turip.domain.bookmark.BookmarkContent
import com.on.turip.domain.common.paging.Page

interface BookmarkRepository {
suspend fun createBookmark(contentId: Long): TuripResult<Unit>
Expand All @@ -11,5 +12,5 @@ interface BookmarkRepository {
suspend fun loadBookmarks(
size: Int,
lastId: Long,
): TuripResult<PagedBookmarkContents>
): TuripResult<Page<BookmarkContent>>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.on.turip.domain.common.paging

data class Page<T>(
val items: List<T>,
val hasNext: Boolean,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package com.on.turip.ui.bookmarks

import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import com.on.turip.ui.compose.bookmarks.BookmarkContentScreen
import com.on.turip.ui.compose.designsystem.theme.TuripTheme
import com.on.turip.ui.login.LoginActivity
import com.on.turip.ui.trip.TripDetailActivity
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class BookmarkContentActivity : AppCompatActivity() {
private var hasBookmarkChanges = false

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()

setContent {
TuripTheme {
BookmarkContentScreen(
navigateToBack = {
finish()
},
navigateToLogin = {
val intent: Intent =
LoginActivity.newIntent(this).apply {
flags =
Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
}
startActivity(intent)
finish()
},
navigateToContent = { contentId: Long ->
val intent: Intent =
TripDetailActivity.newIntent(context = this, contentId = contentId)
startActivity(intent)
},
onBookmarkChanged = {
hasBookmarkChanges = true
},
)
}
}
}

override fun finish() {
val data =
Intent().apply {
putExtra("BOOKMARK_CONTENT_HAS_BOOKMARK_CHANGES_FLAG", hasBookmarkChanges)
}
setResult(Activity.RESULT_OK, data)
super.finish()
}

companion object {
fun newIntent(context: Context): Intent = Intent(context, BookmarkContentActivity::class.java)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.on.turip.ui.common.paging

import androidx.compose.runtime.Immutable

@Immutable
enum class PagingLoadMode {
REFRESH,
APPEND,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.on.turip.ui.common.paging

import androidx.compose.runtime.Immutable
import com.on.turip.ui.common.error.ErrorUiState
import kotlinx.collections.immutable.ImmutableList

@Immutable
data class PagingState<T>(
val items: ImmutableList<T>,
val hasNext: Boolean,
val isAppending: Boolean,
val errorUiState: ErrorUiState,
)
Loading