From 2dcf3c189c0aacc07a851eeda41a2ffab7c953dc Mon Sep 17 00:00:00 2001 From: easyhooon Date: Tue, 12 Aug 2025 16:43:24 +0900 Subject: [PATCH 001/107] =?UTF-8?q?[BOOK-256]=20feat:=20Firebase=20Analyti?= =?UTF-8?q?cs=20=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20=EB=A1=9C=EA=B7=B8=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=B6=94=EC=A0=81=20=ED=99=98=EA=B2=BD=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/common/build.gradle.kts | 2 ++ .../core/common/analytics/AnalyticsHelper.kt | 30 +++++++++++++++++++ .../common/analytics/di/AnalyticsModule.kt | 23 ++++++++++++++ .../booket/feature/home/HomePresenter.kt | 8 ++++- .../booket/feature/screens/ScreenNames.kt | 17 +++++++++++ .../booket/feature/screens/Screens.kt | 26 ++++++++-------- gradle/libs.versions.toml | 6 ++-- 7 files changed, 95 insertions(+), 17 deletions(-) create mode 100644 core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt create mode 100644 core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/di/AnalyticsModule.kt create mode 100644 feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/ScreenNames.kt diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index 35666a1b..793ec108 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -18,6 +18,8 @@ dependencies { libs.kotlinx.collections.immutable, + platform(libs.firebase.bom), + libs.firebase.analytics, libs.logger, ) } diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt new file mode 100644 index 00000000..daada627 --- /dev/null +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt @@ -0,0 +1,30 @@ +package com.ninecraft.booket.core.common.analytics + +import com.google.firebase.analytics.FirebaseAnalytics +import com.google.firebase.analytics.logEvent +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class AnalyticsHelper @Inject constructor( + private val firebaseAnalytics: FirebaseAnalytics +) { + fun logScreenView(screenName: String, customTags: Map = emptyMap()) { + firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { + param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) + param(FirebaseAnalytics.Param.SCREEN_CLASS, screenName) + + customTags.forEach { (key, value) -> + param(key, value) + } + } + } + + fun logCustomEvent(eventName: String, parameters: Map = emptyMap()) { + firebaseAnalytics.logEvent(eventName) { + parameters.forEach { (key, value) -> + param(key, value) + } + } + } +} diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/di/AnalyticsModule.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/di/AnalyticsModule.kt new file mode 100644 index 00000000..43018ab8 --- /dev/null +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/di/AnalyticsModule.kt @@ -0,0 +1,23 @@ +package com.ninecraft.booket.core.common.analytics.di + +import android.content.Context +import com.google.firebase.Firebase +import com.google.firebase.analytics.FirebaseAnalytics +import com.google.firebase.analytics.analytics +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object AnalyticsModule { + + @Provides + @Singleton + fun provideFirebaseAnalytics(@ApplicationContext context: Context): FirebaseAnalytics { + return Firebase.analytics + } +} diff --git a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt index 7fa8440a..1c431895 100644 --- a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt +++ b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt @@ -6,6 +6,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.data.api.repository.BookRepository import com.ninecraft.booket.core.model.RecentBookModel import com.ninecraft.booket.feature.screens.BookDetailScreen @@ -17,6 +18,7 @@ import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -28,12 +30,12 @@ import kotlinx.coroutines.launch class HomePresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val repository: BookRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable override fun present(): HomeUiState { val scope = rememberCoroutineScope() - var uiState by rememberRetained { mutableStateOf(UiState.Idle) } var recentBooks by rememberRetained { mutableStateOf(persistentListOf()) } @@ -89,6 +91,10 @@ class HomePresenter @AssistedInject constructor( loadHomeContent() } + ImpressionEffect(HomeScreen) { + analyticsHelper.logScreenView(HomeScreen.name) + } + return HomeUiState( uiState = uiState, recentBooks = recentBooks, diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/ScreenNames.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/ScreenNames.kt new file mode 100644 index 00000000..631cfc67 --- /dev/null +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/ScreenNames.kt @@ -0,0 +1,17 @@ +package com.ninecraft.booket.feature.screens + +object ScreenNames { + const val SPLASH = "splash" + const val HOME = "home_main" + const val LIBRARY = "library_main" + const val LOGIN = "login_select_method" + const val SEARCH = "search_book_input" + const val LIBRARY_SEARCH = "library_search_book" + const val TERMS_AGREEMENT = "login_terms_agreement" + const val SETTINGS = "settings_main" + const val RECORD = "record_start" + const val OCR = "record_OCR_camera" + const val RECORD_DETAIL = "record_detail" + const val BOOK_DETAIL = "library_book_detail" + const val ONBOARDING = "onboarding_1_search" +} diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt index 4c4f1ce9..f8ecabad 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt @@ -9,40 +9,40 @@ abstract class ReedScreen(val name: String) : Screen { } @Parcelize -data object HomeScreen : ReedScreen(name = "Home()") +data object HomeScreen : ReedScreen(name = ScreenNames.HOME) @Parcelize -data object LibraryScreen : ReedScreen(name = "Library()") +data object LibraryScreen : ReedScreen(name = ScreenNames.LIBRARY) @Parcelize -data object LoginScreen : ReedScreen(name = "Login()") +data object LoginScreen : ReedScreen(name = ScreenNames.LOGIN) @Parcelize -data object SearchScreen : ReedScreen(name = "Search()") +data object SearchScreen : ReedScreen(name = ScreenNames.SEARCH) @Parcelize -data object LibrarySearchScreen : ReedScreen(name = "LibrarySearch()") +data object LibrarySearchScreen : ReedScreen(name = ScreenNames.LIBRARY_SEARCH) @Parcelize -data object TermsAgreementScreen : ReedScreen(name = "TermsAgreement()") +data object TermsAgreementScreen : ReedScreen(name = ScreenNames.TERMS_AGREEMENT) @Parcelize -data object SettingsScreen : ReedScreen(name = "Settings()") +data object SettingsScreen : ReedScreen(name = ScreenNames.SETTINGS) @Parcelize data object OssLicensesScreen : ReedScreen(name = "OssLicenses()") @Parcelize -data class RecordScreen(val userBookId: String) : ReedScreen(name = "Record") +data class RecordScreen(val userBookId: String) : ReedScreen(name = ScreenNames.RECORD) @Parcelize -data object OcrScreen : ReedScreen(name = "Ocr()") { +data object OcrScreen : ReedScreen(name = ScreenNames.OCR) { @Parcelize data class OcrResult(val sentence: String) : PopResult } @Parcelize -data class RecordDetailScreen(val recordId: String) : ReedScreen(name = "RecordDetail()") +data class RecordDetailScreen(val recordId: String) : ReedScreen(name = ScreenNames.RECORD_DETAIL) @Parcelize data class WebViewScreen( @@ -54,10 +54,10 @@ data class WebViewScreen( data class BookDetailScreen( val userBookId: String, val isbn13: String, -) : ReedScreen(name = "BookDetail()") +) : ReedScreen(name = ScreenNames.BOOK_DETAIL) @Parcelize -data object OnboardingScreen : ReedScreen(name = "Onboarding()") +data object OnboardingScreen : ReedScreen(name = ScreenNames.ONBOARDING) @Parcelize -data object SplashScreen : ReedScreen(name = "Splash()") +data object SplashScreen : ReedScreen(name = ScreenNames.SPLASH) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 96ee3042..57eb6733 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -72,7 +72,7 @@ androidx-test-runner = "1.6.2" ## Firebase google-service = "4.4.3" -firebase-bom = "33.16.0" +firebase-bom = "34.1.0" firebase-crashlytics = "3.0.4" [libraries] @@ -149,8 +149,8 @@ androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidx-test-runner" } firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase-bom" } -firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } -firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" } +firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" } +firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics" } [plugins] gradle-dependency-handler-extensions = { id = "land.sungbin.dependency.handler.extensions", version.ref = "gradle-dependency-handler-extensions" } From 87e3261ef28f1ac81df24cb0de629bb876424073 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Wed, 13 Aug 2025 00:32:34 +0900 Subject: [PATCH 002/107] =?UTF-8?q?[BOOK-256]=20feat:=20=EB=AA=A8=EB=93=A0?= =?UTF-8?q?=20Presenter=20=EB=82=B4=EC=97=90=20logScreenView=20=EC=A3=BC?= =?UTF-8?q?=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LaunchedEffect 를 사용하지 않아도 되는 부분들 RememberedEffect 로 교체 --- .../core/common/analytics/AnalyticsHelper.kt | 18 ++++-------------- core/ui/build.gradle.kts | 1 + .../core/ui/component/InfinityLazyColumn.kt | 4 ++-- .../feature/detail/book/BookDetailPresenter.kt | 7 +++++++ .../detail/record/RecordDetailPresenter.kt | 11 +++++++++-- .../booket/feature/home/HomePresenter.kt | 9 +++++---- .../booket/feature/library/LibraryPresenter.kt | 11 +++++++++-- .../booket/feature/login/LoginPresenter.kt | 7 +++++++ .../termsagreement/TermsAgreementPresenter.kt | 7 +++++++ .../feature/onboarding/OnboardingPresenter.kt | 7 +++++++ .../booket/feature/record/ocr/OcrPresenter.kt | 7 +++++++ .../booket/feature/record/ocr/OcrUi.kt | 4 ++-- .../record/register/RecordRegisterPresenter.kt | 7 +++++++ .../feature/record/step/ImpressionStep.kt | 4 ++-- .../feature/search/book/BookSearchPresenter.kt | 7 +++++++ .../search/library/LibrarySearchPresenter.kt | 7 +++++++ .../feature/settings/SettingsPresenter.kt | 8 ++++++++ .../ninecraft/booket/splash/SplashPresenter.kt | 7 +++++++ 18 files changed, 105 insertions(+), 28 deletions(-) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt index daada627..725c65c6 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt @@ -2,6 +2,7 @@ package com.ninecraft.booket.core.common.analytics import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.analytics.logEvent +import com.orhanobut.logger.Logger import javax.inject.Inject import javax.inject.Singleton @@ -9,22 +10,11 @@ import javax.inject.Singleton class AnalyticsHelper @Inject constructor( private val firebaseAnalytics: FirebaseAnalytics ) { - fun logScreenView(screenName: String, customTags: Map = emptyMap()) { + fun logScreenView(screenName: String) { + Logger.d("Analytics - Screen View: $screenName") + firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) - param(FirebaseAnalytics.Param.SCREEN_CLASS, screenName) - - customTags.forEach { (key, value) -> - param(key, value) - } - } - } - - fun logCustomEvent(eventName: String, parameters: Map = emptyMap()) { - firebaseAnalytics.logEvent(eventName) { - parameters.forEach { (key, value) -> - param(key, value) - } } } } diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index 7a80a06e..9e0af88a 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -15,6 +15,7 @@ dependencies { projects.core.common, libs.compose.keyboard.state, + libs.compose.effects, libs.logger, ) } diff --git a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt index f91453f6..e79b9d02 100644 --- a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt +++ b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt @@ -23,7 +23,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf @@ -35,6 +34,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.skydoves.compose.effects.RememberedEffect // 기기에서 평균적으로 한 화면에 보이는 아이템 개수 private const val LIMIT_COUNT = 6 @@ -82,7 +82,7 @@ private fun LazyListState.onLoadMore( } } - LaunchedEffect(reached) { + RememberedEffect(reached) { if (reached && layoutInfo.totalItemsCount > limitCount) action() } } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 91b3f662..30e9dab8 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -7,6 +7,7 @@ import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.common.constants.BookStatus import com.ninecraft.booket.core.common.constants.ErrorScope import com.ninecraft.booket.core.common.utils.handleException @@ -26,6 +27,7 @@ import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -44,6 +46,7 @@ class BookDetailPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val bookRepository: BookRepository, private val recordRepository: RecordRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { companion object { private const val PAGE_SIZE = 20 @@ -248,6 +251,10 @@ class BookDetailPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(screen.name) + } + return BookDetailUiState( uiState = uiState, footerState = footerState, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index 9b65abef..b33c5935 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -1,21 +1,23 @@ package com.ninecraft.booket.feature.detail.record import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.common.utils.handleException import com.ninecraft.booket.core.data.api.repository.RecordRepository import com.ninecraft.booket.core.model.RecordDetailModel import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.RecordDetailScreen import com.orhanobut.logger.Logger +import com.skydoves.compose.effects.RememberedEffect import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -26,6 +28,7 @@ class RecordDetailPresenter @AssistedInject constructor( @Assisted private val screen: RecordDetailScreen, @Assisted private val navigator: Navigator, private val repository: RecordRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable @@ -74,10 +77,14 @@ class RecordDetailPresenter @AssistedInject constructor( } } - LaunchedEffect(Unit) { + RememberedEffect(Unit) { getRecordDetail(screen.recordId) } + ImpressionEffect { + analyticsHelper.logScreenView(screen.name) + } + return RecordDetailUiState( uiState = uiState, recordDetailInfo = recordDetailInfo, diff --git a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt index 1c431895..dbfc9623 100644 --- a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt +++ b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt @@ -1,7 +1,6 @@ package com.ninecraft.booket.feature.home import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope @@ -14,6 +13,7 @@ import com.ninecraft.booket.feature.screens.HomeScreen import com.ninecraft.booket.feature.screens.RecordScreen import com.ninecraft.booket.feature.screens.SearchScreen import com.ninecraft.booket.feature.screens.SettingsScreen +import com.skydoves.compose.effects.RememberedEffect import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator @@ -36,6 +36,7 @@ class HomePresenter @AssistedInject constructor( @Composable override fun present(): HomeUiState { val scope = rememberCoroutineScope() + var uiState by rememberRetained { mutableStateOf(UiState.Idle) } var recentBooks by rememberRetained { mutableStateOf(persistentListOf()) } @@ -87,14 +88,14 @@ class HomePresenter @AssistedInject constructor( } } - LaunchedEffect(true) { + RememberedEffect(true) { loadHomeContent() } - ImpressionEffect(HomeScreen) { + ImpressionEffect { analyticsHelper.logScreenView(HomeScreen.name) } - + return HomeUiState( uiState = uiState, recentBooks = recentBooks, diff --git a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryPresenter.kt b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryPresenter.kt index 40dbedb3..25b609cc 100644 --- a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryPresenter.kt +++ b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryPresenter.kt @@ -1,12 +1,12 @@ package com.ninecraft.booket.feature.library import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.data.api.repository.BookRepository import com.ninecraft.booket.core.model.LibraryBookSummaryModel import com.ninecraft.booket.core.ui.component.FooterState @@ -15,10 +15,12 @@ import com.ninecraft.booket.feature.screens.LibraryScreen import com.ninecraft.booket.feature.screens.LibrarySearchScreen import com.ninecraft.booket.feature.screens.SettingsScreen import com.orhanobut.logger.Logger +import com.skydoves.compose.effects.RememberedEffect import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -30,6 +32,7 @@ import kotlinx.coroutines.launch class LibraryPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val repository: BookRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { companion object { private const val PAGE_SIZE = 20 @@ -151,7 +154,7 @@ class LibraryPresenter @AssistedInject constructor( } } - LaunchedEffect(Unit) { + RememberedEffect(Unit) { filterLibraryBooks( status = currentFilter.getApiValue(), page = START_INDEX, @@ -159,6 +162,10 @@ class LibraryPresenter @AssistedInject constructor( ) } + ImpressionEffect { + analyticsHelper.logScreenView(LibraryScreen.name) + } + return LibraryUiState( uiState = uiState, footerState = footerState, diff --git a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt index 522cb880..680e47bd 100644 --- a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt +++ b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt @@ -5,6 +5,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.data.api.repository.AuthRepository import com.ninecraft.booket.core.data.api.repository.UserRepository import com.ninecraft.booket.feature.screens.HomeScreen @@ -15,6 +16,7 @@ import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -25,6 +27,7 @@ class LoginPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val authRepository: AuthRepository, private val userRepository: UserRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable @@ -84,6 +87,10 @@ class LoginPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(LoginScreen.name) + } + return LoginUiState( isLoading = isLoading, sideEffect = sideEffect, diff --git a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementPresenter.kt b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementPresenter.kt index b2603c6a..cd68ea36 100644 --- a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementPresenter.kt +++ b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementPresenter.kt @@ -7,6 +7,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.common.constants.WebViewConstants import com.ninecraft.booket.core.data.api.repository.UserRepository import com.ninecraft.booket.feature.screens.HomeScreen @@ -17,6 +18,7 @@ import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -28,6 +30,7 @@ import kotlinx.coroutines.launch class TermsAgreementPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val userRepository: UserRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable @@ -82,6 +85,10 @@ class TermsAgreementPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(TermsAgreementScreen.name) + } + return TermsAgreementUiState( isAllAgreed = isAllAgreed, agreedTerms = agreedTerms, diff --git a/feature/onboarding/src/main/kotlin/com/ninecraft/booket/feature/onboarding/OnboardingPresenter.kt b/feature/onboarding/src/main/kotlin/com/ninecraft/booket/feature/onboarding/OnboardingPresenter.kt index 020328f3..92efa53b 100644 --- a/feature/onboarding/src/main/kotlin/com/ninecraft/booket/feature/onboarding/OnboardingPresenter.kt +++ b/feature/onboarding/src/main/kotlin/com/ninecraft/booket/feature/onboarding/OnboardingPresenter.kt @@ -4,12 +4,14 @@ package com.ninecraft.booket.feature.onboarding import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.data.api.repository.UserRepository import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.OnboardingScreen import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -21,6 +23,7 @@ const val ONBOARDING_STEPS_COUNT = 3 class OnboardingPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val repository: UserRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable @@ -47,6 +50,10 @@ class OnboardingPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(OnboardingScreen.name) + } + return OnboardingUiState( pagerState = pagerState, eventSink = ::handleEvent, diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt index 0105759a..744b12ab 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt @@ -5,12 +5,14 @@ import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.ocr.analyzer.LiveTextAnalyzer import com.ninecraft.booket.feature.screens.OcrScreen import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -21,6 +23,7 @@ import kotlinx.collections.immutable.toPersistentList class OcrPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val liveTextAnalyzer: LiveTextAnalyzer.Factory, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable @@ -112,6 +115,10 @@ class OcrPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(OcrScreen.name) + } + return OcrUiState( currentUi = currentUi, isPermissionDialogVisible = isPermissionDialogVisible, diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 2f24a26e..308ed8c6 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -33,7 +33,6 @@ import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -66,6 +65,7 @@ import com.ninecraft.booket.feature.record.R import com.ninecraft.booket.feature.record.ocr.component.CameraFrame import com.ninecraft.booket.feature.record.ocr.component.SentenceBox import com.ninecraft.booket.feature.screens.OcrScreen +import com.skydoves.compose.effects.RememberedEffect import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent import tech.thdev.compose.exteions.system.ui.controller.rememberSystemUiController @@ -114,7 +114,7 @@ private fun CameraPreview( ) { _ -> } // 최초 진입 시 권한 요청 - LaunchedEffect(Unit) { + RememberedEffect(Unit) { if (!isGranted) { state.eventSink(OcrUiEvent.OnHidePermissionDialog) permissionLauncher.launch(permission) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt index ba892739..0c877b3e 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt @@ -10,6 +10,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.text.TextRange +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.common.constants.ErrorScope import com.ninecraft.booket.core.common.utils.handleException import com.ninecraft.booket.core.common.utils.postErrorDialog @@ -27,6 +28,7 @@ import com.slack.circuit.foundation.rememberAnsweringNavigator import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -38,6 +40,7 @@ class RecordRegisterPresenter @AssistedInject constructor( @Assisted private val screen: RecordScreen, @Assisted private val navigator: Navigator, private val repository: RecordRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable @@ -258,6 +261,10 @@ class RecordRegisterPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(screen.name) + } + return RecordRegisterUiState( currentStep = currentStep, recordPageState = recordPageState, diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt index 93172488..00a6d747 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt @@ -16,7 +16,6 @@ import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment @@ -43,6 +42,7 @@ import com.ninecraft.booket.feature.record.R import com.ninecraft.booket.feature.record.component.ImpressionGuideBottomSheet import com.ninecraft.booket.feature.record.register.RecordRegisterUiEvent import com.ninecraft.booket.feature.record.register.RecordRegisterUiState +import com.skydoves.compose.effects.RememberedEffect import kotlinx.coroutines.launch import com.ninecraft.booket.core.designsystem.R as designR @@ -59,7 +59,7 @@ fun ImpressionStep( val focusRequester = remember { FocusRequester() } val keyboardController = LocalSoftwareKeyboardController.current - LaunchedEffect(Unit) { + RememberedEffect(Unit) { if (state.impressionState.text.isEmpty()) { focusRequester.requestFocus() keyboardController?.show() diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt index 62efcce8..61492cad 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt @@ -8,6 +8,7 @@ import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.common.constants.BookStatus import com.ninecraft.booket.core.common.constants.ErrorScope import com.ninecraft.booket.core.common.utils.handleException @@ -26,6 +27,7 @@ import com.slack.circuit.retained.collectAsRetainedState import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -38,6 +40,7 @@ import kotlinx.coroutines.launch class BookSearchPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val repository: BookRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { companion object { private const val START_INDEX = 1 @@ -223,6 +226,10 @@ class BookSearchPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(SearchScreen.name) + } + return BookSearchUiState( uiState = uiState, footerState = footerState, diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt index e15b8e35..292f38e5 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt @@ -8,6 +8,7 @@ import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.common.utils.handleException import com.ninecraft.booket.core.data.api.repository.BookRepository import com.ninecraft.booket.core.model.LibraryBookSummaryModel @@ -21,6 +22,7 @@ import com.slack.circuit.retained.collectAsRetainedState import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -33,6 +35,7 @@ import kotlinx.coroutines.launch class LibrarySearchPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val repository: BookRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { companion object { private const val PAGE_SIZE = 20 @@ -154,6 +157,10 @@ class LibrarySearchPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(LibrarySearchScreen.name) + } + return LibrarySearchUiState( uiState = uiState, footerState = footerState, diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt index f9715e19..c4176468 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt @@ -5,6 +5,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.common.constants.WebViewConstants import com.ninecraft.booket.core.common.utils.handleException import com.ninecraft.booket.core.data.api.repository.AuthRepository @@ -17,6 +18,7 @@ import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -26,6 +28,7 @@ import kotlinx.coroutines.launch class SettingsPresenter @AssistedInject constructor( @Assisted val navigator: Navigator, private val authRepository: AuthRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable @@ -134,6 +137,11 @@ class SettingsPresenter @AssistedInject constructor( } } } + + ImpressionEffect { + analyticsHelper.logScreenView(SettingsScreen.name) + } + return SettingsUiState( isLoading = isLoading, isLogoutDialogVisible = isLogoutDialogVisible, diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt index ef79f06f..dcfe797f 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt @@ -6,6 +6,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.data.api.repository.AuthRepository import com.ninecraft.booket.core.data.api.repository.UserRepository import com.ninecraft.booket.core.model.AutoLoginState @@ -20,6 +21,7 @@ import com.slack.circuit.retained.collectAsRetainedState import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -31,6 +33,7 @@ class SplashPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val userRepository: UserRepository, private val authRepository: AuthRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { @Composable @@ -91,6 +94,10 @@ class SplashPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(SplashScreen.name) + } + return SplashUiState } From 035ba2cca8bd80291657c70a2f44db56b0ed0f7d Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 18:36:12 +0900 Subject: [PATCH 003/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=88=98=EC=A0=95,=20=EC=82=AD=EC=A0=9C=20API=20=EC=A0=95?= =?UTF-8?q?=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/data/api/repository/RecordRepository.kt | 14 ++++++++++++++ .../impl/repository/DefaultRecordRepository.kt | 16 ++++++++++++++++ .../booket/core/network/service/ReedService.kt | 13 +++++++++++++ 3 files changed, 43 insertions(+) diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RecordRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RecordRepository.kt index 99dc8bf6..6a779432 100644 --- a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RecordRepository.kt +++ b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RecordRepository.kt @@ -1,5 +1,6 @@ package com.ninecraft.booket.core.data.api.repository +import com.ninecraft.booket.core.model.ReadingRecordModel import com.ninecraft.booket.core.model.RecordRegisterModel import com.ninecraft.booket.core.model.ReadingRecordsModel import com.ninecraft.booket.core.model.RecordDetailModel @@ -23,4 +24,17 @@ interface RecordRepository { suspend fun getRecordDetail( readingRecordId: String, ): Result + + suspend fun editRecord( + readingRecordId: String, + userBookId: String, + pageNumber: Int, + quote: String, + emotionTags: List, + review: String, + ): Result + + suspend fun deleteRecord( + readingRecordId: String, + ): Result } diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRecordRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRecordRepository.kt index 99773448..cbff7e1e 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRecordRepository.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRecordRepository.kt @@ -3,6 +3,7 @@ package com.ninecraft.booket.core.data.impl.repository import com.ninecraft.booket.core.common.utils.runSuspendCatching import com.ninecraft.booket.core.data.api.repository.RecordRepository import com.ninecraft.booket.core.data.impl.mapper.toModel +import com.ninecraft.booket.core.model.ReadingRecordModel import com.ninecraft.booket.core.network.request.RecordRegisterRequest import com.ninecraft.booket.core.network.service.ReedService import javax.inject.Inject @@ -32,4 +33,19 @@ class DefaultRecordRepository @Inject constructor( override suspend fun getRecordDetail(readingRecordId: String) = runSuspendCatching { service.getRecordDetail(readingRecordId).toModel() } + + override suspend fun editRecord( + readingRecordId: String, + userBookId: String, + pageNumber: Int, + quote: String, + emotionTags: List, + review: String, + ): Result = runSuspendCatching { + service.editRecord(readingRecordId, RecordRegisterRequest(pageNumber, quote, emotionTags, review)).toModel() + } + + override suspend fun deleteRecord(readingRecordId: String): Result = runSuspendCatching { + service.deleteRecord(readingRecordId) + } } diff --git a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt index b807df70..6d154dd2 100644 --- a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt +++ b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt @@ -11,6 +11,7 @@ import com.ninecraft.booket.core.network.response.BookUpsertResponse import com.ninecraft.booket.core.network.response.HomeResponse import com.ninecraft.booket.core.network.response.LibraryResponse import com.ninecraft.booket.core.network.response.LoginResponse +import com.ninecraft.booket.core.network.response.ReadingRecord import com.ninecraft.booket.core.network.response.ReadingRecordsResponse import com.ninecraft.booket.core.network.response.RecordDetailResponse import com.ninecraft.booket.core.network.response.RecordRegisterResponse @@ -21,6 +22,7 @@ import com.ninecraft.booket.core.network.response.UserProfileResponse import retrofit2.http.Body import retrofit2.http.DELETE import retrofit2.http.GET +import retrofit2.http.PATCH import retrofit2.http.POST import retrofit2.http.PUT import retrofit2.http.Path @@ -103,6 +105,17 @@ interface ReedService { @Path("readingRecordId") readingRecordId: String, ): RecordDetailResponse + @PATCH("api/v1/reading-records/{readingRecordId}") + suspend fun editRecord( + @Path("readingRecordId") readingRecordId: String, + @Body recordRegisterRequest: RecordRegisterRequest, + ): ReadingRecord + + @DELETE("api/v1/reading-records/{readingRecordId}") + suspend fun deleteRecord( + @Path("readingRecordId") readingRecordId: String, + ) + // Home (auth required) @GET("api/v1/home") suspend fun getHome( From 329a3c2ecb02651e3530bd28036f0e0b8660aa02 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 20:47:28 +0900 Subject: [PATCH 004/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EC=95=BD=EA=B4=80?= =?UTF-8?q?=20=EB=8F=99=EC=9D=98=20=ED=99=94=EB=A9=B4=20=EA=B0=84=EA=B2=A9?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ninecraft/booket/feature/termsagreement/TermsAgreementUi.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementUi.kt b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementUi.kt index 3d3068d8..f017165f 100644 --- a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementUi.kt +++ b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementUi.kt @@ -59,7 +59,7 @@ internal fun TermsAgreementUi( color = ReedTheme.colors.contentPrimary, style = ReedTheme.typography.title2SemiBold, ) - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing4)) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing7)) Row( modifier = Modifier .fillMaxWidth() From 93447c9d81cb80f566b72c0b0aaed7c7775eb0ba Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 21:35:11 +0900 Subject: [PATCH 005/107] =?UTF-8?q?[BOOK-264]=20fix:=20Button=20=EC=82=AC?= =?UTF-8?q?=EC=9D=B4=EC=A6=88=20=EA=B0=80=EC=9D=B4=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designsystem/component/button/ButtonSizeStyle.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/button/ButtonSizeStyle.kt b/core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/button/ButtonSizeStyle.kt index 2bce40a1..7f0510b4 100644 --- a/core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/button/ButtonSizeStyle.kt +++ b/core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/button/ButtonSizeStyle.kt @@ -19,7 +19,7 @@ val largeButtonStyle: ButtonSizeStyle @Composable get() = ButtonSizeStyle( paddingValues = PaddingValues( horizontal = ReedTheme.spacing.spacing5, - vertical = ReedTheme.spacing.spacing3, + vertical = 14.dp, ), radius = ReedTheme.radius.sm, textStyle = ReedTheme.typography.body1Medium, @@ -36,7 +36,7 @@ val mediumButtonStyle: ButtonSizeStyle radius = ReedTheme.radius.sm, textStyle = ReedTheme.typography.label1Medium, iconSpacing = ReedTheme.spacing.spacing1, - iconSize = 24.dp, + iconSize = 22.dp, ) val smallButtonStyle: ButtonSizeStyle @@ -48,7 +48,7 @@ val smallButtonStyle: ButtonSizeStyle radius = ReedTheme.radius.xs, textStyle = ReedTheme.typography.label1Medium, iconSpacing = ReedTheme.spacing.spacing1, - iconSize = 22.dp, + iconSize = 18.dp, ) val largeRoundedButtonStyle: ButtonSizeStyle @@ -72,7 +72,7 @@ val mediumRoundedButtonStyle: ButtonSizeStyle radius = ReedTheme.radius.full, textStyle = ReedTheme.typography.label1Medium, iconSpacing = ReedTheme.spacing.spacing1, - iconSize = 24.dp, + iconSize = 22.dp, ) val smallRoundedButtonStyle: ButtonSizeStyle @@ -84,5 +84,5 @@ val smallRoundedButtonStyle: ButtonSizeStyle radius = ReedTheme.radius.full, textStyle = ReedTheme.typography.label1Medium, iconSpacing = ReedTheme.spacing.spacing1, - iconSize = 22.dp, + iconSize = 18.dp, ) From 108058b88b9938ae4170626e0f1e3e9be170662c Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 21:48:26 +0900 Subject: [PATCH 006/107] =?UTF-8?q?[BOOK-264]=20fix:=20ReedDialog=20?= =?UTF-8?q?=EA=B0=84=EA=B2=A9=20=EC=A1=B0=EA=B1=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/core/ui/component/ReedDialog.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedDialog.kt b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedDialog.kt index c24ee2a6..d82b136c 100644 --- a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedDialog.kt +++ b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedDialog.kt @@ -70,7 +70,10 @@ fun ReedDialog( textAlign = TextAlign.Center, style = ReedTheme.typography.headline1SemiBold, ) - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) + + if (!description.isNullOrEmpty()) { + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) + } } description?.let { Text( From 86c3e38e058e4571ecfccca3ba5e9720a3fc0efa Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 22:15:13 +0900 Subject: [PATCH 007/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EB=8F=84=EC=84=9C?= =?UTF-8?q?=20=EA=B2=80=EC=83=89=20=ED=99=94=EB=A9=B4=20=EB=94=94=ED=85=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/search/book/BookSearchUi.kt | 10 ++-------- .../booket/feature/search/book/component/BookItem.kt | 12 ++++++++---- .../search/book/component/BookRegisterBottomSheet.kt | 3 ++- .../book/component/BookRegisterSuccessBottomSheet.kt | 3 ++- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt index 28b8ea15..eac26cdd 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt @@ -104,14 +104,8 @@ internal fun SearchContent( searchIconTint = ReedTheme.colors.contentBrand, ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing5)) - - ReedDivider( - modifier = Modifier - .fillMaxWidth() - .height(ReedTheme.spacing.spacing2), - ) - - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing4)) + ReedDivider() + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) when (state.uiState) { is UiState.Loading -> { diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookItem.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookItem.kt index 1c8b1820..59dcdba8 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookItem.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookItem.kt @@ -24,6 +24,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.component.NetworkImage import com.ninecraft.booket.core.designsystem.theme.ReedTheme @@ -95,10 +96,13 @@ fun BookItem( text = book.title, color = titleColor, overflow = TextOverflow.Ellipsis, - maxLines = 1, - style = ReedTheme.typography.body1SemiBold, + maxLines = 2, + style = ReedTheme.typography.body1SemiBold.copy( + lineHeight = 16.sp * 1.4f, + letterSpacing = 16.sp * 0.01f, + ), ) - Spacer(Modifier.height(ReedTheme.spacing.spacing1)) + Spacer(Modifier.height(ReedTheme.spacing.spacing2)) BoxWithConstraints(modifier = Modifier.fillMaxWidth()) { val authorMaxWidth = maxWidth * 0.7f @@ -141,7 +145,7 @@ private fun BookItemPreview() { ReedTheme { BookItem( book = BookSummaryModel( - title = "여름은 오래 그곳에 남아", + title = "여름은 오래 그곳에 남아 여름은 오래 그곳에 남아 여름은 오래 그곳에 남아 여름은 오래 그곳에 남아", author = "마쓰이에 마사시 마쓰이에 마사시", publisher = "비채", coverImageUrl = "https://example.com/sample-book-cover.jpg", diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookRegisterBottomSheet.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookRegisterBottomSheet.kt index ada10a33..cd6cc348 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookRegisterBottomSheet.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookRegisterBottomSheet.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.common.constants.BookStatus import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.ui.component.ReedBottomSheet @@ -139,7 +140,7 @@ fun RowScope.BookStatusItem( interactionSource = remember { MutableInteractionSource() }, onClick = onClick, ) - .padding(vertical = ReedTheme.spacing.spacing3), + .padding(vertical = 14.dp), contentAlignment = Alignment.Center, ) { Text( diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookRegisterSuccessBottomSheet.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookRegisterSuccessBottomSheet.kt index 7235f724..dd34726a 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookRegisterSuccessBottomSheet.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/component/BookRegisterSuccessBottomSheet.kt @@ -51,12 +51,13 @@ fun BookRegisterSuccessBottomSheet( ), horizontalAlignment = Alignment.CenterHorizontally, ) { + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing3)) Image( painter = painterResource(R.drawable.img_book_register_complete), contentDescription = "Book Register Complete Image", modifier = Modifier.height(120.dp), ) - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing1)) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing5)) Text( text = stringResource(R.string.book_register_success_title), modifier = Modifier.fillMaxWidth(), From 16cddb40fecfb24488749506c82f42e1d463dc1b Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 22:23:38 +0900 Subject: [PATCH 008/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EB=82=B4=EC=84=9C?= =?UTF-8?q?=EC=9E=AC=20=ED=99=94=EB=A9=B4=20=EB=94=94=ED=85=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/feature/library/LibraryUi.kt | 1 + .../booket/feature/library/component/FilterChip.kt | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt index 32be5462..aab9fce8 100644 --- a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt +++ b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt @@ -97,6 +97,7 @@ internal fun LibraryContent( state.eventSink(LibraryUiEvent.OnFilterClick(status)) }, ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing1)) when (state.uiState) { is UiState.Idle -> { diff --git a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/component/FilterChip.kt b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/component/FilterChip.kt index fe0fe4f4..0e9f1a65 100644 --- a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/component/FilterChip.kt +++ b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/component/FilterChip.kt @@ -30,7 +30,9 @@ fun FilterChip( modifier: Modifier = Modifier, ) { val chipColor = if (isSelected) ReedTheme.colors.bgPrimary else ReedTheme.colors.basePrimary - val textColor = if (isSelected) White else ReedTheme.colors.contentSecondary + val labelColor = if (isSelected) White else ReedTheme.colors.contentSecondary + val countColor = if (isSelected) White else ReedTheme.colors.contentTertiary + val labelStyle = if (isSelected) ReedTheme.typography.label1SemiBold else ReedTheme.typography.label1Medium Box( modifier = modifier @@ -59,13 +61,13 @@ fun FilterChip( Row(verticalAlignment = Alignment.CenterVertically) { Text( text = stringResource(option.getDisplayNameRes()), - color = textColor, - style = ReedTheme.typography.label1SemiBold, + color = labelColor, + style = labelStyle, ) Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing1)) Text( text = "$count", - color = textColor, + color = countColor, style = ReedTheme.typography.label1SemiBold, ) } From f3b992c549f715478637e066330433fbddf55f0e Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 22:26:49 +0900 Subject: [PATCH 009/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EB=82=B4=EC=84=9C?= =?UTF-8?q?=EC=9E=AC=20=EA=B2=80=EC=83=89=20=ED=99=94=EB=A9=B4=20=EB=94=94?= =?UTF-8?q?=ED=85=8C=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/search/library/LibrarySearchUi.kt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt index b40cb66e..8cbdf99d 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt @@ -86,12 +86,8 @@ internal fun LibrarySearchContent( borderStroke = null, ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing5)) - ReedDivider( - modifier = Modifier - .fillMaxWidth() - .height(ReedTheme.spacing.spacing2), - ) - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing4)) + ReedDivider() + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) when (state.uiState) { is UiState.Loading -> { From 875744e9707c52edb1f74aadb81c16df5d12b8e7 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 22:47:37 +0900 Subject: [PATCH 010/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EB=93=B1=EB=A1=9D=20=EB=94=94=ED=85=8C=EC=9D=BC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt | 6 +++++- .../booket/feature/record/ocr/component/SentenceBox.kt | 3 ++- .../com/ninecraft/booket/feature/record/step/EmotionStep.kt | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 2f24a26e..4d5e0857 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -313,9 +313,13 @@ private fun TextScanResult( LazyColumn( modifier = Modifier .weight(1f) - .padding(horizontal = ReedTheme.spacing.spacing3), + .padding(horizontal = ReedTheme.spacing.spacing5), verticalArrangement = Arrangement.spacedBy(ReedTheme.spacing.spacing2), ) { + item { + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing1)) + } + items(state.sentenceList.size) { index -> SentenceBox( onClick = { diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/component/SentenceBox.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/component/SentenceBox.kt index 2ecdb7a0..07b39d8f 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/component/SentenceBox.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/component/SentenceBox.kt @@ -26,6 +26,7 @@ fun SentenceBox( val bgColor = if (isSelected) ReedTheme.colors.bgTertiary else ReedTheme.colors.bgSecondary val borderColor = if (isSelected) ReedTheme.colors.borderBrand else Color.Transparent val textColor = if (isSelected) ReedTheme.colors.contentBrand else ReedTheme.colors.contentPrimary + val textStyle = if (isSelected) ReedTheme.typography.body1Medium else ReedTheme.typography.body1Regular Box( modifier = modifier @@ -51,7 +52,7 @@ fun SentenceBox( Text( text = sentence, color = textColor, - style = ReedTheme.typography.body1Regular, + style = textStyle, ) } } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/EmotionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/EmotionStep.kt index 204d2c32..58f22329 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/EmotionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/EmotionStep.kt @@ -74,7 +74,7 @@ fun EmotionStep( ) } item { - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing10)) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) } items(emotionPairs) { pair -> @@ -134,7 +134,7 @@ private fun EmotionItem( ) .then( if (isSelected) Modifier.border( - width = 2.dp, + width = ReedTheme.border.border15, color = ReedTheme.colors.borderBrand, shape = RoundedCornerShape(ReedTheme.radius.md), ) From 210cd2442a84cd2670b356e0fa178834db8512a6 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 15 Aug 2025 23:11:11 +0900 Subject: [PATCH 011/107] =?UTF-8?q?[BOOK-264]=20fix:=20=ED=99=88=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EB=94=94=ED=85=8C=EC=9D=BC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/ninecraft/booket/feature/home/HomeUi.kt | 3 ++- .../booket/feature/home/component/BookCard.kt | 10 +++++----- .../booket/feature/home/component/HomeBanner.kt | 2 ++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt index 7ddc1ab8..094c5955 100644 --- a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt +++ b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt @@ -126,7 +126,7 @@ internal fun HomeContent( onBookRegisterClick = { state.eventSink(HomeUiEvent.OnBookRegisterClick) }, - modifier = Modifier.padding(ReedTheme.spacing.spacing5), + modifier = Modifier.padding(horizontal = ReedTheme.spacing.spacing5), ) } else { val pagerState = rememberPagerState(pageCount = { state.recentBooks.size }) @@ -190,6 +190,7 @@ private fun HomePreview() { ReedTheme { HomeUi( state = HomeUiState( + uiState = UiState.Success, eventSink = {}, ), ) diff --git a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/BookCard.kt b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/BookCard.kt index 05b11ec3..75851327 100644 --- a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/BookCard.kt +++ b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/BookCard.kt @@ -158,14 +158,14 @@ fun BookCard( } .padding( horizontal = ReedTheme.spacing.spacing3, - vertical = ReedTheme.spacing.spacing2, + vertical = 9.dp, ), verticalAlignment = Alignment.CenterVertically, ) { Image( painter = painterResource(R.drawable.img_seed_count), contentDescription = "Seed Count Image", - modifier = Modifier.size(32.dp), + modifier = Modifier.size(ReedTheme.spacing.spacing7), ) Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing1)) Text( @@ -224,8 +224,8 @@ fun EmptyBookCard( shape = RoundedCornerShape(ReedTheme.radius.sm), ) .border( - width = 1.dp, - color = ReedTheme.colors.borderSecondary, + width = ReedTheme.border.border1, + color = ReedTheme.colors.borderPrimary, shape = RoundedCornerShape(ReedTheme.radius.sm), ) .padding( @@ -253,7 +253,7 @@ fun EmptyBookCard( color = ReedTheme.colors.contentTertiary, style = ReedTheme.typography.label1Medium, ) - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing5)) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) ReedButton( onClick = { onBookRegisterClick() diff --git a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/HomeBanner.kt b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/HomeBanner.kt index 5ce5ed1b..3b140709 100644 --- a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/HomeBanner.kt +++ b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/HomeBanner.kt @@ -73,9 +73,11 @@ fun HomeBanner( color = ReedTheme.colors.contentBrand, style = ReedTheme.typography.body2Medium, ) + Spacer(modifier = Modifier.size(ReedTheme.spacing.spacing1)) Icon( imageVector = ImageVector.vectorResource(id = designR.drawable.ic_chevron_right), contentDescription = "Chevron Right Icon", + modifier = Modifier.size(ReedTheme.spacing.spacing5), tint = ReedTheme.colors.contentBrand, ) } From 83aa432d0f07d7d38b77a377746914bd4aa3aca0 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Sat, 16 Aug 2025 01:16:06 +0900 Subject: [PATCH 012/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EB=8F=84=EC=84=9C?= =?UTF-8?q?=20=EC=83=81=EC=84=B8=20=ED=99=94=EB=A9=B4=20=EB=94=94=ED=85=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/detail/book/BookDetailUi.kt | 6 ++--- .../feature/detail/book/component/BookItem.kt | 1 + .../book/component/ReadingRecordsHeader.kt | 2 ++ .../detail/book/component/RecordItem.kt | 3 ++- .../book/component/RecordSortBottomSheet.kt | 25 +++++++++++++------ .../feature/detail/book/component/SeedItem.kt | 4 +-- 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt index 35ec50ee..189505ac 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt @@ -35,7 +35,7 @@ import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.component.ReedDivider import com.ninecraft.booket.core.designsystem.component.button.ReedButton import com.ninecraft.booket.core.designsystem.component.button.ReedButtonColorStyle -import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle +import com.ninecraft.booket.core.designsystem.component.button.mediumButtonStyle import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.model.BookDetailModel import com.ninecraft.booket.core.ui.ReedScaffold @@ -181,7 +181,7 @@ internal fun BookDetailContent( BookStatus.fromValue(state.bookDetail.userBookStatus)?.getDisplayNameRes() ?: BookStatus.BEFORE_READING.getDisplayNameRes(), ), - sizeStyle = largeButtonStyle, + sizeStyle = mediumButtonStyle, colorStyle = ReedButtonColorStyle.SECONDARY, modifier = Modifier.widthIn(min = 98.dp), trailingIcon = { @@ -199,7 +199,7 @@ internal fun BookDetailContent( state.eventSink(BookDetailUiEvent.OnRegisterRecordButtonClick) }, text = stringResource(R.string.register_book_record), - sizeStyle = largeButtonStyle, + sizeStyle = mediumButtonStyle, colorStyle = ReedButtonColorStyle.PRIMARY, modifier = Modifier.weight(1f), ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookItem.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookItem.kt index da452ed5..9925556a 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookItem.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookItem.kt @@ -94,6 +94,7 @@ internal fun BookItem( ) } } + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing05)) Text( text = bookDetail.pubDate.formatPublishYear(), color = ReedTheme.colors.contentTertiary, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/ReadingRecordsHeader.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/ReadingRecordsHeader.kt index 658d672a..57c25d97 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/ReadingRecordsHeader.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/ReadingRecordsHeader.kt @@ -46,12 +46,14 @@ internal fun ReadingRecordsHeader( } Row( modifier = Modifier.clickable { onReadingRecordClick() }, + verticalAlignment = Alignment.CenterVertically, ) { Text( text = stringResource(currentRecordSort.getDisplayNameRes()), color = ReedTheme.colors.contentSecondary, style = ReedTheme.typography.label1Medium, ) + Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing1)) Icon( imageVector = ImageVector.vectorResource(designR.drawable.ic_chevron_down), contentDescription = "Dropdown Icon", diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt index c8af70a1..ee770622 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt @@ -64,7 +64,8 @@ internal fun RecordItem( contentDescription = "Emotion Graphic", modifier = Modifier .size(40.dp) - .clip(CircleShape), + .clip(CircleShape) + .background(ReedTheme.colors.basePrimary), ) Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing2)) Column { diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordSortBottomSheet.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordSortBottomSheet.kt index 6f4fa36f..98220e8e 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordSortBottomSheet.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordSortBottomSheet.kt @@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.selection.selectable import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.SheetState import androidx.compose.material3.SheetValue @@ -24,6 +25,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.ui.component.ReedBottomSheet @@ -52,15 +54,13 @@ internal fun RecordSortBottomSheet( ) { Column( modifier = modifier - .padding( - start = ReedTheme.spacing.spacing5, - top = ReedTheme.spacing.spacing5, - end = ReedTheme.spacing.spacing5, - ), + .padding(top = ReedTheme.spacing.spacing5), horizontalAlignment = Alignment.CenterHorizontally, ) { Row( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = ReedTheme.spacing.spacing5), horizontalArrangement = Arrangement.SpaceBetween, ) { Text( @@ -77,12 +77,12 @@ internal fun RecordSortBottomSheet( }, ) } - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing5)) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing3)) Column( modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.Center, ) { - recordSortItems.forEach { item -> + recordSortItems.forEachIndexed { index, item -> RecordSortItem( item = item, selected = item == currentRecordSort, @@ -91,7 +91,16 @@ internal fun RecordSortBottomSheet( onItemSelected(item) } }, + modifier = Modifier.padding(horizontal = ReedTheme.spacing.spacing5), ) + + if (index < recordSortItems.lastIndex) { + HorizontalDivider( + modifier = Modifier.fillMaxWidth(), + thickness = 1.dp, + color = ReedTheme.colors.dividerSm, + ) + } } } } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/SeedItem.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/SeedItem.kt index cd283966..ac9d84d1 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/SeedItem.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/SeedItem.kt @@ -52,14 +52,14 @@ internal fun SeedItem( Text( text = emotion.name.displayName, color = emotion.name.toTextColor(), - style = ReedTheme.typography.body2Medium, + style = ReedTheme.typography.label2SemiBold, ) } Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing1)) Text( text = "${emotion.count}", color = ReedTheme.colors.contentSecondary, - style = ReedTheme.typography.body2Medium, + style = ReedTheme.typography.label2Regular, ) } } From 07af68cbf22534f6d7155c221d006ab1b0911752 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Sat, 16 Aug 2025 01:18:02 +0900 Subject: [PATCH 013/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=83=81=EC=84=B8=20=ED=99=94=EB=A9=B4=20=EB=94=94=ED=85=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/record/component/ReviewBox.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt index 42aa6103..88f56dc0 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt @@ -52,7 +52,8 @@ fun ReviewBox( contentDescription = "Emotion Graphic", modifier = Modifier .size(ReedTheme.spacing.spacing10) - .clip(CircleShape), + .clip(CircleShape) + .background(ReedTheme.colors.basePrimary), ) Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing2)) Text( From 3720fcab03864f0e9974f04006f3073aa355ede9 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Sat, 16 Aug 2025 04:50:31 +0900 Subject: [PATCH 014/107] =?UTF-8?q?[BOOK-260]=20feat:=20=EC=8A=A4=ED=94=8C?= =?UTF-8?q?=EB=9E=98=EC=8B=9C=20=ED=99=94=EB=A9=B4=20=EB=84=A4=ED=8A=B8?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=20=EC=97=B0=EA=B2=B0=20=EC=97=90=EB=9F=AC=20?= =?UTF-8?q?=EB=8C=80=EC=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/core/common/constants/ErrorDialogSpec.kt | 2 +- .../booket/core/common/utils/HandleException.kt | 7 ++++++- core/common/src/main/res/values/strings.xml | 1 + .../com/ninecraft/booket/core/ui/ReedScaffold.kt | 2 +- .../ninecraft/booket/feature/main/MainActivity.kt | 4 +++- .../com/ninecraft/booket/splash/SplashPresenter.kt | 12 ++++++++++-- 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/constants/ErrorDialogSpec.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/constants/ErrorDialogSpec.kt index a6cefa89..33ce49ec 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/constants/ErrorDialogSpec.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/constants/ErrorDialogSpec.kt @@ -2,6 +2,6 @@ package com.ninecraft.booket.core.common.constants data class ErrorDialogSpec( val message: String, - val buttonLabel: String, + val buttonLabelResId: Int, val action: () -> Unit, ) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt index 0920c555..fb2850a2 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt @@ -1,5 +1,7 @@ package com.ninecraft.booket.core.common.utils +import androidx.annotation.StringRes +import com.ninecraft.booket.core.common.R import com.ninecraft.booket.core.common.constants.ErrorDialogSpec import com.ninecraft.booket.core.common.constants.ErrorScope import com.ninecraft.booket.core.common.event.ErrorEvent @@ -46,11 +48,13 @@ fun handleException( fun postErrorDialog( errorScope: ErrorScope, exception: Throwable, + @StringRes buttonLabelResId: Int = R.string.confirm, action: () -> Unit = {}, ) { val spec = buildDialog( scope = errorScope, exception = exception, + buttonLabelResId = buttonLabelResId, action = action, ) @@ -60,6 +64,7 @@ fun postErrorDialog( private fun buildDialog( scope: ErrorScope, exception: Throwable, + @StringRes buttonLabelResId: Int, action: () -> Unit, ): ErrorDialogSpec { val message = when { @@ -92,7 +97,7 @@ private fun buildDialog( } } - return ErrorDialogSpec(message = message, buttonLabel = "확인", action = action) + return ErrorDialogSpec(message = message, buttonLabelResId = buttonLabelResId, action = action) } @Suppress("TooGenericExceptionCaught") diff --git a/core/common/src/main/res/values/strings.xml b/core/common/src/main/res/values/strings.xml index 71ff450b..45506ca4 100644 --- a/core/common/src/main/res/values/strings.xml +++ b/core/common/src/main/res/values/strings.xml @@ -5,4 +5,5 @@ 독서 완료 페이지순 최신 등록순 + 확인 diff --git a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/ReedScaffold.kt b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/ReedScaffold.kt index 3e4f4edd..be8a59c2 100644 --- a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/ReedScaffold.kt +++ b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/ReedScaffold.kt @@ -22,13 +22,13 @@ fun ReedScaffold( content: @Composable (PaddingValues) -> Unit, ) { Scaffold( + modifier = modifier.keyboardHide(), topBar = topBar, bottomBar = bottomBar, snackbarHost = snackbarHost, floatingActionButton = floatingActionButton, containerColor = containerColor, contentWindowInsets = contentWindowInsets, - modifier = modifier.keyboardHide(), ) { innerPadding -> content(innerPadding) } diff --git a/feature/main/src/main/kotlin/com/ninecraft/booket/feature/main/MainActivity.kt b/feature/main/src/main/kotlin/com/ninecraft/booket/feature/main/MainActivity.kt index 4ee9010b..93ad9fcc 100644 --- a/feature/main/src/main/kotlin/com/ninecraft/booket/feature/main/MainActivity.kt +++ b/feature/main/src/main/kotlin/com/ninecraft/booket/feature/main/MainActivity.kt @@ -11,6 +11,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import com.ninecraft.booket.core.common.constants.ErrorDialogSpec import com.ninecraft.booket.core.common.event.ErrorEvent @@ -70,7 +71,8 @@ class MainActivity : ComponentActivity() { dialogSpec.value?.let { spec -> ReedDialog( description = spec.message, - confirmButtonText = spec.buttonLabel, + confirmButtonText = stringResource(spec.buttonLabelResId), + onConfirmRequest = { spec.action() dialogSpec.value = null diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt index ef79f06f..b8715ef5 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt @@ -6,10 +6,13 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.constants.ErrorScope +import com.ninecraft.booket.core.common.utils.postErrorDialog import com.ninecraft.booket.core.data.api.repository.AuthRepository import com.ninecraft.booket.core.data.api.repository.UserRepository import com.ninecraft.booket.core.model.AutoLoginState import com.ninecraft.booket.core.model.OnboardingState +import com.ninecraft.booket.core.ui.R import com.ninecraft.booket.feature.screens.HomeScreen import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.OnboardingScreen @@ -50,8 +53,13 @@ class SplashPresenter @AssistedInject constructor( navigator.resetRoot(LoginScreen) } } - .onFailure { - navigator.resetRoot(LoginScreen) + .onFailure { exception -> + postErrorDialog( + errorScope = ErrorScope.GLOBAL, + exception = exception, + buttonLabelResId = R.string.retry, + action = { checkTermsAgreement() }, + ) } } } From b1645f8ba1647df47cede76db63900d1c680265a Mon Sep 17 00:00:00 2001 From: easyhooon Date: Sat, 16 Aug 2025 05:07:00 +0900 Subject: [PATCH 015/107] =?UTF-8?q?[BOOK-260]=20chore:=20model=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=EB=82=B4=20=EB=88=84=EB=9D=BD=EB=90=9C=20stable=20?= =?UTF-8?q?=EC=96=B4=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/ninecraft/booket/core/model/BookUpsertModel.kt | 3 --- .../com/ninecraft/booket/core/model/ReadingRecordsModel.kt | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/model/src/main/kotlin/com/ninecraft/booket/core/model/BookUpsertModel.kt b/core/model/src/main/kotlin/com/ninecraft/booket/core/model/BookUpsertModel.kt index 40843cef..617f1d11 100644 --- a/core/model/src/main/kotlin/com/ninecraft/booket/core/model/BookUpsertModel.kt +++ b/core/model/src/main/kotlin/com/ninecraft/booket/core/model/BookUpsertModel.kt @@ -1,8 +1,5 @@ package com.ninecraft.booket.core.model -import androidx.compose.runtime.Stable - -@Stable data class BookUpsertModel( val userBookId: String, val userId: String, diff --git a/core/model/src/main/kotlin/com/ninecraft/booket/core/model/ReadingRecordsModel.kt b/core/model/src/main/kotlin/com/ninecraft/booket/core/model/ReadingRecordsModel.kt index f60f2dee..1c6356e1 100644 --- a/core/model/src/main/kotlin/com/ninecraft/booket/core/model/ReadingRecordsModel.kt +++ b/core/model/src/main/kotlin/com/ninecraft/booket/core/model/ReadingRecordsModel.kt @@ -1,5 +1,7 @@ package com.ninecraft.booket.core.model +import androidx.compose.runtime.Stable + data class ReadingRecordsModel( val lastPage: Boolean = true, val totalResults: Int = 0, @@ -8,6 +10,7 @@ data class ReadingRecordsModel( val readingRecords: List = emptyList(), ) +@Stable data class ReadingRecordModel( val id: String = "", val userBookId: String = "", From 12cd888895c2c4fbc63d911d088ec8147a4cec0a Mon Sep 17 00:00:00 2001 From: easyhooon Date: Sat, 16 Aug 2025 16:02:11 +0900 Subject: [PATCH 016/107] [BOOK-260] chore: update oss_licenses.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 라이브러리 의존성 제거 --- .../src/main/assets/oss_licenses.json | 50 +++++++++++++++++++ gradle/libs.versions.toml | 1 - 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/feature/settings/src/main/assets/oss_licenses.json b/feature/settings/src/main/assets/oss_licenses.json index 71d1421f..53acf030 100644 --- a/feature/settings/src/main/assets/oss_licenses.json +++ b/feature/settings/src/main/assets/oss_licenses.json @@ -44,6 +44,56 @@ "license": "Apache License 2.0", "url": "https://github.com/coil-kt/coil" }, + { + "name": "Landscapist", + "license": "Apache License 2.0", + "url": "https://github.com/skydoves/landscapist" + }, + { + "name": "Google Analytics", + "license": "Apache License 2.0", + "url": "https://firebase.google.com/docs/analytics" + }, + { + "name": "Firebase Crashlytics", + "license": "Apache License 2.0", + "url": "https://firebase.google.com/docs/crashlytics" + }, + { + "name": "ML Kit Text Recognition", + "license": "Apache License 2.0", + "url": "https://developers.google.com/ml-kit/vision/text-recognition" + }, + { + "name": "Compose System UI Controller", + "license": "MIT License", + "url": "https://github.com/taehwandev/ComposeExtensions" + }, + { + "name": "Compose Keyboard State", + "license": "MIT License", + "url": "https://github.com/taehwandev/ComposeExtensions" + }, + { + "name": "Lottie Compose", + "license": "Apache License 2.0", + "url": "https://github.com/airbnb/lottie-android" + }, + { + "name": "Kakao SDK", + "license": "Apache License 2.0", + "url": "https://developers.kakao.com/docs/latest/ko/android/getting-started" + }, + { + "name": "Kotlinx Collections Immutable", + "license": "Apache License 2.0", + "url": "https://github.com/Kotlin/kotlinx.collections.immutable" + }, + { + "name": "Compose Shadow", + "license": "MIT license", + "url": "https://github.com/adamglin0/compose-shadow" + }, { "name": "Detekt", "license": "Apache License 2.0", diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 96ee3042..896dd695 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -123,7 +123,6 @@ landscapist-placeholder = { group = "com.github.skydoves", name = "landscapist-p kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization-json" } -kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinx-datetime" } kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinx-collections-immutable" } circuit-foundation = { group = "com.slack.circuit", name = "circuit-foundation", version.ref = "circuit" } From 1401a84698bcae9e05762474b7e49fc53515fdda Mon Sep 17 00:00:00 2001 From: easyhooon Date: Sat, 16 Aug 2025 16:06:13 +0900 Subject: [PATCH 017/107] =?UTF-8?q?[BOOK-260]=20chore:=20license=20?= =?UTF-8?q?=EB=8C=80=EB=AC=B8=EC=9E=90=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- feature/settings/src/main/assets/oss_licenses.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/settings/src/main/assets/oss_licenses.json b/feature/settings/src/main/assets/oss_licenses.json index 53acf030..ce75a00b 100644 --- a/feature/settings/src/main/assets/oss_licenses.json +++ b/feature/settings/src/main/assets/oss_licenses.json @@ -91,7 +91,7 @@ }, { "name": "Compose Shadow", - "license": "MIT license", + "license": "MIT License", "url": "https://github.com/adamglin0/compose-shadow" }, { From 53cd427f3ab1a74d24a2e5b9901371c6d9418412 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Sat, 16 Aug 2025 16:19:05 +0900 Subject: [PATCH 018/107] =?UTF-8?q?[BOOK-260]=20chore:=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=EC=96=B4=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20query?= =?UTF-8?q?=EB=A1=9C=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/search/book/BookSearchPresenter.kt | 2 +- .../com/ninecraft/booket/feature/search/book/BookSearchUi.kt | 4 ++-- .../ninecraft/booket/feature/search/book/BookSearchUiState.kt | 2 +- .../booket/feature/search/library/LibrarySearchUi.kt | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt index 62efcce8..677465fc 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt @@ -158,7 +158,7 @@ class BookSearchPresenter @AssistedInject constructor( } is BookSearchUiEvent.OnSearchClick -> { - val query = event.text.trim() + val query = event.query.trim() if (query.isNotEmpty()) { searchBooks(query = query, startIndex = START_INDEX) } diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt index 28b8ea15..4d0ca231 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt @@ -93,8 +93,8 @@ internal fun SearchContent( ReedTextField( queryState = state.queryState, queryHintRes = designR.string.search_book_hint, - onSearch = { text -> - state.eventSink(BookSearchUiEvent.OnSearchClick(text)) + onSearch = { query -> + state.eventSink(BookSearchUiEvent.OnSearchClick(query)) }, onClear = { state.eventSink(BookSearchUiEvent.OnClearClick) diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt index 3f534a38..edb48186 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt @@ -48,7 +48,7 @@ sealed interface BookSearchUiEvent : CircuitUiEvent { data object OnBackClick : BookSearchUiEvent data class OnRecentSearchClick(val query: String) : BookSearchUiEvent data class OnRecentSearchRemoveClick(val query: String) : BookSearchUiEvent - data class OnSearchClick(val text: String) : BookSearchUiEvent + data class OnSearchClick(val query: String) : BookSearchUiEvent data object OnClearClick : BookSearchUiEvent data class OnBookClick(val isbn13: String) : BookSearchUiEvent data object OnLoadMore : BookSearchUiEvent diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt index b40cb66e..f85a0774 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt @@ -75,8 +75,8 @@ internal fun LibrarySearchContent( ReedTextField( queryState = state.queryState, queryHintRes = R.string.library_search_hint, - onSearch = { text -> - state.eventSink(LibrarySearchUiEvent.OnSearchClick(text)) + onSearch = { query -> + state.eventSink(LibrarySearchUiEvent.OnSearchClick(query)) }, onClear = { state.eventSink(LibrarySearchUiEvent.OnClearClick) From e919ffb0f20cb048f8a81c2fcf5b3bb2a810fd00 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Sat, 16 Aug 2025 16:31:14 +0900 Subject: [PATCH 019/107] =?UTF-8?q?[BOOK-260]=20chore:=20=ED=95=98?= =?UTF-8?q?=EC=9C=84=20=EC=BB=B4=ED=8F=AC=EC=A0=80=EB=B8=94=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20modifier=20=EC=B5=9C=EC=83=81=EC=9C=84=20=EB=B6=80?= =?UTF-8?q?=EB=AA=A8=EA=BA=BC=20=EC=82=AC=EC=9A=A9=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/record/register/RecordRegisterUi.kt | 2 +- .../com/ninecraft/booket/feature/search/book/BookSearchUi.kt | 2 +- .../ninecraft/booket/feature/search/library/LibrarySearchUi.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt index fa7031e8..242b1c84 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt @@ -56,7 +56,7 @@ internal fun RecordRegisterUi( ) RecordProgressBar( currentStep = state.currentStep, - modifier = modifier.padding(horizontal = ReedTheme.spacing.spacing5), + modifier = Modifier.padding(horizontal = ReedTheme.spacing.spacing5), ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing10)) when (state.currentStep) { diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt index 4d0ca231..42d48337 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt @@ -99,7 +99,7 @@ internal fun SearchContent( onClear = { state.eventSink(BookSearchUiEvent.OnClearClick) }, - modifier = modifier.padding(horizontal = ReedTheme.spacing.spacing5), + modifier = Modifier.padding(horizontal = ReedTheme.spacing.spacing5), borderStroke = BorderStroke(width = 1.dp, color = ReedTheme.colors.borderBrand), searchIconTint = ReedTheme.colors.contentBrand, ) diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt index f85a0774..9634eb60 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt @@ -81,7 +81,7 @@ internal fun LibrarySearchContent( onClear = { state.eventSink(LibrarySearchUiEvent.OnClearClick) }, - modifier = modifier.padding(horizontal = ReedTheme.spacing.spacing5), + modifier = Modifier.padding(horizontal = ReedTheme.spacing.spacing5), backgroundColor = ReedTheme.colors.baseSecondary, borderStroke = null, ) From 16e94be161c0b6d0179214b658e25baed68b0ee2 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Sun, 17 Aug 2025 21:46:50 +0900 Subject: [PATCH 020/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EB=82=B4=EC=84=9C?= =?UTF-8?q?=EC=9E=AC=20EmptyView=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20=EC=A4=91?= =?UTF-8?q?=EC=95=99=20=EC=A0=95=EB=A0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt index aab9fce8..982bada8 100644 --- a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt +++ b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt @@ -16,6 +16,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.designsystem.DevicePreview import com.ninecraft.booket.core.designsystem.theme.ReedTheme @@ -169,12 +170,14 @@ private fun EmptyResult() { Text( text = stringResource(R.string.library_empty_book_title), color = ReedTheme.colors.contentPrimary, + textAlign = TextAlign.Center, style = ReedTheme.typography.headline1SemiBold, ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) Text( text = stringResource(R.string.library_empty_book_description), color = ReedTheme.colors.contentSecondary, + textAlign = TextAlign.Center, style = ReedTheme.typography.body1Medium, ) } From 662f53a19551dc06ba8bc18a38120e81f3c6787f Mon Sep 17 00:00:00 2001 From: seoyoon Date: Sun, 17 Aug 2025 21:49:26 +0900 Subject: [PATCH 021/107] =?UTF-8?q?[BOOK-264]=20fix:=20=EC=8A=A4=ED=94=8C?= =?UTF-8?q?=EB=9E=98=EC=8B=9C=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20=EC=A4=91?= =?UTF-8?q?=EC=95=99=20=EC=A0=95=EB=A0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt index 444165a5..536e66ff 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.designsystem.DevicePreview import com.ninecraft.booket.core.designsystem.theme.ReedTheme @@ -68,6 +69,7 @@ fun SplashUi( Text( text = stringResource(R.string.splash_title), color = ReedTheme.colors.contentInverse, + textAlign = TextAlign.Center, style = ReedTheme.typography.heading2SemiBold, ) Spacer(Modifier.height(ReedTheme.spacing.spacing8)) From 0fbfb09e2aa5ae1fa20b670d064702c332c88b40 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Sun, 17 Aug 2025 21:49:57 +0900 Subject: [PATCH 022/107] =?UTF-8?q?[BOOK-264]=20fix:=20BookUpdateBottomShe?= =?UTF-8?q?et=20=EB=94=94=ED=85=8C=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/detail/book/component/BookUpdateBottomSheet.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookUpdateBottomSheet.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookUpdateBottomSheet.kt index d324c67a..35b6554f 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookUpdateBottomSheet.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookUpdateBottomSheet.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.common.constants.BookStatus import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.component.button.ReedButton @@ -140,7 +141,7 @@ fun RowScope.BookStatusItem( interactionSource = remember { MutableInteractionSource() }, onClick = onClick, ) - .padding(vertical = ReedTheme.spacing.spacing3), + .padding(vertical = 14.dp), contentAlignment = Alignment.Center, ) { Text( From d423869450f16786be2a726e09849ba6541486f5 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Sun, 17 Aug 2025 23:46:39 +0900 Subject: [PATCH 023/107] =?UTF-8?q?[BOOK-265]=20chore:=20Icon=20=EB=A6=AC?= =?UTF-8?q?=EC=86=8C=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/drawable/ic_download.xml | 13 +++++++++++++ .../src/main/res/drawable/ic_share_1.xml | 13 +++++++++++++ .../src/main/res/drawable/ic_share_2.xml | 13 +++++++++++++ .../designsystem/src/main/res/drawable/ic_trash.xml | 13 +++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 core/designsystem/src/main/res/drawable/ic_download.xml create mode 100644 core/designsystem/src/main/res/drawable/ic_share_1.xml create mode 100644 core/designsystem/src/main/res/drawable/ic_share_2.xml create mode 100644 core/designsystem/src/main/res/drawable/ic_trash.xml diff --git a/core/designsystem/src/main/res/drawable/ic_download.xml b/core/designsystem/src/main/res/drawable/ic_download.xml new file mode 100644 index 00000000..c2e05988 --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_download.xml @@ -0,0 +1,13 @@ + + + diff --git a/core/designsystem/src/main/res/drawable/ic_share_1.xml b/core/designsystem/src/main/res/drawable/ic_share_1.xml new file mode 100644 index 00000000..f669e045 --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_share_1.xml @@ -0,0 +1,13 @@ + + + diff --git a/core/designsystem/src/main/res/drawable/ic_share_2.xml b/core/designsystem/src/main/res/drawable/ic_share_2.xml new file mode 100644 index 00000000..1c4f1ccf --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_share_2.xml @@ -0,0 +1,13 @@ + + + diff --git a/core/designsystem/src/main/res/drawable/ic_trash.xml b/core/designsystem/src/main/res/drawable/ic_trash.xml new file mode 100644 index 00000000..42fb136d --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_trash.xml @@ -0,0 +1,13 @@ + + + From 6fe16ab185a7cb9e972fecb894b4de6ab643baf2 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Sun, 17 Aug 2025 23:48:53 +0900 Subject: [PATCH 024/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EB=94=94=ED=85=8C=EC=9D=BC=20=EB=A9=94=EB=89=B4=20=EB=B0=94?= =?UTF-8?q?=ED=85=80=EC=8B=9C=ED=8A=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../record/component/RecordMenuBottomSheet.kt | 137 ++++++++++++++++++ .../detail/src/main/res/values/strings.xml | 3 + 2 files changed, 140 insertions(+) create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/RecordMenuBottomSheet.kt diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/RecordMenuBottomSheet.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/RecordMenuBottomSheet.kt new file mode 100644 index 00000000..e89f88d1 --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/RecordMenuBottomSheet.kt @@ -0,0 +1,137 @@ +package com.ninecraft.booket.feature.detail.record.component + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.SheetState +import androidx.compose.material3.SheetValue +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.res.vectorResource +import com.ninecraft.booket.core.common.extensions.noRippleClickable +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.core.ui.component.ReedBottomSheet +import com.ninecraft.booket.feature.detail.R +import com.ninecraft.booket.core.designsystem.R as designR + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun RecordMenuBottomSheet( + onDismissRequest: () -> Unit, + sheetState: SheetState, + onShareRecordClick: () -> Unit, + onEditRecordClick: () -> Unit, + onDeleteRecordClick: () -> Unit, + modifier: Modifier = Modifier, +) { + ReedBottomSheet( + onDismissRequest = { + onDismissRequest() + }, + sheetState = sheetState, + ) { + Column( + modifier = modifier + .padding(top = ReedTheme.spacing.spacing5), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + RecordMenuItem( + iconResId = designR.drawable.ic_share_2, + iconDescription = "Share Icon", + label = stringResource(R.string.record_detail_share), + color = ReedTheme.colors.contentPrimary, + onClick = { onShareRecordClick() }, + ) + HorizontalDivider( + modifier = Modifier.fillMaxWidth(), + thickness = ReedTheme.border.border1, + color = ReedTheme.colors.dividerSm, + ) + RecordMenuItem( + iconResId = designR.drawable.ic_edit_3, + iconDescription = "Edit Icon", + label = stringResource(R.string.record_detail_edit), + color = ReedTheme.colors.contentPrimary, + onClick = { onEditRecordClick() }, + ) + HorizontalDivider( + modifier = Modifier.fillMaxWidth(), + thickness = ReedTheme.border.border1, + color = ReedTheme.colors.dividerSm, + ) + RecordMenuItem( + iconResId = designR.drawable.ic_trash, + iconDescription = "Trash Icon", + label = stringResource(R.string.record_detail_delete), + color = ReedTheme.colors.contentError, + onClick = { onDeleteRecordClick() }, + ) + } + } +} + +@Composable +private fun RecordMenuItem( + iconResId: Int, + iconDescription: String, + label: String, + color: Color, + onClick: () -> Unit, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier + .fillMaxWidth() + .noRippleClickable { + onClick() + } + .padding( + vertical = ReedTheme.spacing.spacing5, + horizontal = ReedTheme.spacing.spacing6, + ), + ) { + Icon( + imageVector = ImageVector.vectorResource(iconResId), + contentDescription = iconDescription, + tint = color, + ) + Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing3)) + Text( + text = label, + color = color, + style = ReedTheme.typography.body1Medium, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@ComponentPreview +@Composable +private fun ChoiceBottomSheetPreview() { + val sheetState = SheetState( + skipPartiallyExpanded = true, + initialValue = SheetValue.Expanded, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + ) + + RecordMenuBottomSheet( + onDismissRequest = {}, + sheetState = sheetState, + onShareRecordClick = {}, + onDeleteRecordClick = {}, + onEditRecordClick = {}, + ) +} diff --git a/feature/detail/src/main/res/values/strings.xml b/feature/detail/src/main/res/values/strings.xml index 6cdc4748..4d6a7be9 100644 --- a/feature/detail/src/main/res/values/strings.xml +++ b/feature/detail/src/main/res/values/strings.xml @@ -10,4 +10,7 @@ 내가 모은 씨앗 첫 기록을 남겨 보세요!\n나만의 아카이브를 만들 수 있어요. 독서 기록 추가 + 공유하기 + 수정하기 + 삭제하기 From 9692b4ec4137f522aed73383bdfe57c087c91258 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Sun, 17 Aug 2025 23:49:16 +0900 Subject: [PATCH 025/107] =?UTF-8?q?[BOOK-265]=20refactor:=20=EA=B0=80?= =?UTF-8?q?=EC=8B=9C=EC=84=B1=20=EB=B3=80=EA=B2=BD=20public=20->=20interna?= =?UTF-8?q?l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/record/component/QuoteBox.kt | 2 +- .../booket/feature/detail/record/component/ReviewBox.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteBox.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteBox.kt index 73043ac4..cf3322b2 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteBox.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteBox.kt @@ -14,7 +14,7 @@ import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.theme.ReedTheme @Composable -fun QuoteBox( +internal fun QuoteBox( quote: String, page: Int, modifier: Modifier = Modifier, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt index 42aa6103..ab5470c5 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt @@ -24,7 +24,7 @@ import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.feature.detail.book.component.getEmotionImageResourceByDisplayName @Composable -fun ReviewBox( +internal fun ReviewBox( emotion: String, createdAt: String, review: String, From 4719351fdaeefe6f5f94caef972eb5d9a5edc420 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 00:13:44 +0900 Subject: [PATCH 026/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=82=AC=EC=A0=9C=20API=20=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/record/RecordDetailPresenter.kt | 62 ++++++++++++++++++- .../feature/detail/record/RecordDetailUi.kt | 42 ++++++++++++- .../detail/record/RecordDetailUiState.kt | 12 +++- .../detail/src/main/res/values/strings.xml | 3 + 4 files changed, 114 insertions(+), 5 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index 9b65abef..b8215678 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -33,6 +33,8 @@ class RecordDetailPresenter @AssistedInject constructor( val scope = rememberCoroutineScope() var uiState by rememberRetained { mutableStateOf(UiState.Idle) } var recordDetailInfo by rememberRetained { mutableStateOf(RecordDetailModel()) } + var isRecordMenuBottomSheetVisible by rememberRetained { mutableStateOf(false) } + var isRecordDeleteDialogVisible by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } fun getRecordDetail(readingRecordId: String) { @@ -62,15 +64,69 @@ class RecordDetailPresenter @AssistedInject constructor( } } + fun deleteRecord(readingRecordId: String, onSuccess: () -> Unit) { + scope.launch { + repository.deleteRecord(readingRecordId = readingRecordId) + .onSuccess { + onSuccess() + } + .onFailure { exception -> + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = RecordDetailSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + onLoginRequired = { + navigator.resetRoot(LoginScreen) + }, + ) + } + } + } + fun handleEvent(event: RecordDetailUiEvent) { when (event) { - RecordDetailUiEvent.OnCloseClicked -> { + RecordDetailUiEvent.OnCloseClick -> { navigator.pop() } - RecordDetailUiEvent.onRetryClick -> { + RecordDetailUiEvent.OnRetryClick -> { getRecordDetail(screen.recordId) } + + RecordDetailUiEvent.OnMoreMenuClick -> { + isRecordMenuBottomSheetVisible = true + } + + RecordDetailUiEvent.OnRecordMenuBottomSheetDismiss -> { + isRecordMenuBottomSheetVisible = false + } + + RecordDetailUiEvent.OnRecordDeleteDialogDismiss -> { + isRecordDeleteDialogVisible = false + } + + RecordDetailUiEvent.OnEditRecordClick -> { + + } + + RecordDetailUiEvent.OnDeleteRecordClick -> { + isRecordMenuBottomSheetVisible = false + isRecordDeleteDialogVisible = true + } + + RecordDetailUiEvent.OnDelete -> { + isRecordDeleteDialogVisible = false + deleteRecord( + readingRecordId = screen.recordId, + onSuccess = { + navigator.pop() + } + ) + } } } @@ -81,6 +137,8 @@ class RecordDetailPresenter @AssistedInject constructor( return RecordDetailUiState( uiState = uiState, recordDetailInfo = recordDetailInfo, + isRecordMenuBottomSheetVisible = isRecordMenuBottomSheetVisible, + isRecordDeleteDialogVisible = isRecordDeleteDialogVisible, sideEffect = sideEffect, eventSink = ::handleEvent, ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt index 2c32d626..92214da6 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt @@ -15,8 +15,10 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.material3.VerticalDivider +import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -32,9 +34,11 @@ import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.core.model.RecordDetailModel import com.ninecraft.booket.core.ui.ReedScaffold +import com.ninecraft.booket.core.ui.component.ReedDialog import com.ninecraft.booket.core.ui.component.ReedErrorUi import com.ninecraft.booket.core.ui.component.ReedTopAppBar import com.ninecraft.booket.feature.detail.R +import com.ninecraft.booket.feature.detail.record.component.RecordMenuBottomSheet import com.ninecraft.booket.feature.detail.record.component.QuoteBox import com.ninecraft.booket.feature.detail.record.component.ReviewBox import com.ninecraft.booket.feature.screens.RecordDetailScreen @@ -42,12 +46,15 @@ import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent import com.ninecraft.booket.core.designsystem.R as designR +@OptIn(ExperimentalMaterial3Api::class) @CircuitInject(RecordDetailScreen::class, ActivityRetainedComponent::class) @Composable internal fun RecordDetailUi( state: RecordDetailUiState, modifier: Modifier = Modifier, ) { + val bottomSheetState = rememberModalBottomSheetState() + HandleRecordDetailSideEffects( state = state, ) @@ -67,12 +74,45 @@ internal fun RecordDetailUi( startIconRes = designR.drawable.ic_close, startIconDescription = "Close Icon", startIconOnClick = { - state.eventSink(RecordDetailUiEvent.OnCloseClicked) + state.eventSink(RecordDetailUiEvent.OnCloseClick) }, + endIconRes = designR.drawable.ic_more_vertical, + endIconDescription = "More Vertical Icon", + endIconOnClick = { + state.eventSink(RecordDetailUiEvent.OnMoreMenuClick) + } ) ReviewDetailContent(state = state) } } + + if (state.isRecordMenuBottomSheetVisible) { + RecordMenuBottomSheet( + onDismissRequest = { + state.eventSink(RecordDetailUiEvent.OnRecordMenuBottomSheetDismiss) + }, + sheetState = bottomSheetState, + onShareRecordClick = {}, + onEditRecordClick = {}, + onDeleteRecordClick = { + state.eventSink(RecordDetailUiEvent.OnDeleteRecordClick) + }, + ) + } + + if (state.isRecordDeleteDialogVisible) { + ReedDialog( + title = stringResource(R.string.record_delete_dialog_title), + confirmButtonText = stringResource(R.string.record_delete_dialog_delete), + onConfirmRequest = { + state.eventSink(RecordDetailUiEvent.OnDelete) + }, + dismissButtonText = stringResource(R.string.record_delete_dialog_cancel), + onDismissRequest = { + state.eventSink(RecordDetailUiEvent.OnRecordDeleteDialogDismiss) + }, + ) + } } @Composable diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt index a472fc1b..92b1d3be 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt @@ -16,6 +16,8 @@ sealed interface UiState { data class RecordDetailUiState( val uiState: UiState = UiState.Idle, val recordDetailInfo: RecordDetailModel = RecordDetailModel(), + val isRecordMenuBottomSheetVisible: Boolean = false, + val isRecordDeleteDialogVisible: Boolean = false, val sideEffect: RecordDetailSideEffect? = null, val eventSink: (RecordDetailUiEvent) -> Unit, ) : CircuitUiState @@ -29,6 +31,12 @@ sealed interface RecordDetailSideEffect { } sealed interface RecordDetailUiEvent : CircuitUiEvent { - data object OnCloseClicked : RecordDetailUiEvent - data object onRetryClick : RecordDetailUiEvent + data object OnCloseClick : RecordDetailUiEvent + data object OnRetryClick : RecordDetailUiEvent + data object OnMoreMenuClick : RecordDetailUiEvent + data object OnRecordMenuBottomSheetDismiss: RecordDetailUiEvent + data object OnRecordDeleteDialogDismiss: RecordDetailUiEvent + data object OnEditRecordClick : RecordDetailUiEvent + data object OnDeleteRecordClick : RecordDetailUiEvent + data object OnDelete: RecordDetailUiEvent } diff --git a/feature/detail/src/main/res/values/strings.xml b/feature/detail/src/main/res/values/strings.xml index 4d6a7be9..b2c6a66e 100644 --- a/feature/detail/src/main/res/values/strings.xml +++ b/feature/detail/src/main/res/values/strings.xml @@ -13,4 +13,7 @@ 공유하기 수정하기 삭제하기 + 삭제하면 기록을 복구할 수 없어요.\n정말 삭제하시겠어요? + 삭제 + 취소 From c744fcdc8d9097e272c7ec9291d68f487372c658 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 01:53:08 +0900 Subject: [PATCH 027/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EB=8F=85=EC=84=9C?= =?UTF-8?q?=20=EA=B8=B0=EB=A1=9D=20=EC=88=98=EC=A0=95=20=ED=99=94=EB=A9=B4?= =?UTF-8?q?=20UI=20=EA=B5=AC=ED=98=84=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/record/RecordDetailPresenter.kt | 4 +- .../feature/detail/record/RecordDetailUi.kt | 103 ++------- .../detail/record/component/BookItem.kt | 110 ++++++++++ .../detail/record/edit/RecordEditPresenter.kt | 44 ++++ .../detail/record/edit/RecordEditUi.kt | 199 ++++++++++++++++++ .../detail/record/edit/RecordEditUiState.kt | 27 +++ .../booket/feature/screens/Screens.kt | 3 + 7 files changed, 408 insertions(+), 82 deletions(-) create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/BookItem.kt create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditPresenter.kt create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUi.kt create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUiState.kt diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index b8215678..a5793e81 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -11,6 +11,7 @@ import com.ninecraft.booket.core.data.api.repository.RecordRepository import com.ninecraft.booket.core.model.RecordDetailModel import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.RecordDetailScreen +import com.ninecraft.booket.feature.screens.RecordEditScreen import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained @@ -110,7 +111,8 @@ class RecordDetailPresenter @AssistedInject constructor( } RecordDetailUiEvent.OnEditRecordClick -> { - + isRecordMenuBottomSheetVisible = false + navigator.goTo(RecordEditScreen) } RecordDetailUiEvent.OnDeleteRecordClick -> { diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt index 92214da6..3f4ee2af 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt @@ -1,34 +1,23 @@ package com.ninecraft.booket.feature.detail.record import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text -import androidx.compose.material3.VerticalDivider import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.designsystem.ComponentPreview -import com.ninecraft.booket.core.designsystem.component.NetworkImage import com.ninecraft.booket.core.designsystem.component.ReedDivider import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White @@ -38,12 +27,14 @@ import com.ninecraft.booket.core.ui.component.ReedDialog import com.ninecraft.booket.core.ui.component.ReedErrorUi import com.ninecraft.booket.core.ui.component.ReedTopAppBar import com.ninecraft.booket.feature.detail.R -import com.ninecraft.booket.feature.detail.record.component.RecordMenuBottomSheet +import com.ninecraft.booket.feature.detail.record.component.BookItem import com.ninecraft.booket.feature.detail.record.component.QuoteBox +import com.ninecraft.booket.feature.detail.record.component.RecordMenuBottomSheet import com.ninecraft.booket.feature.detail.record.component.ReviewBox import com.ninecraft.booket.feature.screens.RecordDetailScreen import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent +import kotlinx.coroutines.launch import com.ninecraft.booket.core.designsystem.R as designR @OptIn(ExperimentalMaterial3Api::class) @@ -53,7 +44,8 @@ internal fun RecordDetailUi( state: RecordDetailUiState, modifier: Modifier = Modifier, ) { - val bottomSheetState = rememberModalBottomSheetState() + val recordMenuBottomSheetState = rememberModalBottomSheetState() + val coroutineScope = rememberCoroutineScope() HandleRecordDetailSideEffects( state = state, @@ -80,9 +72,9 @@ internal fun RecordDetailUi( endIconDescription = "More Vertical Icon", endIconOnClick = { state.eventSink(RecordDetailUiEvent.OnMoreMenuClick) - } + }, ) - ReviewDetailContent(state = state) + RecordDetailContent(state = state) } } @@ -91,9 +83,14 @@ internal fun RecordDetailUi( onDismissRequest = { state.eventSink(RecordDetailUiEvent.OnRecordMenuBottomSheetDismiss) }, - sheetState = bottomSheetState, + sheetState = recordMenuBottomSheetState, onShareRecordClick = {}, - onEditRecordClick = {}, + onEditRecordClick = { + coroutineScope.launch { + recordMenuBottomSheetState.hide() + state.eventSink(RecordDetailUiEvent.OnEditRecordClick) + } + }, onDeleteRecordClick = { state.eventSink(RecordDetailUiEvent.OnDeleteRecordClick) }, @@ -116,7 +113,7 @@ internal fun RecordDetailUi( } @Composable -private fun ReviewDetailContent( +private fun RecordDetailContent( state: RecordDetailUiState, modifier: Modifier = Modifier, ) { @@ -132,68 +129,12 @@ private fun ReviewDetailContent( } is UiState.Success -> { - Row( - modifier = modifier - .fillMaxWidth() - .padding( - horizontal = ReedTheme.spacing.spacing5, - vertical = ReedTheme.spacing.spacing4, - ), - verticalAlignment = Alignment.CenterVertically, - ) { - NetworkImage( - imageUrl = state.recordDetailInfo.bookCoverImageUrl, - contentDescription = "Book CoverImage", - modifier = Modifier - .padding(end = ReedTheme.spacing.spacing4) - .width(46.dp) - .height(68.dp) - .clip(RoundedCornerShape(size = ReedTheme.radius.xs)), - placeholder = painterResource(designR.drawable.ic_placeholder), - ) - Column(modifier = Modifier.weight(1f)) { - Text( - text = state.recordDetailInfo.bookTitle, - color = ReedTheme.colors.contentPrimary, - overflow = TextOverflow.Ellipsis, - maxLines = 1, - style = ReedTheme.typography.body1SemiBold, - ) - Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing1)) - BoxWithConstraints(modifier = Modifier.fillMaxWidth()) { - val authorMaxWidth = maxWidth * 0.7f - - Row( - modifier = Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - ) { - Text( - text = state.recordDetailInfo.author, - color = ReedTheme.colors.contentTertiary, - overflow = TextOverflow.Ellipsis, - maxLines = 1, - style = ReedTheme.typography.label1Medium, - modifier = Modifier.widthIn(max = authorMaxWidth), - ) - Spacer(Modifier.width(ReedTheme.spacing.spacing1)) - VerticalDivider( - modifier = Modifier.height(14.dp), - thickness = 1.dp, - color = ReedTheme.colors.contentTertiary, - ) - Spacer(Modifier.width(ReedTheme.spacing.spacing1)) - Text( - text = state.recordDetailInfo.bookPublisher, - color = ReedTheme.colors.contentTertiary, - overflow = TextOverflow.Ellipsis, - maxLines = 1, - style = ReedTheme.typography.label1Medium, - modifier = Modifier.weight(1f, fill = false), - ) - } - } - } - } + BookItem( + imageUrl = state.recordDetailInfo.bookCoverImageUrl, + bookTitle = state.recordDetailInfo.bookTitle, + author = state.recordDetailInfo.author, + publisher = state.recordDetailInfo.bookPublisher, + ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) ReedDivider() Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/BookItem.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/BookItem.kt new file mode 100644 index 00000000..98e6d98d --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/BookItem.kt @@ -0,0 +1,110 @@ +package com.ninecraft.booket.feature.detail.record.component + +import androidx.compose.foundation.layout.BoxWithConstraints +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.material3.VerticalDivider +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.R +import com.ninecraft.booket.core.designsystem.component.NetworkImage +import com.ninecraft.booket.core.designsystem.theme.ReedTheme + +@Composable +internal fun BookItem( + imageUrl: String, + bookTitle: String, + author: String, + publisher: String, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier + .fillMaxWidth() + .padding( + horizontal = ReedTheme.spacing.spacing5, + vertical = ReedTheme.spacing.spacing4, + ), + verticalAlignment = Alignment.CenterVertically, + ) { + NetworkImage( + imageUrl = imageUrl, + contentDescription = "Book CoverImage", + modifier = Modifier + .padding(end = ReedTheme.spacing.spacing4) + .width(46.dp) + .height(68.dp) + .clip(RoundedCornerShape(size = ReedTheme.radius.xs)), + placeholder = painterResource(R.drawable.ic_placeholder), + ) + Column(modifier = Modifier.weight(1f)) { + Text( + text = bookTitle, + color = ReedTheme.colors.contentPrimary, + overflow = TextOverflow.Ellipsis, + maxLines = 1, + style = ReedTheme.typography.body1SemiBold, + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing1)) + BoxWithConstraints(modifier = Modifier.fillMaxWidth()) { + val authorMaxWidth = maxWidth * 0.7f + + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = author, + color = ReedTheme.colors.contentTertiary, + overflow = TextOverflow.Ellipsis, + maxLines = 1, + style = ReedTheme.typography.label1Medium, + modifier = Modifier.widthIn(max = authorMaxWidth), + ) + Spacer(Modifier.width(ReedTheme.spacing.spacing1)) + VerticalDivider( + modifier = Modifier.height(14.dp), + thickness = 1.dp, + color = ReedTheme.colors.contentTertiary, + ) + Spacer(Modifier.width(ReedTheme.spacing.spacing1)) + Text( + text = publisher, + color = ReedTheme.colors.contentTertiary, + overflow = TextOverflow.Ellipsis, + maxLines = 1, + style = ReedTheme.typography.label1Medium, + modifier = Modifier.weight(1f, fill = false), + ) + } + } + } + } +} + +@ComponentPreview +@Composable +private fun BookItemPreview() { + ReedTheme { + BookItem( + imageUrl = "", + bookTitle = "여름은 오래 그곳에 남아", + author = "마쓰이에 마사시", + publisher = "비채", + ) + } +} diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditPresenter.kt new file mode 100644 index 00000000..2f66a443 --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditPresenter.kt @@ -0,0 +1,44 @@ +package com.ninecraft.booket.feature.detail.record.edit + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import com.ninecraft.booket.feature.screens.RecordEditScreen +import com.slack.circuit.codegen.annotations.CircuitInject +import com.slack.circuit.retained.rememberRetained +import com.slack.circuit.runtime.Navigator +import com.slack.circuit.runtime.presenter.Presenter +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject +import dagger.hilt.android.components.ActivityRetainedComponent + +class RecordEditPresenter @AssistedInject constructor( + @Assisted private val navigator: Navigator, +) : Presenter { + @Composable + override fun present(): RecordEditUiState { + var sideEffect by rememberRetained { mutableStateOf(null) } + + fun handleEvent(event: RecordEditUiEvent) { + when (event) { + RecordEditUiEvent.OnCloseClick -> { + navigator.pop() + } + } + } + return RecordEditUiState( + sideEffect = sideEffect, + eventSink = ::handleEvent, + ) + } +} + +@CircuitInject(RecordEditScreen::class, ActivityRetainedComponent::class) +@AssistedFactory +fun interface Factory { + fun create( + navigator: Navigator, + ): RecordEditPresenter +} diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUi.kt new file mode 100644 index 00000000..292e025f --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUi.kt @@ -0,0 +1,199 @@ +package com.ninecraft.booket.feature.detail.record.edit + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.text.input.TextFieldLineLimits +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.unit.dp +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.component.button.ReedButton +import com.ninecraft.booket.core.designsystem.component.button.ReedButtonColorStyle +import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle +import com.ninecraft.booket.core.designsystem.component.textfield.ReedRecordTextField +import com.ninecraft.booket.core.designsystem.component.textfield.digitOnlyInputTransformation +import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.core.designsystem.theme.White +import com.ninecraft.booket.core.ui.ReedScaffold +import com.ninecraft.booket.core.ui.component.ReedTopAppBar +import com.ninecraft.booket.feature.detail.R +import com.ninecraft.booket.feature.detail.record.component.BookItem +import com.ninecraft.booket.feature.screens.RecordEditScreen +import com.slack.circuit.codegen.annotations.CircuitInject +import dagger.hilt.android.components.ActivityRetainedComponent +import com.ninecraft.booket.core.designsystem.R as designR + +@CircuitInject(RecordEditScreen::class, ActivityRetainedComponent::class) +@Composable +internal fun RecordEditUi( + state: RecordEditUiState, + modifier: Modifier = Modifier, +) { + ReedScaffold( + modifier = modifier.fillMaxSize(), + containerColor = White, + ) { innerPadding -> + Column( + modifier = modifier + .fillMaxSize() + .padding(innerPadding), + ) { + ReedTopAppBar( + title = "독서 기록 수정", + startIconRes = designR.drawable.ic_close, + startIconDescription = "Close Icon", + startIconOnClick = { + state.eventSink(RecordEditUiEvent.OnCloseClick) + }, + ) + RecordEditContent(state = state) + } + } +} + +@Composable +private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { + BookItem( + imageUrl = "", + bookTitle = "", + author = "", + publisher = "", + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) + HorizontalDivider( + modifier = Modifier.fillMaxWidth(), + thickness = ReedTheme.border.border1, + color = ReedTheme.colors.dividerSm, + ) + Column( + modifier = Modifier + .weight(1f) + .padding(horizontal = ReedTheme.spacing.spacing5) + .verticalScroll(rememberScrollState()), + ) { + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) + Text( + text = "책 페이지", + color = ReedTheme.colors.contentPrimary, + style = ReedTheme.typography.body1Medium, + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) + ReedRecordTextField( + recordState = state.recordPageState, + recordHintRes = R.string.record_detail_edit, + inputTransformation = digitOnlyInputTransformation, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + lineLimits = TextFieldLineLimits.SingleLine, +// isError = state.isPageError, +// errorMessage = stringResource(R.string.quote_step_page_input_error), + onClear = { +// state.eventSink(RecordRegisterUiEvent.OnClearClick) + }, + modifier = Modifier + .fillMaxWidth() + .height(50.dp), + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) + Text( + text = "문장 기록", + color = ReedTheme.colors.contentPrimary, + style = ReedTheme.typography.body1Medium, + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) + ReedRecordTextField( + recordState = state.recordQuoteState, + recordHintRes = R.string.record_detail_edit, + modifier = Modifier + .fillMaxWidth() + .height(140.dp), + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + imeAction = ImeAction.Default, + ), + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) + Text( + text = "감상평", + color = ReedTheme.colors.contentPrimary, + style = ReedTheme.typography.body1Medium, + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) + ReedRecordTextField( + recordState = state.recordImpressionState, + recordHintRes = R.string.record_detail_edit, + modifier = Modifier + .fillMaxWidth() + .height(140.dp), + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + imeAction = ImeAction.Default, + ), + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = "감정", + color = ReedTheme.colors.contentPrimary, + style = ReedTheme.typography.body1Medium, + ) + Spacer(modifier = Modifier.weight(1f)) + Text( + text = "따뜻함", + color = ReedTheme.colors.contentSecondary, + style = ReedTheme.typography.body1Medium, + ) + Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing1)) + Icon( + imageVector = ImageVector.vectorResource(designR.drawable.ic_chevron_right), + contentDescription = "Chevron Right Icon", + tint = ReedTheme.colors.contentSecondary, + ) + } + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing16)) + } + ReedButton( + onClick = {}, + text = "저장하기", + sizeStyle = largeButtonStyle, + colorStyle = ReedButtonColorStyle.PRIMARY, + modifier = Modifier + .fillMaxWidth() + .padding( + horizontal = ReedTheme.spacing.spacing5, + vertical = ReedTheme.spacing.spacing4, + ), + ) +} + +@ComponentPreview +@Composable +private fun RecordEditUiPreview() { + ReedTheme { + RecordEditUi( + state = RecordEditUiState( + eventSink = {}, + ), + ) + } +} diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUiState.kt new file mode 100644 index 00000000..fcaf413b --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUiState.kt @@ -0,0 +1,27 @@ +package com.ninecraft.booket.feature.detail.record.edit + +import androidx.compose.foundation.text.input.TextFieldState +import androidx.compose.runtime.Immutable +import com.slack.circuit.runtime.CircuitUiEvent +import com.slack.circuit.runtime.CircuitUiState +import java.util.UUID + +data class RecordEditUiState( + val recordPageState: TextFieldState = TextFieldState(), + val recordQuoteState: TextFieldState = TextFieldState(), + val recordImpressionState: TextFieldState = TextFieldState(), + val sideEffect: RecordEditSideEffect? = null, + val eventSink: (RecordEditUiEvent) -> Unit, +) : CircuitUiState + +@Immutable +sealed interface RecordEditSideEffect { + data class ShowToast( + val message: String, + private val key: String = UUID.randomUUID().toString(), + ) : RecordEditSideEffect +} + +sealed interface RecordEditUiEvent : CircuitUiEvent { + data object OnCloseClick : RecordEditUiEvent +} diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt index 4c4f1ce9..7947f9bd 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt @@ -44,6 +44,9 @@ data object OcrScreen : ReedScreen(name = "Ocr()") { @Parcelize data class RecordDetailScreen(val recordId: String) : ReedScreen(name = "RecordDetail()") +@Parcelize +data object RecordEditScreen : ReedScreen(name = "RecordEdit()") + @Parcelize data class WebViewScreen( val url: String, From ec6be510ec29d54ee1751526e4ccb2423cc6d989 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 02:42:23 +0900 Subject: [PATCH 028/107] =?UTF-8?q?[BOOK-265]=20chore:=20feature:edit=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 1 + feature/edit/.gitignore | 1 + feature/edit/build.gradle.kts | 23 ++++ .../edit/record}/RecordEditPresenter.kt | 7 +- .../feature/edit/record}/RecordEditUi.kt | 41 ++++--- .../feature/edit/record}/RecordEditUiState.kt | 3 +- .../feature/edit/record/component/BookItem.kt | 110 ++++++++++++++++++ feature/edit/src/main/res/values/strings.xml | 8 ++ settings.gradle.kts | 1 + 9 files changed, 176 insertions(+), 19 deletions(-) create mode 100644 feature/edit/.gitignore create mode 100644 feature/edit/build.gradle.kts rename feature/{detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit => edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record}/RecordEditPresenter.kt (85%) rename feature/{detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit => edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record}/RecordEditUi.kt (85%) rename feature/{detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit => edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record}/RecordEditUiState.kt (89%) create mode 100644 feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/component/BookItem.kt create mode 100644 feature/edit/src/main/res/values/strings.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5b32018e..49baa4fb 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -88,6 +88,7 @@ dependencies { projects.feature.settings, projects.feature.splash, projects.feature.webview, + projects.feature.edit, libs.androidx.activity.compose, libs.androidx.startup, diff --git a/feature/edit/.gitignore b/feature/edit/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/feature/edit/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/edit/build.gradle.kts b/feature/edit/build.gradle.kts new file mode 100644 index 00000000..092b4849 --- /dev/null +++ b/feature/edit/build.gradle.kts @@ -0,0 +1,23 @@ +@file:Suppress("INLINE_FROM_HIGHER_PLATFORM") + +plugins { + alias(libs.plugins.booket.android.feature) + alias(libs.plugins.booket.kotlin.library.serialization) + alias(libs.plugins.kotlin.parcelize) +} + +android { + namespace = "com.ninecraft.booket.feature.edit" +} + +ksp { + arg("circuit.codegen.mode", "hilt") +} + +dependencies { + implementations( + libs.kotlinx.collections.immutable, + + libs.logger, + ) +} diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditPresenter.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt similarity index 85% rename from feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditPresenter.kt rename to feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt index 2f66a443..6f48c577 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditPresenter.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt @@ -1,9 +1,10 @@ -package com.ninecraft.booket.feature.detail.record.edit +package com.ninecraft.booket.feature.edit.record import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue +import com.ninecraft.booket.feature.screens.EmotionEditScreen import com.ninecraft.booket.feature.screens.RecordEditScreen import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained @@ -26,6 +27,10 @@ class RecordEditPresenter @AssistedInject constructor( RecordEditUiEvent.OnCloseClick -> { navigator.pop() } + + RecordEditUiEvent.OnEmotionEditClick -> { + navigator.goTo(EmotionEditScreen) + } } } return RecordEditUiState( diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt similarity index 85% rename from feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUi.kt rename to feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt index 292e025f..27397298 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUi.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt @@ -1,5 +1,6 @@ -package com.ninecraft.booket.feature.detail.record.edit +package com.ninecraft.booket.feature.edit.record +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Row @@ -34,8 +35,8 @@ import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.core.ui.ReedScaffold import com.ninecraft.booket.core.ui.component.ReedTopAppBar -import com.ninecraft.booket.feature.detail.R -import com.ninecraft.booket.feature.detail.record.component.BookItem +import com.ninecraft.booket.feature.edit.R +import com.ninecraft.booket.feature.edit.record.component.BookItem import com.ninecraft.booket.feature.screens.RecordEditScreen import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent @@ -98,7 +99,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) ReedRecordTextField( recordState = state.recordPageState, - recordHintRes = R.string.record_detail_edit, + recordHintRes = R.string.edit_record_page_hint, inputTransformation = digitOnlyInputTransformation, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), lineLimits = TextFieldLineLimits.SingleLine, @@ -120,7 +121,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) ReedRecordTextField( recordState = state.recordQuoteState, - recordHintRes = R.string.record_detail_edit, + recordHintRes = R.string.edit_record_quote_hint, modifier = Modifier .fillMaxWidth() .height(140.dp), @@ -138,7 +139,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) ReedRecordTextField( recordState = state.recordImpressionState, - recordHintRes = R.string.record_detail_edit, + recordHintRes = R.string.edit_record_impression_hint, modifier = Modifier .fillMaxWidth() .height(140.dp), @@ -158,17 +159,23 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { style = ReedTheme.typography.body1Medium, ) Spacer(modifier = Modifier.weight(1f)) - Text( - text = "따뜻함", - color = ReedTheme.colors.contentSecondary, - style = ReedTheme.typography.body1Medium, - ) - Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing1)) - Icon( - imageVector = ImageVector.vectorResource(designR.drawable.ic_chevron_right), - contentDescription = "Chevron Right Icon", - tint = ReedTheme.colors.contentSecondary, - ) + Row( + modifier = Modifier.clickable { + state.eventSink(RecordEditUiEvent.OnEmotionEditClick) + }, + ) { + Text( + text = "따뜻함", + color = ReedTheme.colors.contentSecondary, + style = ReedTheme.typography.body1Medium, + ) + Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing1)) + Icon( + imageVector = ImageVector.vectorResource(designR.drawable.ic_chevron_right), + contentDescription = "Chevron Right Icon", + tint = ReedTheme.colors.contentSecondary, + ) + } } Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing16)) } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUiState.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt similarity index 89% rename from feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUiState.kt rename to feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt index fcaf413b..0729e815 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/edit/RecordEditUiState.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt @@ -1,4 +1,4 @@ -package com.ninecraft.booket.feature.detail.record.edit +package com.ninecraft.booket.feature.edit.record import androidx.compose.foundation.text.input.TextFieldState import androidx.compose.runtime.Immutable @@ -24,4 +24,5 @@ sealed interface RecordEditSideEffect { sealed interface RecordEditUiEvent : CircuitUiEvent { data object OnCloseClick : RecordEditUiEvent + data object OnEmotionEditClick : RecordEditUiEvent } diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/component/BookItem.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/component/BookItem.kt new file mode 100644 index 00000000..f6507f70 --- /dev/null +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/component/BookItem.kt @@ -0,0 +1,110 @@ +package com.ninecraft.booket.feature.edit.record.component + +import androidx.compose.foundation.layout.BoxWithConstraints +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.material3.VerticalDivider +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.R +import com.ninecraft.booket.core.designsystem.component.NetworkImage +import com.ninecraft.booket.core.designsystem.theme.ReedTheme + +@Composable +internal fun BookItem( + imageUrl: String, + bookTitle: String, + author: String, + publisher: String, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier + .fillMaxWidth() + .padding( + horizontal = ReedTheme.spacing.spacing5, + vertical = ReedTheme.spacing.spacing4, + ), + verticalAlignment = Alignment.CenterVertically, + ) { + NetworkImage( + imageUrl = imageUrl, + contentDescription = "Book CoverImage", + modifier = Modifier + .padding(end = ReedTheme.spacing.spacing4) + .width(46.dp) + .height(68.dp) + .clip(RoundedCornerShape(size = ReedTheme.radius.xs)), + placeholder = painterResource(R.drawable.ic_placeholder), + ) + Column(modifier = Modifier.weight(1f)) { + Text( + text = bookTitle, + color = ReedTheme.colors.contentPrimary, + overflow = TextOverflow.Ellipsis, + maxLines = 1, + style = ReedTheme.typography.body1SemiBold, + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing1)) + BoxWithConstraints(modifier = Modifier.fillMaxWidth()) { + val authorMaxWidth = maxWidth * 0.7f + + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = author, + color = ReedTheme.colors.contentTertiary, + overflow = TextOverflow.Ellipsis, + maxLines = 1, + style = ReedTheme.typography.label1Medium, + modifier = Modifier.widthIn(max = authorMaxWidth), + ) + Spacer(Modifier.width(ReedTheme.spacing.spacing1)) + VerticalDivider( + modifier = Modifier.height(14.dp), + thickness = 1.dp, + color = ReedTheme.colors.contentTertiary, + ) + Spacer(Modifier.width(ReedTheme.spacing.spacing1)) + Text( + text = publisher, + color = ReedTheme.colors.contentTertiary, + overflow = TextOverflow.Ellipsis, + maxLines = 1, + style = ReedTheme.typography.label1Medium, + modifier = Modifier.weight(1f, fill = false), + ) + } + } + } + } +} + +@ComponentPreview +@Composable +private fun BookItemPreview() { + ReedTheme { + BookItem( + imageUrl = "", + bookTitle = "여름은 오래 그곳에 남아", + author = "마쓰이에 마사시", + publisher = "비채", + ) + } +} diff --git a/feature/edit/src/main/res/values/strings.xml b/feature/edit/src/main/res/values/strings.xml new file mode 100644 index 00000000..a492eded --- /dev/null +++ b/feature/edit/src/main/res/values/strings.xml @@ -0,0 +1,8 @@ + + + 기록하고 싶은 페이지를 작성해보세요 + 기록하고 싶은 문장을 작성해보세요 + 내용을 입력해주세요. + 문장에 대해 어떤 감정이 드셨나요? + 대표 감정을 한 가지 선택해주세요 + diff --git a/settings.gradle.kts b/settings.gradle.kts index 83e03038..0e41270b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -47,4 +47,5 @@ include( ":feature:settings", ":feature:splash", ":feature:webview", + ":feature:edit" ) From b6e0b6da869d0147e150b0ff2fb576e223b4c3e8 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 02:53:57 +0900 Subject: [PATCH 029/107] =?UTF-8?q?[BOOK-265]=20feat:=20String=20Resource?= =?UTF-8?q?=20=EC=B6=94=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/edit/record/RecordEditUi.kt | 21 +++++++++---------- feature/edit/src/main/res/values/strings.xml | 6 ++++++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt index 27397298..8fe20ddf 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt @@ -21,6 +21,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType @@ -34,7 +35,7 @@ import com.ninecraft.booket.core.designsystem.component.textfield.digitOnlyInput import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.core.ui.ReedScaffold -import com.ninecraft.booket.core.ui.component.ReedTopAppBar +import com.ninecraft.booket.core.ui.component.ReedCloseTopAppBar import com.ninecraft.booket.feature.edit.R import com.ninecraft.booket.feature.edit.record.component.BookItem import com.ninecraft.booket.feature.screens.RecordEditScreen @@ -57,13 +58,11 @@ internal fun RecordEditUi( .fillMaxSize() .padding(innerPadding), ) { - ReedTopAppBar( - title = "독서 기록 수정", - startIconRes = designR.drawable.ic_close, - startIconDescription = "Close Icon", - startIconOnClick = { + ReedCloseTopAppBar( + onClose = { state.eventSink(RecordEditUiEvent.OnCloseClick) }, + title = stringResource(R.string.edit_record_title), ) RecordEditContent(state = state) } @@ -92,7 +91,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { ) { Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) Text( - text = "책 페이지", + text = stringResource(R.string.edit_record_page_label), color = ReedTheme.colors.contentPrimary, style = ReedTheme.typography.body1Medium, ) @@ -114,7 +113,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) Text( - text = "문장 기록", + text = stringResource(R.string.edit_record_quote_label), color = ReedTheme.colors.contentPrimary, style = ReedTheme.typography.body1Medium, ) @@ -132,7 +131,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) Text( - text = "감상평", + text = stringResource(R.string.edit_record_impression_label), color = ReedTheme.colors.contentPrimary, style = ReedTheme.typography.body1Medium, ) @@ -154,7 +153,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { verticalAlignment = Alignment.CenterVertically, ) { Text( - text = "감정", + text = stringResource(R.string.edit_record_emotion_label), color = ReedTheme.colors.contentPrimary, style = ReedTheme.typography.body1Medium, ) @@ -181,7 +180,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { } ReedButton( onClick = {}, - text = "저장하기", + text = stringResource(R.string.edit_record_save), sizeStyle = largeButtonStyle, colorStyle = ReedButtonColorStyle.PRIMARY, modifier = Modifier diff --git a/feature/edit/src/main/res/values/strings.xml b/feature/edit/src/main/res/values/strings.xml index a492eded..0b47e03e 100644 --- a/feature/edit/src/main/res/values/strings.xml +++ b/feature/edit/src/main/res/values/strings.xml @@ -1,8 +1,14 @@ + 독서 기록 수정 + 책 페이지 + 문장 기록 + 감상평 + 감정 기록하고 싶은 페이지를 작성해보세요 기록하고 싶은 문장을 작성해보세요 내용을 입력해주세요. + 저장하기 문장에 대해 어떤 감정이 드셨나요? 대표 감정을 한 가지 선택해주세요 From 7a18514db3fa6469cd8b6b64b3d8ddc40582ae38 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Mon, 18 Aug 2025 03:54:37 +0900 Subject: [PATCH 030/107] =?UTF-8?q?[BOOK-272]=20chore:=20=ED=95=84?= =?UTF-8?q?=EC=9A=94=20=EC=97=86=EB=8A=94=20=EC=96=B4=EB=85=B8=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/ninecraft/booket/core/network/TokenInterceptor.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/TokenInterceptor.kt b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/TokenInterceptor.kt index ad8329cf..a3544d49 100644 --- a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/TokenInterceptor.kt +++ b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/TokenInterceptor.kt @@ -7,7 +7,6 @@ import okhttp3.Response import javax.inject.Inject internal class TokenInterceptor @Inject constructor( - @Suppress("unused") private val tokenDataSource: TokenDataSource, ) : Interceptor { From 52c982b1edafb25b5f85a746c0a3aa81c3f6b730 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Mon, 18 Aug 2025 03:57:26 +0900 Subject: [PATCH 031/107] =?UTF-8?q?[BOOK-272]=20chore:=20ErrorDialogSpec?= =?UTF-8?q?=20@StringRes=20=EC=96=B4=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ninecraft/booket/core/common/constants/ErrorDialogSpec.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/constants/ErrorDialogSpec.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/constants/ErrorDialogSpec.kt index 33ce49ec..270ea48e 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/constants/ErrorDialogSpec.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/constants/ErrorDialogSpec.kt @@ -1,7 +1,9 @@ package com.ninecraft.booket.core.common.constants +import androidx.annotation.StringRes + data class ErrorDialogSpec( val message: String, - val buttonLabelResId: Int, + @StringRes val buttonLabelResId: Int, val action: () -> Unit, ) From 2f278afba73362737936aa1dd36686d4212618d9 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Mon, 18 Aug 2025 04:00:55 +0900 Subject: [PATCH 032/107] =?UTF-8?q?[BOOK-272]=20refactor:=20=EA=B0=81=20fe?= =?UTF-8?q?ature=20=EB=AA=A8=EB=93=88=EB=82=B4=20UiState=20@Immutable=20?= =?UTF-8?q?=EC=96=B4=EB=85=B8=ED=85=8C=EC=9D=B4=EC=85=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ninecraft/booket/feature/detail/book/BookDetailUiState.kt | 1 + .../booket/feature/detail/record/RecordDetailUiState.kt | 1 + .../kotlin/com/ninecraft/booket/feature/home/HomeUiState.kt | 1 + .../com/ninecraft/booket/feature/library/LibraryUiState.kt | 1 + .../ninecraft/booket/feature/search/book/BookSearchUiState.kt | 1 + .../booket/feature/search/library/LibrarySearchUiState.kt | 2 ++ 6 files changed, 7 insertions(+) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt index 09ee36b8..e59f33db 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt @@ -13,6 +13,7 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import java.util.UUID +@Immutable sealed interface UiState { data object Idle : UiState data object Loading : UiState diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt index a472fc1b..7df0cc22 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt @@ -6,6 +6,7 @@ import com.slack.circuit.runtime.CircuitUiEvent import com.slack.circuit.runtime.CircuitUiState import java.util.UUID +@Immutable sealed interface UiState { data object Idle : UiState data object Loading : UiState diff --git a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUiState.kt b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUiState.kt index ca353cde..9b3115ee 100644 --- a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUiState.kt +++ b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUiState.kt @@ -9,6 +9,7 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import java.util.UUID +@Immutable sealed interface UiState { data object Idle : UiState data object Loading : UiState diff --git a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUiState.kt b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUiState.kt index 829a4a43..83675e2a 100644 --- a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUiState.kt +++ b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUiState.kt @@ -10,6 +10,7 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toPersistentList +@Immutable sealed interface UiState { data object Idle : UiState data object Loading : UiState diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt index edb48186..a72f3342 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt @@ -12,6 +12,7 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import java.util.UUID +@Immutable sealed interface UiState { data object Idle : UiState data object Loading : UiState diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUiState.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUiState.kt index f6d2c9f1..e4ecdea2 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUiState.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUiState.kt @@ -1,6 +1,7 @@ package com.ninecraft.booket.feature.search.library import androidx.compose.foundation.text.input.TextFieldState +import androidx.compose.runtime.Immutable import com.ninecraft.booket.core.model.LibraryBookSummaryModel import com.ninecraft.booket.core.ui.component.FooterState import com.slack.circuit.runtime.CircuitUiEvent @@ -9,6 +10,7 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import java.util.UUID +@Immutable sealed interface UiState { data object Idle : UiState data object Loading : UiState From ef9f1442e52c7f7fd22b039255c66bc7c6d32dfe Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 04:00:28 +0900 Subject: [PATCH 033/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=83=81=EC=84=B8=20->=20=EC=88=98=EC=A0=95=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99=20=EC=8B=9C=20?= =?UTF-8?q?args=20=EC=A0=84=EB=8B=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/record/RecordDetailPresenter.kt | 36 ++++++++++----- .../edit/record/RecordEditPresenter.kt | 44 +++++++++++++++--- .../feature/edit/record/RecordEditUi.kt | 45 +++++++++++++------ .../feature/edit/record/RecordEditUiState.kt | 4 ++ feature/edit/src/main/res/values/strings.xml | 1 + .../booket/feature/screens/Screens.kt | 6 ++- .../screens/arguments/RecordEditArgs.kt | 18 ++++++++ 7 files changed, 123 insertions(+), 31 deletions(-) create mode 100644 feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index a5793e81..340c3f9e 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -12,6 +12,7 @@ import com.ninecraft.booket.core.model.RecordDetailModel import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.RecordDetailScreen import com.ninecraft.booket.feature.screens.RecordEditScreen +import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained @@ -112,7 +113,22 @@ class RecordDetailPresenter @AssistedInject constructor( RecordDetailUiEvent.OnEditRecordClick -> { isRecordMenuBottomSheetVisible = false - navigator.goTo(RecordEditScreen) + navigator.goTo( + RecordEditScreen( + RecordEditArgs( + id = recordDetailInfo.id, + userBookId = recordDetailInfo.userBookId, + pageNumber = recordDetailInfo.pageNumber, + quote = recordDetailInfo.quote, + review = recordDetailInfo.review, + emotionTags = recordDetailInfo.emotionTags, + bookTitle = recordDetailInfo.bookTitle, + bookPublisher = recordDetailInfo.bookPublisher, + bookCoverImageUrl = recordDetailInfo.bookCoverImageUrl, + author = recordDetailInfo.author, + ), + ), + ) } RecordDetailUiEvent.OnDeleteRecordClick -> { @@ -126,7 +142,7 @@ class RecordDetailPresenter @AssistedInject constructor( readingRecordId = screen.recordId, onSuccess = { navigator.pop() - } + }, ) } } @@ -145,13 +161,13 @@ class RecordDetailPresenter @AssistedInject constructor( eventSink = ::handleEvent, ) } -} -@CircuitInject(RecordDetailScreen::class, ActivityRetainedComponent::class) -@AssistedFactory -fun interface Factory { - fun create( - screen: RecordDetailScreen, - navigator: Navigator, - ): RecordDetailPresenter + @CircuitInject(RecordDetailScreen::class, ActivityRetainedComponent::class) + @AssistedFactory + fun interface Factory { + fun create( + screen: RecordDetailScreen, + navigator: Navigator, + ): RecordDetailPresenter + } } diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt index 6f48c577..7a5095a1 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt @@ -1,8 +1,12 @@ package com.ninecraft.booket.feature.edit.record +import androidx.compose.foundation.text.input.clearText +import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.runtime.Composable +import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import com.ninecraft.booket.feature.screens.EmotionEditScreen import com.ninecraft.booket.feature.screens.RecordEditScreen @@ -16,10 +20,21 @@ import dagger.assisted.AssistedInject import dagger.hilt.android.components.ActivityRetainedComponent class RecordEditPresenter @AssistedInject constructor( + @Assisted private val screen: RecordEditScreen, @Assisted private val navigator: Navigator, ) : Presenter { @Composable override fun present(): RecordEditUiState { + val recordInfo = screen.recordInfo + val recordPageState = rememberTextFieldState(recordInfo.pageNumber.toString()) + val recordQuoteState = rememberTextFieldState(recordInfo.quote) + val recordImpressionState = rememberTextFieldState(recordInfo.review) + val isPageError by remember { + derivedStateOf { + val page = recordPageState.text.toString().toIntOrNull() ?: 0 + page > MAX_PAGE + } + } var sideEffect by rememberRetained { mutableStateOf(null) } fun handleEvent(event: RecordEditUiEvent) { @@ -28,22 +43,37 @@ class RecordEditPresenter @AssistedInject constructor( navigator.pop() } + RecordEditUiEvent.OnClearClick -> { + recordPageState.clearText() + } + RecordEditUiEvent.OnEmotionEditClick -> { navigator.goTo(EmotionEditScreen) } } } + return RecordEditUiState( + recordInfo = recordInfo, + recordPageState = recordPageState, + recordQuoteState = recordQuoteState, + recordImpressionState = recordImpressionState, + isPageError = isPageError, sideEffect = sideEffect, eventSink = ::handleEvent, ) } -} -@CircuitInject(RecordEditScreen::class, ActivityRetainedComponent::class) -@AssistedFactory -fun interface Factory { - fun create( - navigator: Navigator, - ): RecordEditPresenter + @CircuitInject(RecordEditScreen::class, ActivityRetainedComponent::class) + @AssistedFactory + fun interface Factory { + fun create( + screen: RecordEditScreen, + navigator: Navigator, + ): RecordEditPresenter + } + + companion object { + const val MAX_PAGE = 4032 + } } diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt index 8fe20ddf..1d17669a 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState @@ -35,10 +36,11 @@ import com.ninecraft.booket.core.designsystem.component.textfield.digitOnlyInput import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.core.ui.ReedScaffold -import com.ninecraft.booket.core.ui.component.ReedCloseTopAppBar +import com.ninecraft.booket.core.ui.component.ReedTopAppBar import com.ninecraft.booket.feature.edit.R import com.ninecraft.booket.feature.edit.record.component.BookItem import com.ninecraft.booket.feature.screens.RecordEditScreen +import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent import com.ninecraft.booket.core.designsystem.R as designR @@ -56,13 +58,16 @@ internal fun RecordEditUi( Column( modifier = modifier .fillMaxSize() - .padding(innerPadding), + .padding(innerPadding) + .imePadding(), ) { - ReedCloseTopAppBar( - onClose = { + ReedTopAppBar( + title = stringResource(R.string.edit_record_title), + startIconRes = designR.drawable.ic_close, + startIconDescription = "Close Icon", + startIconOnClick = { state.eventSink(RecordEditUiEvent.OnCloseClick) }, - title = stringResource(R.string.edit_record_title), ) RecordEditContent(state = state) } @@ -72,10 +77,10 @@ internal fun RecordEditUi( @Composable private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { BookItem( - imageUrl = "", - bookTitle = "", - author = "", - publisher = "", + imageUrl = state.recordInfo.bookCoverImageUrl, + bookTitle = state.recordInfo.bookTitle, + author = state.recordInfo.author, + publisher = state.recordInfo.bookPublisher, ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) HorizontalDivider( @@ -102,10 +107,10 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { inputTransformation = digitOnlyInputTransformation, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), lineLimits = TextFieldLineLimits.SingleLine, -// isError = state.isPageError, -// errorMessage = stringResource(R.string.quote_step_page_input_error), + isError = state.isPageError, + errorMessage = stringResource(R.string.edit_record_page_input_error), onClear = { -// state.eventSink(RecordRegisterUiEvent.OnClearClick) + state.eventSink(RecordEditUiEvent.OnClearClick) }, modifier = Modifier .fillMaxWidth() @@ -163,8 +168,10 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { state.eventSink(RecordEditUiEvent.OnEmotionEditClick) }, ) { + val emotion = state.recordInfo.emotionTags.firstOrNull() ?: "" + Text( - text = "따뜻함", + text = emotion, color = ReedTheme.colors.contentSecondary, style = ReedTheme.typography.body1Medium, ) @@ -198,6 +205,18 @@ private fun RecordEditUiPreview() { ReedTheme { RecordEditUi( state = RecordEditUiState( + recordInfo = RecordEditArgs( + id = "", + userBookId = "", + pageNumber = 33, + quote = "소설가들은 늘 소재를 찾아 떠도는 존재 같지만, 실은 그 반대인 경우가 더 잦다.", + review = "감동적이었다.", + emotionTags = listOf("따뜻함"), + bookTitle = "여름은 오래 그곳에 남아", + bookPublisher = "비채", + bookCoverImageUrl = "", + author = "마쓰이에 마사시", + ), eventSink = {}, ), ) diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt index 0729e815..a0f44aad 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt @@ -2,14 +2,17 @@ package com.ninecraft.booket.feature.edit.record import androidx.compose.foundation.text.input.TextFieldState import androidx.compose.runtime.Immutable +import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs import com.slack.circuit.runtime.CircuitUiEvent import com.slack.circuit.runtime.CircuitUiState import java.util.UUID data class RecordEditUiState( + val recordInfo: RecordEditArgs, val recordPageState: TextFieldState = TextFieldState(), val recordQuoteState: TextFieldState = TextFieldState(), val recordImpressionState: TextFieldState = TextFieldState(), + val isPageError: Boolean = false, val sideEffect: RecordEditSideEffect? = null, val eventSink: (RecordEditUiEvent) -> Unit, ) : CircuitUiState @@ -24,5 +27,6 @@ sealed interface RecordEditSideEffect { sealed interface RecordEditUiEvent : CircuitUiEvent { data object OnCloseClick : RecordEditUiEvent + data object OnClearClick : RecordEditUiEvent data object OnEmotionEditClick : RecordEditUiEvent } diff --git a/feature/edit/src/main/res/values/strings.xml b/feature/edit/src/main/res/values/strings.xml index 0b47e03e..d381945a 100644 --- a/feature/edit/src/main/res/values/strings.xml +++ b/feature/edit/src/main/res/values/strings.xml @@ -6,6 +6,7 @@ 감상평 감정 기록하고 싶은 페이지를 작성해보세요 + 해당 책의 마지막 페이지 수를 초과했습니다 기록하고 싶은 문장을 작성해보세요 내용을 입력해주세요. 저장하기 diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt index 7947f9bd..fbbb65b8 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt @@ -1,5 +1,6 @@ package com.ninecraft.booket.feature.screens +import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs import com.slack.circuit.runtime.screen.PopResult import com.slack.circuit.runtime.screen.Screen import kotlinx.parcelize.Parcelize @@ -45,7 +46,10 @@ data object OcrScreen : ReedScreen(name = "Ocr()") { data class RecordDetailScreen(val recordId: String) : ReedScreen(name = "RecordDetail()") @Parcelize -data object RecordEditScreen : ReedScreen(name = "RecordEdit()") +data class RecordEditScreen(val recordInfo: RecordEditArgs) : ReedScreen(name = "RecordEdit()") + +@Parcelize +data object EmotionEditScreen: ReedScreen(name = "EmotionEdit()") @Parcelize data class WebViewScreen( diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt new file mode 100644 index 00000000..4cccba66 --- /dev/null +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt @@ -0,0 +1,18 @@ +package com.ninecraft.booket.feature.screens.arguments + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +data class RecordEditArgs( + val id: String, + val userBookId: String, + val pageNumber: Int, + val quote: String, + val review: String, + val emotionTags: List, + val bookTitle: String, + val bookPublisher: String, + val bookCoverImageUrl: String, + val author: String, +) : Parcelable From 87aaece97f176293360480613bf40d219746db4c Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 05:04:40 +0900 Subject: [PATCH 034/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EA=B0=90=EC=A0=95?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20=ED=99=94=EB=A9=B4=20UI=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../edit/emotion/EmotionEditPresenter.kt | 67 +++++++ .../feature/edit/emotion/EmotionEditUi.kt | 177 ++++++++++++++++++ .../edit/emotion/EmotionEditUiState.kt | 20 ++ .../edit/record/RecordEditPresenter.kt | 11 +- feature/edit/src/main/res/values/strings.xml | 1 + .../booket/feature/screens/Screens.kt | 5 +- 6 files changed, 278 insertions(+), 3 deletions(-) create mode 100644 feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditPresenter.kt create mode 100644 feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt create mode 100644 feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUiState.kt diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditPresenter.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditPresenter.kt new file mode 100644 index 00000000..d97243a5 --- /dev/null +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditPresenter.kt @@ -0,0 +1,67 @@ +package com.ninecraft.booket.feature.edit.emotion + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.derivedStateOf +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.designsystem.EmotionTag +import com.ninecraft.booket.feature.screens.EmotionEditScreen +import com.slack.circuit.codegen.annotations.CircuitInject +import com.slack.circuit.retained.rememberRetained +import com.slack.circuit.runtime.Navigator +import com.slack.circuit.runtime.presenter.Presenter +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject +import dagger.hilt.android.components.ActivityRetainedComponent +import kotlinx.collections.immutable.toPersistentList + +class EmotionEditPresenter @AssistedInject constructor( + @Assisted private val screen: EmotionEditScreen, + @Assisted private val navigator: Navigator, +) : Presenter { + @Composable + override fun present(): EmotionEditUiState { + var selectedEmotion by rememberRetained { mutableStateOf(screen.emotion) } + val emotionTags by rememberRetained { mutableStateOf(EmotionTag.entries.toPersistentList()) } + val isEditButtonEnabled by remember { + derivedStateOf { + selectedEmotion != screen.emotion + } + } + + fun handleEvent(event: EmotionEditUiEvent) { + when (event) { + is EmotionEditUiEvent.OnBackClick -> { + navigator.pop() + } + + is EmotionEditUiEvent.OnSelectEmotion -> { + selectedEmotion = event.emotion + } + + is EmotionEditUiEvent.OnEditButtonClick -> { + navigator.pop(result = EmotionEditScreen.Result(selectedEmotion)) + } + } + } + + return EmotionEditUiState( + selectedEmotion = selectedEmotion, + emotionTags = emotionTags, + isEditButtonEnabled = isEditButtonEnabled, + eventSink = ::handleEvent, + ) + } +} + +@CircuitInject(EmotionEditScreen::class, ActivityRetainedComponent::class) +@AssistedFactory +fun interface Factory { + fun create( + screen: EmotionEditScreen, + navigator: Navigator, + ): EmotionEditPresenter +} diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt new file mode 100644 index 00000000..314c640a --- /dev/null +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt @@ -0,0 +1,177 @@ +package com.ninecraft.booket.feature.edit.emotion + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.ninecraft.booket.core.common.extensions.clickableSingle +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.EmotionTag +import com.ninecraft.booket.core.designsystem.component.button.ReedButton +import com.ninecraft.booket.core.designsystem.component.button.ReedButtonColorStyle +import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle +import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.core.designsystem.theme.White +import com.ninecraft.booket.core.ui.ReedScaffold +import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar +import com.ninecraft.booket.feature.edit.R +import com.ninecraft.booket.feature.screens.EmotionEditScreen +import com.slack.circuit.codegen.annotations.CircuitInject +import dagger.hilt.android.components.ActivityRetainedComponent +import kotlinx.collections.immutable.toPersistentList + +@CircuitInject(EmotionEditScreen::class, ActivityRetainedComponent::class) +@Composable +internal fun EmotionEditUi( + state: EmotionEditUiState, + modifier: Modifier = Modifier, +) { + ReedScaffold( + modifier = modifier.fillMaxSize(), + containerColor = White, + ) { innerPadding -> + Column( + modifier = modifier + .fillMaxSize() + .padding(innerPadding), + ) { + ReedBackTopAppBar( + onBackClick = { + state.eventSink(EmotionEditUiEvent.OnBackClick) + }, + ) + EmotionEditContent(state = state) + } + } +} + +@Composable +private fun EmotionEditContent( + state: EmotionEditUiState, + modifier: Modifier = Modifier, +) { + Column( + modifier = Modifier + .fillMaxSize() + .padding( + start = ReedTheme.spacing.spacing5, + top = ReedTheme.spacing.spacing4, + end = ReedTheme.spacing.spacing5, + ), + ) { + Text( + text = stringResource(R.string.edit_emotion_title), + color = ReedTheme.colors.contentPrimary, + style = ReedTheme.typography.heading1Bold, + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing1)) + Text( + text = stringResource(R.string.edit_emotion_description), + color = ReedTheme.colors.contentTertiary, + style = ReedTheme.typography.label1Medium, + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) + LazyVerticalGrid( + columns = GridCells.Fixed(2), + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.spacedBy(ReedTheme.spacing.spacing3), + horizontalArrangement = Arrangement.spacedBy(ReedTheme.spacing.spacing3), + content = { + items(state.emotionTags) { tag -> + EmotionItem( + emotionTag = tag, + onClick = { + state.eventSink(EmotionEditUiEvent.OnSelectEmotion(tag.label)) + }, + isSelected = state.selectedEmotion == tag.label, + modifier = Modifier.weight(1f), + ) + } + }, + ) + ReedButton( + onClick = { + state.eventSink(EmotionEditUiEvent.OnEditButtonClick) + }, + colorStyle = ReedButtonColorStyle.PRIMARY, + sizeStyle = largeButtonStyle, + modifier = Modifier + .fillMaxWidth() + .padding(vertical = ReedTheme.spacing.spacing4), + enabled = state.isEditButtonEnabled, + text = stringResource(R.string.edit_emotion_edit), + ) + } +} + +@Composable +private fun EmotionItem( + emotionTag: EmotionTag, + onClick: () -> Unit, + isSelected: Boolean, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .height(214.dp) + .background( + color = ReedTheme.colors.bgTertiary, + shape = RoundedCornerShape(ReedTheme.radius.md), + ) + .then( + if (isSelected) Modifier.border( + width = 2.dp, + color = ReedTheme.colors.borderBrand, + shape = RoundedCornerShape(ReedTheme.radius.md), + ) + else Modifier, + ) + .clip(RoundedCornerShape(ReedTheme.radius.md)) + .clickableSingle { + onClick() + }, + contentAlignment = Alignment.Center, + ) { + Image( + painter = painterResource(emotionTag.graphic), + contentDescription = "Emotion Image", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop, + ) + } +} + +@ComponentPreview +@Composable +private fun EmotionEditUiPreview() { + ReedTheme { + val emotionTags = EmotionTag.entries.toPersistentList() + + EmotionEditUi( + state = EmotionEditUiState( + emotionTags = emotionTags, + eventSink = {}, + ), + ) + } +} diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUiState.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUiState.kt new file mode 100644 index 00000000..9849988e --- /dev/null +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUiState.kt @@ -0,0 +1,20 @@ +package com.ninecraft.booket.feature.edit.emotion + +import com.ninecraft.booket.core.designsystem.EmotionTag +import com.slack.circuit.runtime.CircuitUiEvent +import com.slack.circuit.runtime.CircuitUiState +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.persistentListOf + +data class EmotionEditUiState( + val selectedEmotion: String = "", + val isEditButtonEnabled: Boolean = false, + val emotionTags: ImmutableList = persistentListOf(), + val eventSink: (EmotionEditUiEvent) -> Unit, +) : CircuitUiState + +sealed interface EmotionEditUiEvent : CircuitUiEvent { + data object OnBackClick : EmotionEditUiEvent + data class OnSelectEmotion(val emotion: String) : EmotionEditUiEvent + data object OnEditButtonClick : EmotionEditUiEvent +} diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt index 7a5095a1..cd24c06e 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt @@ -11,6 +11,7 @@ import androidx.compose.runtime.setValue import com.ninecraft.booket.feature.screens.EmotionEditScreen import com.ninecraft.booket.feature.screens.RecordEditScreen import com.slack.circuit.codegen.annotations.CircuitInject +import com.slack.circuit.foundation.rememberAnsweringNavigator import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter @@ -25,7 +26,7 @@ class RecordEditPresenter @AssistedInject constructor( ) : Presenter { @Composable override fun present(): RecordEditUiState { - val recordInfo = screen.recordInfo + var recordInfo by rememberRetained { mutableStateOf(screen.recordInfo) } val recordPageState = rememberTextFieldState(recordInfo.pageNumber.toString()) val recordQuoteState = rememberTextFieldState(recordInfo.quote) val recordImpressionState = rememberTextFieldState(recordInfo.review) @@ -37,6 +38,10 @@ class RecordEditPresenter @AssistedInject constructor( } var sideEffect by rememberRetained { mutableStateOf(null) } + val emotionEditNavigator = rememberAnsweringNavigator(navigator) { result -> + recordInfo = recordInfo.copy(emotionTags = listOf(result.emotion)) + } + fun handleEvent(event: RecordEditUiEvent) { when (event) { RecordEditUiEvent.OnCloseClick -> { @@ -48,7 +53,9 @@ class RecordEditPresenter @AssistedInject constructor( } RecordEditUiEvent.OnEmotionEditClick -> { - navigator.goTo(EmotionEditScreen) + val emotion = recordInfo.emotionTags.firstOrNull() ?: "" + + emotionEditNavigator.goTo(EmotionEditScreen(emotion)) } } } diff --git a/feature/edit/src/main/res/values/strings.xml b/feature/edit/src/main/res/values/strings.xml index d381945a..bd99c9a7 100644 --- a/feature/edit/src/main/res/values/strings.xml +++ b/feature/edit/src/main/res/values/strings.xml @@ -12,4 +12,5 @@ 저장하기 문장에 대해 어떤 감정이 드셨나요? 대표 감정을 한 가지 선택해주세요 + 수정하기 diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt index fbbb65b8..766ab37c 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt @@ -49,7 +49,10 @@ data class RecordDetailScreen(val recordId: String) : ReedScreen(name = "RecordD data class RecordEditScreen(val recordInfo: RecordEditArgs) : ReedScreen(name = "RecordEdit()") @Parcelize -data object EmotionEditScreen: ReedScreen(name = "EmotionEdit()") +data class EmotionEditScreen(val emotion: String): ReedScreen(name = "EmotionEdit()") { + @Parcelize + data class Result(val emotion: String) : PopResult +} @Parcelize data class WebViewScreen( From 23a8f32dc10ff7cc315ea00de213215860986ecd Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 05:32:23 +0900 Subject: [PATCH 035/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EB=8F=85=EC=84=9C?= =?UTF-8?q?=20=EA=B8=B0=EB=A1=9D=20=EC=88=98=EC=A0=95=20API=20=EC=97=B0?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../edit/record/HandleRecordEditSideEffect.kt | 23 ++++++ .../edit/record/RecordEditPresenter.kt | 79 ++++++++++++++++++- .../feature/edit/record/RecordEditUi.kt | 9 ++- .../feature/edit/record/RecordEditUiState.kt | 2 + 4 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/HandleRecordEditSideEffect.kt diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/HandleRecordEditSideEffect.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/HandleRecordEditSideEffect.kt new file mode 100644 index 00000000..33f99673 --- /dev/null +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/HandleRecordEditSideEffect.kt @@ -0,0 +1,23 @@ +package com.ninecraft.booket.feature.edit.record + +import android.widget.Toast +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext +import com.skydoves.compose.effects.RememberedEffect + +@Composable +internal fun HandleRecordEditSideEffects( + state: RecordEditUiState, +) { + val context = LocalContext.current + + RememberedEffect(state.sideEffect) { + when (state.sideEffect) { + is RecordEditSideEffect.ShowToast -> { + Toast.makeText(context, state.sideEffect.message, Toast.LENGTH_SHORT).show() + } + + null -> {} + } + } +} diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt index cd24c06e..39af7089 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt @@ -7,9 +7,14 @@ import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.utils.handleException +import com.ninecraft.booket.core.data.api.repository.RecordRepository import com.ninecraft.booket.feature.screens.EmotionEditScreen +import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.RecordEditScreen +import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.foundation.rememberAnsweringNavigator import com.slack.circuit.retained.rememberRetained @@ -19,13 +24,17 @@ import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import dagger.hilt.android.components.ActivityRetainedComponent +import kotlinx.coroutines.launch class RecordEditPresenter @AssistedInject constructor( @Assisted private val screen: RecordEditScreen, @Assisted private val navigator: Navigator, + private val repository: RecordRepository, ) : Presenter { + @Composable override fun present(): RecordEditUiState { + val scope = rememberCoroutineScope() var recordInfo by rememberRetained { mutableStateOf(screen.recordInfo) } val recordPageState = rememberTextFieldState(recordInfo.pageNumber.toString()) val recordQuoteState = rememberTextFieldState(recordInfo.quote) @@ -36,12 +45,66 @@ class RecordEditPresenter @AssistedInject constructor( page > MAX_PAGE } } + val hasChanges by remember { + derivedStateOf { + val pageChanged = recordPageState.text != recordInfo.pageNumber.toString() + val quoteChanged = recordQuoteState.text != recordInfo.quote + val impressionChanged = recordImpressionState.text != recordInfo.review + val emotionChanged = recordInfo.emotionTags != screen.recordInfo.emotionTags + pageChanged || quoteChanged || impressionChanged || emotionChanged + } + } + val isSaveButtonEnabled by remember { + derivedStateOf { + recordPageState.text.isNotEmpty() && + recordQuoteState.text.isNotEmpty() && + recordImpressionState.text.isNotEmpty() && + !isPageError && + hasChanges + } + } var sideEffect by rememberRetained { mutableStateOf(null) } val emotionEditNavigator = rememberAnsweringNavigator(navigator) { result -> recordInfo = recordInfo.copy(emotionTags = listOf(result.emotion)) } + fun editRecord( + readingRecordId: String, + userBookId: String, + pageNumber: Int, + quote: String, + emotionTags: List, + impression: String, + onSuccess: () -> Unit = {}, + ) { + scope.launch { + repository.editRecord( + readingRecordId = readingRecordId, + userBookId = userBookId, + pageNumber = pageNumber, + quote = quote, + emotionTags = emotionTags, + review = impression, + ).onSuccess { + onSuccess() + }.onFailure { exception -> + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = RecordEditSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + onLoginRequired = { + navigator.resetRoot(LoginScreen) + }, + ) + } + } + } + fun handleEvent(event: RecordEditUiEvent) { when (event) { RecordEditUiEvent.OnCloseClick -> { @@ -54,9 +117,22 @@ class RecordEditPresenter @AssistedInject constructor( RecordEditUiEvent.OnEmotionEditClick -> { val emotion = recordInfo.emotionTags.firstOrNull() ?: "" - emotionEditNavigator.goTo(EmotionEditScreen(emotion)) } + + RecordEditUiEvent.OnSaveButtonClick -> { + editRecord( + readingRecordId = recordInfo.id, + userBookId = recordInfo.userBookId, + pageNumber = recordPageState.text.toString().toIntOrNull() ?: 0, + quote = recordQuoteState.text.toString(), + emotionTags = recordInfo.emotionTags, + impression = recordImpressionState.text.toString(), + onSuccess = { + navigator.pop() + }, + ) + } } } @@ -66,6 +142,7 @@ class RecordEditPresenter @AssistedInject constructor( recordQuoteState = recordQuoteState, recordImpressionState = recordImpressionState, isPageError = isPageError, + isSaveButtonEnabled = isSaveButtonEnabled, sideEffect = sideEffect, eventSink = ::handleEvent, ) diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt index 1d17669a..c9088283 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt @@ -51,6 +51,10 @@ internal fun RecordEditUi( state: RecordEditUiState, modifier: Modifier = Modifier, ) { + HandleRecordEditSideEffects( + state = state, + ) + ReedScaffold( modifier = modifier.fillMaxSize(), containerColor = White, @@ -186,7 +190,9 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing16)) } ReedButton( - onClick = {}, + onClick = { + state.eventSink(RecordEditUiEvent.OnSaveButtonClick) + }, text = stringResource(R.string.edit_record_save), sizeStyle = largeButtonStyle, colorStyle = ReedButtonColorStyle.PRIMARY, @@ -196,6 +202,7 @@ private fun ColumnScope.RecordEditContent(state: RecordEditUiState) { horizontal = ReedTheme.spacing.spacing5, vertical = ReedTheme.spacing.spacing4, ), + enabled = state.isSaveButtonEnabled, ) } diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt index a0f44aad..7094fa0b 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUiState.kt @@ -13,6 +13,7 @@ data class RecordEditUiState( val recordQuoteState: TextFieldState = TextFieldState(), val recordImpressionState: TextFieldState = TextFieldState(), val isPageError: Boolean = false, + val isSaveButtonEnabled: Boolean = false, val sideEffect: RecordEditSideEffect? = null, val eventSink: (RecordEditUiEvent) -> Unit, ) : CircuitUiState @@ -29,4 +30,5 @@ sealed interface RecordEditUiEvent : CircuitUiEvent { data object OnCloseClick : RecordEditUiEvent data object OnClearClick : RecordEditUiEvent data object OnEmotionEditClick : RecordEditUiEvent + data object OnSaveButtonClick : RecordEditUiEvent } From c9708a9c527141becf924789541b42cb55b030e1 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 05:43:35 +0900 Subject: [PATCH 036/107] =?UTF-8?q?[BOOK-265]=20feat:=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=ED=8F=B0=ED=8A=B8=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/record/RecordDetailUi.kt | 8 ++++---- .../detail/record/component/{QuoteBox.kt => QuoteItem.kt} | 6 ++++-- .../record/component/{ReviewBox.kt => ReviewItem.kt} | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) rename feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/{QuoteBox.kt => QuoteItem.kt} (93%) rename feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/{ReviewBox.kt => ReviewItem.kt} (98%) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt index 3f4ee2af..767bb2ff 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt @@ -28,9 +28,9 @@ import com.ninecraft.booket.core.ui.component.ReedErrorUi import com.ninecraft.booket.core.ui.component.ReedTopAppBar import com.ninecraft.booket.feature.detail.R import com.ninecraft.booket.feature.detail.record.component.BookItem -import com.ninecraft.booket.feature.detail.record.component.QuoteBox +import com.ninecraft.booket.feature.detail.record.component.QuoteItem import com.ninecraft.booket.feature.detail.record.component.RecordMenuBottomSheet -import com.ninecraft.booket.feature.detail.record.component.ReviewBox +import com.ninecraft.booket.feature.detail.record.component.ReviewItem import com.ninecraft.booket.feature.screens.RecordDetailScreen import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent @@ -149,7 +149,7 @@ private fun RecordDetailContent( style = ReedTheme.typography.body1Medium, ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) - QuoteBox( + QuoteItem( quote = state.recordDetailInfo.quote, page = state.recordDetailInfo.pageNumber, ) @@ -160,7 +160,7 @@ private fun RecordDetailContent( style = ReedTheme.typography.body1Medium, ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing2)) - ReviewBox( + ReviewItem( emotion = state.recordDetailInfo.emotionTags.getOrNull(0) ?: "", createdAt = state.recordDetailInfo.createdAt, review = state.recordDetailInfo.review, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteBox.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteItem.kt similarity index 93% rename from feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteBox.kt rename to feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteItem.kt index cf3322b2..2e1158f1 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteBox.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/QuoteItem.kt @@ -9,12 +9,13 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextAlign import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.theme.ReedTheme @Composable -internal fun QuoteBox( +internal fun QuoteItem( quote: String, page: Int, modifier: Modifier = Modifier, @@ -43,6 +44,7 @@ internal fun QuoteBox( color = ReedTheme.colors.contentBrand, textAlign = TextAlign.End, style = ReedTheme.typography.label1Medium, + fontStyle = FontStyle.Italic, ) } } @@ -52,7 +54,7 @@ internal fun QuoteBox( @Composable private fun QuoteBoxPreview() { ReedTheme { - QuoteBox( + QuoteItem( quote = "소설가들은 늘 소재를 찾아 떠도는 존재 같지만, 실은 그 반대인 경우가 더 잦다.", page = 99, ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewItem.kt similarity index 98% rename from feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt rename to feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewItem.kt index ab5470c5..068cb32d 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewBox.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/component/ReviewItem.kt @@ -24,7 +24,7 @@ import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.feature.detail.book.component.getEmotionImageResourceByDisplayName @Composable -internal fun ReviewBox( +internal fun ReviewItem( emotion: String, createdAt: String, review: String, @@ -81,7 +81,7 @@ internal fun ReviewBox( @Composable private fun ReviewBoxPreview() { ReedTheme { - ReviewBox( + ReviewItem( emotion = "따뜻함", review = "소설가들은 늘 소재를 찾아 떠도는 존재 같지만, 실은 그 반대인 경우가 더 잦다", createdAt = "2025.06.25", From abc2fbbeb32186f84519339d7901d0ea2c12d835 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 05:58:21 +0900 Subject: [PATCH 037/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EB=8F=84=EC=84=9C?= =?UTF-8?q?=20=EC=83=81=EC=84=B8=20RecordItem=20=EB=94=94=EC=9E=90?= =?UTF-8?q?=EC=9D=B8=20=EB=B3=80=EA=B2=BD=EC=82=AC=ED=95=AD=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/book/component/RecordItem.kt | 62 ++++++++++++------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt index ee770622..6bcb3d4e 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt @@ -13,19 +13,23 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.feature.detail.R import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf +import com.ninecraft.booket.core.designsystem.R as designR @Composable internal fun RecordItem( @@ -47,6 +51,33 @@ internal fun RecordItem( bottom = ReedTheme.spacing.spacing4, ), ) { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + Image( + painter = painterResource(getEmotionImageResourceByDisplayName(emotionTags[0])), + contentDescription = "Emotion Graphic", + modifier = Modifier + .size(ReedTheme.spacing.spacing8) + .clip(CircleShape) + .background(ReedTheme.colors.basePrimary), + ) + Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing2)) + Text( + text = "#${emotionTags[0]}", + color = ReedTheme.colors.contentBrand, + style = ReedTheme.typography.body1SemiBold, + ) + Spacer(modifier = Modifier.weight(1f)) + Icon( + imageVector = ImageVector.vectorResource(designR.drawable.ic_more_vertical), + contentDescription = "More Vertical Icon", + modifier = Modifier.size(ReedTheme.spacing.spacing5), + tint = ReedTheme.colors.contentTertiary, + ) + } + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing3)) Text( text = "\"$quote\"", color = ReedTheme.colors.contentSecondary, @@ -59,32 +90,17 @@ internal fun RecordItem( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically, ) { - Image( - painter = painterResource(getEmotionImageResourceByDisplayName(emotionTags[0])), - contentDescription = "Emotion Graphic", - modifier = Modifier - .size(40.dp) - .clip(CircleShape) - .background(ReedTheme.colors.basePrimary), + Text( + text = createdAt, + color = ReedTheme.colors.contentTertiary, + style = ReedTheme.typography.label1Medium, ) - Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing2)) - Column { - Text( - text = "#${emotionTags[0]}", - color = ReedTheme.colors.contentBrand, - style = ReedTheme.typography.label1SemiBold, - ) - Text( - text = createdAt, - color = ReedTheme.colors.contentTertiary, - style = ReedTheme.typography.caption1Regular, - ) - } Spacer(modifier = Modifier.weight(1f)) Text( text = "${pageNumber}p", - color = ReedTheme.colors.contentBrand, + color = ReedTheme.colors.contentTertiary, style = ReedTheme.typography.body2Medium, + fontStyle = FontStyle.Italic, ) } } @@ -105,7 +121,7 @@ fun getEmotionImageResourceByDisplayName(displayName: String): Int { private fun RecordItemPreview() { ReedTheme { RecordItem( - quote = "", + quote = "소설가들은 늘 소재를 찾아 떠도는 존재 같지만, 실은 그 반대인 경우가 더 잦다.", emotionTags = persistentListOf(), pageNumber = 12, createdAt = "2025.06.25", From 73b8d82fa0a3d760ce3813f22fc03f8e8ee4e704 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 06:31:47 +0900 Subject: [PATCH 038/107] =?UTF-8?q?[BOOK-265]=20feat:=20RecordItem?= =?UTF-8?q?=EC=97=90=20=EA=B8=B0=EB=A1=9D=20=EB=A9=94=EB=89=B4=20=EB=B0=8F?= =?UTF-8?q?=20=EA=B8=B0=EB=8A=A5=20=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/book/BookDetailPresenter.kt | 79 +++++++++++++++++++ .../feature/detail/book/BookDetailUi.kt | 45 +++++++++-- .../feature/detail/book/BookDetailUiState.kt | 9 +++ .../detail/book/component/RecordItem.kt | 37 +++++---- 4 files changed, 150 insertions(+), 20 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 91b3f662..60c4b6d5 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -20,7 +20,9 @@ import com.ninecraft.booket.core.ui.component.FooterState import com.ninecraft.booket.feature.screens.BookDetailScreen import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.RecordDetailScreen +import com.ninecraft.booket.feature.screens.RecordEditScreen import com.ninecraft.booket.feature.screens.RecordScreen +import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained @@ -71,8 +73,11 @@ class BookDetailPresenter @AssistedInject constructor( var currentBookStatus by rememberRetained { mutableStateOf(BookStatus.READING) } var selectedBookStatus by rememberRetained { mutableStateOf(BookStatus.READING) } var currentRecordSort by rememberRetained { mutableStateOf(RecordSort.PAGE_NUMBER_ASC) } + var selectedRecordInfo by rememberRetained { mutableStateOf(ReadingRecordModel()) } var isBookUpdateBottomSheetVisible by rememberRetained { mutableStateOf(false) } var isRecordSortBottomSheetVisible by rememberRetained { mutableStateOf(false) } + var isRecordMenuBottomSheetVisible by rememberRetained { mutableStateOf(false) } + var isRecordDeleteDialogVisible by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } @Suppress("TooGenericExceptionCaught") @@ -182,6 +187,29 @@ class BookDetailPresenter @AssistedInject constructor( } } + fun deleteRecord(readingRecordId: String, onSuccess: () -> Unit) { + scope.launch { + recordRepository.deleteRecord(readingRecordId = readingRecordId) + .onSuccess { + onSuccess() + } + .onFailure { exception -> + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = BookDetailSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + onLoginRequired = { + navigator.resetRoot(LoginScreen) + }, + ) + } + } + } + LaunchedEffect(Unit) { initialLoad() } @@ -230,6 +258,54 @@ class BookDetailPresenter @AssistedInject constructor( isRecordSortBottomSheetVisible = false } + is BookDetailUiEvent.OnRecordMenuClick -> { + selectedRecordInfo = event.selectedRecordInfo + isRecordMenuBottomSheetVisible = true + } + + is BookDetailUiEvent.OnRecordMenuBottomSheetDismiss -> { + isRecordMenuBottomSheetVisible = false + } + + is BookDetailUiEvent.OnRecordDeleteDialogDismiss -> { + isRecordDeleteDialogVisible = false + } + + is BookDetailUiEvent.OnEditRecordClick -> { + isRecordMenuBottomSheetVisible = false + navigator.goTo( + RecordEditScreen( + RecordEditArgs( + id = selectedRecordInfo.id, + userBookId = selectedRecordInfo.userBookId, + pageNumber = selectedRecordInfo.pageNumber, + quote = selectedRecordInfo.quote, + review = selectedRecordInfo.review, + emotionTags = selectedRecordInfo.emotionTags, + bookTitle = selectedRecordInfo.bookTitle, + bookPublisher = selectedRecordInfo.bookPublisher, + bookCoverImageUrl = selectedRecordInfo.bookCoverImageUrl, + author = selectedRecordInfo.author, + ), + ), + ) + } + + is BookDetailUiEvent.OnDeleteRecordClick -> { + isRecordMenuBottomSheetVisible = false + isRecordDeleteDialogVisible = true + } + + is BookDetailUiEvent.OnDelete -> { + isRecordDeleteDialogVisible = false + deleteRecord( + readingRecordId = selectedRecordInfo.id, + onSuccess = { + // TODO: 리스트 업데이트 + }, + ) + } + is BookDetailUiEvent.OnRecordItemClick -> { navigator.goTo(RecordDetailScreen(event.recordId)) } @@ -260,6 +336,9 @@ class BookDetailPresenter @AssistedInject constructor( currentBookStatus = currentBookStatus, selectedBookStatus = selectedBookStatus, currentRecordSort = currentRecordSort, + selectedRecordInfo = selectedRecordInfo, + isRecordMenuBottomSheetVisible = isRecordMenuBottomSheetVisible, + isRecordDeleteDialogVisible = isRecordDeleteDialogVisible, sideEffect = sideEffect, eventSink = ::handleEvent, ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt index 189505ac..113b3b51 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt @@ -30,7 +30,6 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.common.constants.BookStatus -import com.ninecraft.booket.core.common.extensions.toFormattedDate import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.component.ReedDivider import com.ninecraft.booket.core.designsystem.component.button.ReedButton @@ -42,6 +41,7 @@ import com.ninecraft.booket.core.ui.ReedScaffold import com.ninecraft.booket.core.ui.component.InfinityLazyColumn import com.ninecraft.booket.core.ui.component.LoadStateFooter import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar +import com.ninecraft.booket.core.ui.component.ReedDialog import com.ninecraft.booket.core.ui.component.ReedErrorUi import com.ninecraft.booket.feature.detail.R import com.ninecraft.booket.feature.detail.book.component.BookItem @@ -50,6 +50,7 @@ import com.ninecraft.booket.feature.detail.book.component.CollectedSeeds import com.ninecraft.booket.feature.detail.book.component.ReadingRecordsHeader import com.ninecraft.booket.feature.detail.book.component.RecordItem import com.ninecraft.booket.feature.detail.book.component.RecordSortBottomSheet +import com.ninecraft.booket.feature.detail.record.component.RecordMenuBottomSheet import com.ninecraft.booket.feature.screens.BookDetailScreen import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent @@ -66,6 +67,7 @@ internal fun BookDetailUi( ) { val bookUpdateBottomSheetState = rememberModalBottomSheetState() val recordSortBottomSheetState = rememberModalBottomSheetState() + val recordMenuBottomSheetState = rememberModalBottomSheetState() val coroutineScope = rememberCoroutineScope() HandleBookDetailSideEffects( @@ -125,6 +127,39 @@ internal fun BookDetailUi( }, ) } + + if (state.isRecordMenuBottomSheetVisible) { + RecordMenuBottomSheet( + onDismissRequest = { + state.eventSink(BookDetailUiEvent.OnRecordMenuBottomSheetDismiss) + }, + sheetState = recordMenuBottomSheetState, + onShareRecordClick = {}, + onEditRecordClick = { + coroutineScope.launch { + recordMenuBottomSheetState.hide() + state.eventSink(BookDetailUiEvent.OnEditRecordClick) + } + }, + onDeleteRecordClick = { + state.eventSink(BookDetailUiEvent.OnDeleteRecordClick) + }, + ) + } + + if (state.isRecordDeleteDialogVisible) { + ReedDialog( + title = stringResource(R.string.record_delete_dialog_title), + confirmButtonText = stringResource(R.string.record_delete_dialog_delete), + onConfirmRequest = { + state.eventSink(BookDetailUiEvent.OnDelete) + }, + dismissButtonText = stringResource(R.string.record_delete_dialog_cancel), + onDismissRequest = { + state.eventSink(BookDetailUiEvent.OnRecordDeleteDialogDismiss) + }, + ) + } } @Composable @@ -257,10 +292,10 @@ internal fun BookDetailContent( ) { index -> val record = state.readingRecords[index] RecordItem( - quote = record.quote, - emotionTags = record.emotionTags.toImmutableList(), - pageNumber = record.pageNumber, - createdAt = record.createdAt.toFormattedDate(), + recordInfo = record, + onRecordMenuClick = { recordInfo -> + state.eventSink(BookDetailUiEvent.OnRecordMenuClick(recordInfo)) + }, modifier = Modifier .padding( start = ReedTheme.spacing.spacing5, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt index 09ee36b8..c5040818 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt @@ -33,8 +33,11 @@ data class BookDetailUiState( val currentBookStatus: BookStatus = BookStatus.BEFORE_READING, val selectedBookStatus: BookStatus = BookStatus.BEFORE_READING, val currentRecordSort: RecordSort = RecordSort.PAGE_NUMBER_ASC, + val selectedRecordInfo: ReadingRecordModel = ReadingRecordModel(), val isBookUpdateBottomSheetVisible: Boolean = false, val isRecordSortBottomSheetVisible: Boolean = false, + val isRecordMenuBottomSheetVisible: Boolean = false, + val isRecordDeleteDialogVisible: Boolean = false, val sideEffect: BookDetailSideEffect? = null, val eventSink: (BookDetailUiEvent) -> Unit, ) : CircuitUiState { @@ -63,6 +66,12 @@ sealed interface BookDetailUiEvent : CircuitUiEvent { data object OnBookStatusUpdateButtonClick : BookDetailUiEvent data object OnRecordSortBottomSheetDismiss : BookDetailUiEvent data class OnRecordSortItemSelected(val sortType: RecordSort) : BookDetailUiEvent + data class OnRecordMenuClick(val selectedRecordInfo: ReadingRecordModel) : BookDetailUiEvent + data object OnRecordMenuBottomSheetDismiss : BookDetailUiEvent + data object OnRecordDeleteDialogDismiss : BookDetailUiEvent + data object OnEditRecordClick : BookDetailUiEvent + data object OnDeleteRecordClick : BookDetailUiEvent + data object OnDelete : BookDetailUiEvent data class OnRecordItemClick(val recordId: String) : BookDetailUiEvent data object OnLoadMore : BookDetailUiEvent data object OnRetryClick : BookDetailUiEvent diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt index 6bcb3d4e..14475c9a 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt @@ -2,6 +2,7 @@ package com.ninecraft.booket.feature.detail.book.component import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -24,19 +25,18 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextOverflow +import com.ninecraft.booket.core.common.extensions.toFormattedDate import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.core.model.ReadingRecordModel import com.ninecraft.booket.feature.detail.R -import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import com.ninecraft.booket.core.designsystem.R as designR @Composable internal fun RecordItem( - quote: String, - emotionTags: ImmutableList, - pageNumber: Int, - createdAt: String, + recordInfo: ReadingRecordModel, + onRecordMenuClick: (ReadingRecordModel) -> Unit, modifier: Modifier = Modifier, ) { Column( @@ -56,7 +56,7 @@ internal fun RecordItem( verticalAlignment = Alignment.CenterVertically, ) { Image( - painter = painterResource(getEmotionImageResourceByDisplayName(emotionTags[0])), + painter = painterResource(getEmotionImageResourceByDisplayName(recordInfo.emotionTags[0])), contentDescription = "Emotion Graphic", modifier = Modifier .size(ReedTheme.spacing.spacing8) @@ -65,7 +65,7 @@ internal fun RecordItem( ) Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing2)) Text( - text = "#${emotionTags[0]}", + text = "#${recordInfo.emotionTags[0]}", color = ReedTheme.colors.contentBrand, style = ReedTheme.typography.body1SemiBold, ) @@ -73,13 +73,17 @@ internal fun RecordItem( Icon( imageVector = ImageVector.vectorResource(designR.drawable.ic_more_vertical), contentDescription = "More Vertical Icon", - modifier = Modifier.size(ReedTheme.spacing.spacing5), + modifier = Modifier + .size(ReedTheme.spacing.spacing5) + .clickable { + onRecordMenuClick(recordInfo) + }, tint = ReedTheme.colors.contentTertiary, ) } Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing3)) Text( - text = "\"$quote\"", + text = "\"${recordInfo.quote}\"", color = ReedTheme.colors.contentSecondary, overflow = TextOverflow.Ellipsis, maxLines = 4, @@ -91,13 +95,13 @@ internal fun RecordItem( verticalAlignment = Alignment.CenterVertically, ) { Text( - text = createdAt, + text = recordInfo.createdAt.toFormattedDate(), color = ReedTheme.colors.contentTertiary, style = ReedTheme.typography.label1Medium, ) Spacer(modifier = Modifier.weight(1f)) Text( - text = "${pageNumber}p", + text = "${recordInfo.pageNumber}p", color = ReedTheme.colors.contentTertiary, style = ReedTheme.typography.body2Medium, fontStyle = FontStyle.Italic, @@ -121,10 +125,13 @@ fun getEmotionImageResourceByDisplayName(displayName: String): Int { private fun RecordItemPreview() { ReedTheme { RecordItem( - quote = "소설가들은 늘 소재를 찾아 떠도는 존재 같지만, 실은 그 반대인 경우가 더 잦다.", - emotionTags = persistentListOf(), - pageNumber = 12, - createdAt = "2025.06.25", + recordInfo = ReadingRecordModel( + quote = "소설가들은 늘 소재를 찾아 떠도는 존재 같지만, 실은 그 반대인 경우가 더 잦다.", + emotionTags = persistentListOf(), + pageNumber = 12, + createdAt = "2025.06.25", + ), + onRecordMenuClick = {}, ) } } From e6c7b439d1491044aa4f3270cdf861df5337a9c6 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 06:41:42 +0900 Subject: [PATCH 039/107] =?UTF-8?q?[BOOK-265]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C=20=ED=9B=84=20=EB=A6=AC=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/book/BookDetailPresenter.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 60c4b6d5..2d4535c3 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -301,7 +301,9 @@ class BookDetailPresenter @AssistedInject constructor( deleteRecord( readingRecordId = selectedRecordInfo.id, onSuccess = { - // TODO: 리스트 업데이트 + readingRecords = readingRecords + .filterNot { it.id == selectedRecordInfo.id } + .toPersistentList() }, ) } From efa6c9eba9a3b74c072a0ded85e3ba26a5ac8b54 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 06:45:59 +0900 Subject: [PATCH 040/107] =?UTF-8?q?[BOOK-265]=20chore:=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EB=B3=80=EA=B2=BD=20OnMoreMenuClick=20->=20OnRecor?= =?UTF-8?q?dMenuClick?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/record/RecordDetailPresenter.kt | 2 +- .../ninecraft/booket/feature/detail/record/RecordDetailUi.kt | 2 +- .../booket/feature/detail/record/RecordDetailUiState.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index 340c3f9e..7a8c5961 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -99,7 +99,7 @@ class RecordDetailPresenter @AssistedInject constructor( getRecordDetail(screen.recordId) } - RecordDetailUiEvent.OnMoreMenuClick -> { + RecordDetailUiEvent.OnRecordMenuClick -> { isRecordMenuBottomSheetVisible = true } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt index 767bb2ff..6234dab3 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt @@ -71,7 +71,7 @@ internal fun RecordDetailUi( endIconRes = designR.drawable.ic_more_vertical, endIconDescription = "More Vertical Icon", endIconOnClick = { - state.eventSink(RecordDetailUiEvent.OnMoreMenuClick) + state.eventSink(RecordDetailUiEvent.OnRecordMenuClick) }, ) RecordDetailContent(state = state) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt index 92b1d3be..dccd3e55 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt @@ -33,7 +33,7 @@ sealed interface RecordDetailSideEffect { sealed interface RecordDetailUiEvent : CircuitUiEvent { data object OnCloseClick : RecordDetailUiEvent data object OnRetryClick : RecordDetailUiEvent - data object OnMoreMenuClick : RecordDetailUiEvent + data object OnRecordMenuClick : RecordDetailUiEvent data object OnRecordMenuBottomSheetDismiss: RecordDetailUiEvent data object OnRecordDeleteDialogDismiss: RecordDetailUiEvent data object OnEditRecordClick : RecordDetailUiEvent From 64c37c89620a1433757bcf5a2833dee64a0f48f6 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 06:50:28 +0900 Subject: [PATCH 041/107] [BOOK-265] chore: code style check success --- .../booket/feature/detail/record/RecordDetailUi.kt | 2 +- .../booket/feature/detail/record/RecordDetailUiState.kt | 6 +++--- .../ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt | 2 +- .../kotlin/com/ninecraft/booket/feature/screens/Screens.kt | 2 +- settings.gradle.kts | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt index 6234dab3..9f9d89a1 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt @@ -121,7 +121,7 @@ private fun RecordDetailContent( is UiState.Idle -> {} is UiState.Loading -> { Box( - modifier = Modifier.fillMaxSize(), + modifier = modifier.fillMaxSize(), contentAlignment = Alignment.Center, ) { CircularProgressIndicator(color = ReedTheme.colors.contentBrand) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt index dccd3e55..71e58e20 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt @@ -34,9 +34,9 @@ sealed interface RecordDetailUiEvent : CircuitUiEvent { data object OnCloseClick : RecordDetailUiEvent data object OnRetryClick : RecordDetailUiEvent data object OnRecordMenuClick : RecordDetailUiEvent - data object OnRecordMenuBottomSheetDismiss: RecordDetailUiEvent - data object OnRecordDeleteDialogDismiss: RecordDetailUiEvent + data object OnRecordMenuBottomSheetDismiss : RecordDetailUiEvent + data object OnRecordDeleteDialogDismiss : RecordDetailUiEvent data object OnEditRecordClick : RecordDetailUiEvent data object OnDeleteRecordClick : RecordDetailUiEvent - data object OnDelete: RecordDetailUiEvent + data object OnDelete : RecordDetailUiEvent } diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt index 314c640a..8f5b3895 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt @@ -71,7 +71,7 @@ private fun EmotionEditContent( modifier: Modifier = Modifier, ) { Column( - modifier = Modifier + modifier = modifier .fillMaxSize() .padding( start = ReedTheme.spacing.spacing5, diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt index 766ab37c..0306e1f4 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt @@ -49,7 +49,7 @@ data class RecordDetailScreen(val recordId: String) : ReedScreen(name = "RecordD data class RecordEditScreen(val recordInfo: RecordEditArgs) : ReedScreen(name = "RecordEdit()") @Parcelize -data class EmotionEditScreen(val emotion: String): ReedScreen(name = "EmotionEdit()") { +data class EmotionEditScreen(val emotion: String) : ReedScreen(name = "EmotionEdit()") { @Parcelize data class Result(val emotion: String) : PopResult } diff --git a/settings.gradle.kts b/settings.gradle.kts index 0e41270b..9508c61b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -47,5 +47,5 @@ include( ":feature:settings", ":feature:splash", ":feature:webview", - ":feature:edit" + ":feature:edit", ) From eff679aac476262212c8d7b3f54850df8246bae9 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Mon, 18 Aug 2025 10:32:16 +0900 Subject: [PATCH 042/107] =?UTF-8?q?[BOOK-265]=20fix:=20=EB=84=A4=EB=B9=84?= =?UTF-8?q?=EA=B2=8C=EC=9D=B4=EC=85=98=20=EB=B0=94=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=8A=A4=ED=83=80=EC=9D=BC=EC=9D=BC=EB=95=8C=20=ED=82=A4?= =?UTF-8?q?=EB=B3=B4=EB=93=9C=EC=99=80=20=ED=95=98=EB=8B=A8=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=20=EC=82=AC=EC=9D=B4=20=EA=B0=84=EA=B2=A9=EC=9D=B4=20?= =?UTF-8?q?=EB=B2=8C=EC=96=B4=EC=A7=80=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/feature/edit/record/RecordEditUi.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt index c9088283..7b8ff460 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt @@ -8,7 +8,11 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.exclude +import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.imePadding +import androidx.compose.material3.ScaffoldDefaults import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState @@ -58,6 +62,7 @@ internal fun RecordEditUi( ReedScaffold( modifier = modifier.fillMaxSize(), containerColor = White, + contentWindowInsets = ScaffoldDefaults.contentWindowInsets.exclude(WindowInsets.ime), ) { innerPadding -> Column( modifier = modifier From 79777d2f1a174a79cf0474c4fb7c4f1528c96272 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Mon, 18 Aug 2025 13:06:31 +0900 Subject: [PATCH 043/107] =?UTF-8?q?[BOOK-272]=20chore:=20InfinityLazyColum?= =?UTF-8?q?n=20limitCount=20default=20value=20=EC=83=81=EC=88=98=EB=A1=9C?= =?UTF-8?q?=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ninecraft/booket/core/ui/component/InfinityLazyColumn.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt index f91453f6..d052f94b 100644 --- a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt +++ b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt @@ -72,7 +72,7 @@ fun InfinityLazyColumn( @SuppressLint("ComposableNaming") @Composable private fun LazyListState.onLoadMore( - limitCount: Int = 6, + limitCount: Int = LIMIT_COUNT, loadOnBottom: Boolean = true, action: () -> Unit, ) { From 25eded31ae9be4767912e2ff6a93467c17f39f7f Mon Sep 17 00:00:00 2001 From: easyhooon Date: Mon, 18 Aug 2025 13:17:02 +0900 Subject: [PATCH 044/107] =?UTF-8?q?[BOOK-272]=20feat:=20=EB=82=B4=20?= =?UTF-8?q?=EC=84=9C=EC=9E=AC=EC=97=90=20=EC=A0=80=EC=9E=A5=ED=95=9C=20?= =?UTF-8?q?=EB=8F=84=EC=84=9C=20=EC=82=AD=EC=A0=9C=20API=20=EC=97=B0?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/core/data/api/repository/BookRepository.kt | 2 ++ .../core/data/impl/repository/DefaultBookRepository.kt | 4 ++++ .../com/ninecraft/booket/core/network/service/ReedService.kt | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt index 6e922b56..cb9fc191 100644 --- a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt +++ b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt @@ -43,4 +43,6 @@ interface BookRepository { suspend fun getHome(): Result suspend fun getSeedsStats(userBookId: String): Result + + suspend fun removeBook(userBookId: String): Result } diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt index 451da2ac..b218c220 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt @@ -64,4 +64,8 @@ internal class DefaultBookRepository @Inject constructor( override suspend fun getSeedsStats(userBookId: String) = runSuspendCatching { service.getSeedsStats(userBookId).toModel() } + + override suspend fun removeBook(userBookId: String) = runSuspendCatching { + service.removeBook(userBookId) + } } diff --git a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt index b807df70..ff734843 100644 --- a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt +++ b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt @@ -78,6 +78,11 @@ interface ReedService { @Query("sort") sort: String = "CREATED_DATE_DESC", ): LibraryResponse + @DELETE("api/v1/books/my-library/{userBookId}") + suspend fun removeBook( + @Path("userBookId") userBookId: String, + ) + // Reading-records endpoints (auth required) @POST("api/v1/reading-records/{userBookId}") suspend fun postRecord( From dd872584db29587d612d9a15ae991da36e92818f Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 15:44:07 +0900 Subject: [PATCH 045/107] =?UTF-8?q?[BOOK-265]=20chore:=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20userBookId=20=ED=8C=8C=EB=9D=BC?= =?UTF-8?q?=EB=AF=B8=ED=84=B0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/core/data/api/repository/RecordRepository.kt | 1 - .../booket/core/data/impl/repository/DefaultRecordRepository.kt | 1 - .../ninecraft/booket/feature/detail/book/BookDetailPresenter.kt | 1 - .../booket/feature/detail/record/RecordDetailPresenter.kt | 1 - .../com/ninecraft/booket/feature/edit/record/RecordEditUi.kt | 1 - .../ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt | 1 - 6 files changed, 6 deletions(-) diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RecordRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RecordRepository.kt index 6a779432..753bc76b 100644 --- a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RecordRepository.kt +++ b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RecordRepository.kt @@ -27,7 +27,6 @@ interface RecordRepository { suspend fun editRecord( readingRecordId: String, - userBookId: String, pageNumber: Int, quote: String, emotionTags: List, diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRecordRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRecordRepository.kt index cbff7e1e..410769d0 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRecordRepository.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRecordRepository.kt @@ -36,7 +36,6 @@ class DefaultRecordRepository @Inject constructor( override suspend fun editRecord( readingRecordId: String, - userBookId: String, pageNumber: Int, quote: String, emotionTags: List, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 2d4535c3..95daf328 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -277,7 +277,6 @@ class BookDetailPresenter @AssistedInject constructor( RecordEditScreen( RecordEditArgs( id = selectedRecordInfo.id, - userBookId = selectedRecordInfo.userBookId, pageNumber = selectedRecordInfo.pageNumber, quote = selectedRecordInfo.quote, review = selectedRecordInfo.review, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index 7a8c5961..0e8f8e49 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -117,7 +117,6 @@ class RecordDetailPresenter @AssistedInject constructor( RecordEditScreen( RecordEditArgs( id = recordDetailInfo.id, - userBookId = recordDetailInfo.userBookId, pageNumber = recordDetailInfo.pageNumber, quote = recordDetailInfo.quote, review = recordDetailInfo.review, diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt index 7b8ff460..0a7972c2 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt @@ -219,7 +219,6 @@ private fun RecordEditUiPreview() { state = RecordEditUiState( recordInfo = RecordEditArgs( id = "", - userBookId = "", pageNumber = 33, quote = "소설가들은 늘 소재를 찾아 떠도는 존재 같지만, 실은 그 반대인 경우가 더 잦다.", review = "감동적이었다.", diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt index 4cccba66..c4917736 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/arguments/RecordEditArgs.kt @@ -6,7 +6,6 @@ import kotlinx.parcelize.Parcelize @Parcelize data class RecordEditArgs( val id: String, - val userBookId: String, val pageNumber: Int, val quote: String, val review: String, From fe16fdc3db6bc116830a745bc7fd078aeaad4c88 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 15:44:15 +0900 Subject: [PATCH 046/107] =?UTF-8?q?[BOOK-265]=20chore:=20=ED=86=A0?= =?UTF-8?q?=EB=81=BC=20=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/book/component/RecordItem.kt | 2 +- .../booket/feature/edit/emotion/EmotionEditUi.kt | 2 +- .../booket/feature/edit/record/RecordEditPresenter.kt | 9 +++------ 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt index 14475c9a..4b0b8d3b 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/RecordItem.kt @@ -127,7 +127,7 @@ private fun RecordItemPreview() { RecordItem( recordInfo = ReadingRecordModel( quote = "소설가들은 늘 소재를 찾아 떠도는 존재 같지만, 실은 그 반대인 경우가 더 잦다.", - emotionTags = persistentListOf(), + emotionTags = persistentListOf("따뜻함"), pageNumber = 12, createdAt = "2025.06.25", ), diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt index 8f5b3895..0ddc68c2 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt @@ -104,7 +104,7 @@ private fun EmotionEditContent( state.eventSink(EmotionEditUiEvent.OnSelectEmotion(tag.label)) }, isSelected = state.selectedEmotion == tag.label, - modifier = Modifier.weight(1f), + modifier = Modifier.fillMaxWidth(), ) } }, diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt index 39af7089..9cd7a5ed 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt @@ -47,9 +47,9 @@ class RecordEditPresenter @AssistedInject constructor( } val hasChanges by remember { derivedStateOf { - val pageChanged = recordPageState.text != recordInfo.pageNumber.toString() - val quoteChanged = recordQuoteState.text != recordInfo.quote - val impressionChanged = recordImpressionState.text != recordInfo.review + val pageChanged = recordPageState.text.toString() != recordInfo.pageNumber.toString() + val quoteChanged = recordQuoteState.text.toString() != recordInfo.quote + val impressionChanged = recordImpressionState.text.toString() != recordInfo.review val emotionChanged = recordInfo.emotionTags != screen.recordInfo.emotionTags pageChanged || quoteChanged || impressionChanged || emotionChanged } @@ -71,7 +71,6 @@ class RecordEditPresenter @AssistedInject constructor( fun editRecord( readingRecordId: String, - userBookId: String, pageNumber: Int, quote: String, emotionTags: List, @@ -81,7 +80,6 @@ class RecordEditPresenter @AssistedInject constructor( scope.launch { repository.editRecord( readingRecordId = readingRecordId, - userBookId = userBookId, pageNumber = pageNumber, quote = quote, emotionTags = emotionTags, @@ -123,7 +121,6 @@ class RecordEditPresenter @AssistedInject constructor( RecordEditUiEvent.OnSaveButtonClick -> { editRecord( readingRecordId = recordInfo.id, - userBookId = recordInfo.userBookId, pageNumber = recordPageState.text.toString().toIntOrNull() ?: 0, quote = recordQuoteState.text.toString(), emotionTags = recordInfo.emotionTags, From 977d408915e3b5aa30956b883624b8c934fc4561 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Mon, 18 Aug 2025 17:02:41 +0900 Subject: [PATCH 047/107] =?UTF-8?q?[BOOK-265]=20refactor:=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EC=83=9D=EB=AA=85=EC=A3=BC?= =?UTF-8?q?=EA=B8=B0=EC=97=90=20=EB=A7=9E=EC=B6=B0=20=EC=BD=94=EB=A3=A8?= =?UTF-8?q?=ED=8B=B4=20=EA=B4=80=EB=A6=AC=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 기존 coroutineScope를 scope.launch로 감싸 presenter 생명주기에 맞추도록 함 --- .../detail/book/BookDetailPresenter.kt | 80 ++++++++++--------- 1 file changed, 41 insertions(+), 39 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 95daf328..93413b30 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -81,52 +81,54 @@ class BookDetailPresenter @AssistedInject constructor( var sideEffect by rememberRetained { mutableStateOf(null) } @Suppress("TooGenericExceptionCaught") - suspend fun initialLoad() { + fun initialLoad() { uiState = UiState.Loading - try { - coroutineScope { - val bookDetailDef = async { bookRepository.getBookDetail(screen.isbn13).getOrThrow() } - val seedsDef = async { bookRepository.getSeedsStats(screen.userBookId).getOrThrow() } - val readingRecordsDef = async { - recordRepository.getReadingRecords( - userBookId = screen.userBookId, - sort = currentRecordSort.value, - page = START_INDEX, - size = PAGE_SIZE, - ).getOrThrow() - } - val detail = bookDetailDef.await() - val seeds = seedsDef.await() - val records = readingRecordsDef.await() + scope.launch { + try { + coroutineScope { + val bookDetailDeferred = async { bookRepository.getBookDetail(screen.isbn13).getOrThrow() } + val seedsDeferred = async { bookRepository.getSeedsStats(screen.userBookId).getOrThrow() } + val readingRecordsDeferred = async { + recordRepository.getReadingRecords( + userBookId = screen.userBookId, + sort = currentRecordSort.value, + page = START_INDEX, + size = PAGE_SIZE, + ).getOrThrow() + } + val detail = bookDetailDeferred.await() + val seeds = seedsDeferred.await() + val records = readingRecordsDeferred.await() - bookDetail = detail - currentBookStatus = BookStatus.fromValue(detail.userBookStatus) ?: BookStatus.BEFORE_READING - selectedBookStatus = currentBookStatus - seedsStates = seeds.categories.toImmutableList() - readingRecords = records.readingRecords.toPersistentList() - readingRecordsTotalCount = records.totalResults + bookDetail = detail + currentBookStatus = BookStatus.fromValue(detail.userBookStatus) ?: BookStatus.BEFORE_READING + selectedBookStatus = currentBookStatus + seedsStates = seeds.categories.toImmutableList() + readingRecords = records.readingRecords.toPersistentList() + readingRecordsTotalCount = records.totalResults - isLastPage = records.lastPage - currentStartIndex = START_INDEX + isLastPage = records.lastPage + currentStartIndex = START_INDEX - uiState = UiState.Success - } - } catch (e: Throwable) { - uiState = UiState.Error(e) + uiState = UiState.Success + } + } catch (e: Throwable) { + uiState = UiState.Error(e) - val handleErrorMessage = { message: String -> - Logger.e(message) - sideEffect = BookDetailSideEffect.ShowToast(message) - } + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = BookDetailSideEffect.ShowToast(message) + } - handleException( - exception = e, - onError = handleErrorMessage, - onLoginRequired = { - navigator.resetRoot(LoginScreen) - }, - ) + handleException( + exception = e, + onError = handleErrorMessage, + onLoginRequired = { + navigator.resetRoot(LoginScreen) + }, + ) + } } } From 71a931b645a86c0c42545af3e248b27584dc377c Mon Sep 17 00:00:00 2001 From: easyhooon Date: Tue, 19 Aug 2025 19:40:10 +0900 Subject: [PATCH 048/107] =?UTF-8?q?[BOOK-272]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=ED=99=94=EB=A9=B4=20=EB=88=84=EB=9D=BD=EB=90=9C=20imePaddin?= =?UTF-8?q?g=20=EC=A0=81=EC=9A=A9=20=EB=B0=8F=20Scaffold=20contentWindowIn?= =?UTF-8?q?sets=20ime=20=EC=A0=9C=EC=99=B8=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/record/register/RecordRegisterUi.kt | 5 +++++ .../ninecraft/booket/feature/record/step/ImpressionStep.kt | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt index 242b1c84..6ec6428c 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt @@ -4,10 +4,14 @@ import androidx.activity.compose.BackHandler import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.exclude import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.padding import androidx.compose.material3.Scaffold +import androidx.compose.material3.ScaffoldDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource @@ -43,6 +47,7 @@ internal fun RecordRegisterUi( Scaffold( modifier = modifier.fillMaxSize(), containerColor = White, + contentWindowInsets = ScaffoldDefaults.contentWindowInsets.exclude(WindowInsets.ime), ) { innerPadding -> Column( modifier = Modifier diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt index 93172488..e555e5ae 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions @@ -69,7 +70,8 @@ fun ImpressionStep( Box( modifier = modifier .fillMaxSize() - .background(White), + .background(White) + .imePadding(), ) { Column( modifier = Modifier From fbceb2a70be59c3637996f0bef2315e19b1d8c10 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Tue, 19 Aug 2025 21:41:43 +0900 Subject: [PATCH 049/107] =?UTF-8?q?[BOOK-272]=20feat:=20=EB=93=B1=EB=A1=9D?= =?UTF-8?q?=ED=95=9C=20=EB=8F=84=EC=84=9C=20=EC=82=AD=EC=A0=9C=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/api/repository/BookRepository.kt | 2 +- .../impl/repository/DefaultBookRepository.kt | 4 +- .../core/network/service/ReedService.kt | 2 +- .../detail/book/BookDetailPresenter.kt | 56 ++++++++- .../feature/detail/book/BookDetailUi.kt | 41 ++++++- .../feature/detail/book/BookDetailUiState.kt | 9 +- .../book/component/DetailMenuBottomSheet.kt | 108 ++++++++++++++++++ .../detail/src/main/res/values/strings.xml | 1 + 8 files changed, 213 insertions(+), 10 deletions(-) create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/DetailMenuBottomSheet.kt diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt index cb9fc191..6d3a8c7a 100644 --- a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt +++ b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt @@ -44,5 +44,5 @@ interface BookRepository { suspend fun getSeedsStats(userBookId: String): Result - suspend fun removeBook(userBookId: String): Result + suspend fun deleteBook(userBookId: String): Result } diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt index b218c220..e964b0e5 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt @@ -65,7 +65,7 @@ internal class DefaultBookRepository @Inject constructor( service.getSeedsStats(userBookId).toModel() } - override suspend fun removeBook(userBookId: String) = runSuspendCatching { - service.removeBook(userBookId) + override suspend fun deleteBook(userBookId: String) = runSuspendCatching { + service.deleteBook(userBookId) } } diff --git a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt index 45a7e95e..f2b0b280 100644 --- a/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt +++ b/core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt @@ -81,7 +81,7 @@ interface ReedService { ): LibraryResponse @DELETE("api/v1/books/my-library/{userBookId}") - suspend fun removeBook( + suspend fun deleteBook( @Path("userBookId") userBookId: String, ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 93413b30..4cf040b2 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -78,6 +78,8 @@ class BookDetailPresenter @AssistedInject constructor( var isRecordSortBottomSheetVisible by rememberRetained { mutableStateOf(false) } var isRecordMenuBottomSheetVisible by rememberRetained { mutableStateOf(false) } var isRecordDeleteDialogVisible by rememberRetained { mutableStateOf(false) } + var isDetailMenuBottomSheetVisible by rememberRetained { mutableStateOf(false) } + var isBookDeleteDialogVisible by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } @Suppress("TooGenericExceptionCaught") @@ -212,6 +214,29 @@ class BookDetailPresenter @AssistedInject constructor( } } + fun deleteBook(userBookId: String, onSuccess: () -> Unit) { + scope.launch { + bookRepository.deleteBook(userBookId = userBookId) + .onSuccess { + onSuccess() + } + .onFailure { exception -> + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = BookDetailSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + onLoginRequired = { + navigator.resetRoot(LoginScreen) + }, + ) + } + } + } + LaunchedEffect(Unit) { initialLoad() } @@ -297,7 +322,7 @@ class BookDetailPresenter @AssistedInject constructor( isRecordDeleteDialogVisible = true } - is BookDetailUiEvent.OnDelete -> { + is BookDetailUiEvent.OnDeleteRecord -> { isRecordDeleteDialogVisible = false deleteRecord( readingRecordId = selectedRecordInfo.id, @@ -313,6 +338,33 @@ class BookDetailPresenter @AssistedInject constructor( navigator.goTo(RecordDetailScreen(event.recordId)) } + is BookDetailUiEvent.OnDetailMenuClick -> { + isDetailMenuBottomSheetVisible = true + } + + is BookDetailUiEvent.OnDetailMenuBottomSheetDismiss -> { + isDetailMenuBottomSheetVisible = false + } + + is BookDetailUiEvent.OnDeleteBookClick -> { + isDetailMenuBottomSheetVisible = false + isBookDeleteDialogVisible = true + } + + is BookDetailUiEvent.OnDeleteDialogDismiss -> { + isBookDeleteDialogVisible = false + } + + is BookDetailUiEvent.OnDeleteBook -> { + isBookDeleteDialogVisible = false + deleteBook( + userBookId = screen.userBookId, + onSuccess = { + navigator.pop() + }, + ) + } + is BookDetailUiEvent.OnLoadMore -> { if (uiState != UiState.Loading && footerState !is FooterState.Loading && !isLastPage) { loadMoreReadingRecords(startIndex = currentStartIndex + 1) @@ -342,6 +394,8 @@ class BookDetailPresenter @AssistedInject constructor( selectedRecordInfo = selectedRecordInfo, isRecordMenuBottomSheetVisible = isRecordMenuBottomSheetVisible, isRecordDeleteDialogVisible = isRecordDeleteDialogVisible, + isDetailMenuBottomSheetVisible = isDetailMenuBottomSheetVisible, + isBookDeleteDialogVisible = isBookDeleteDialogVisible, sideEffect = sideEffect, eventSink = ::handleEvent, ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt index 113b3b51..e7ea5923 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt @@ -40,13 +40,14 @@ import com.ninecraft.booket.core.model.BookDetailModel import com.ninecraft.booket.core.ui.ReedScaffold import com.ninecraft.booket.core.ui.component.InfinityLazyColumn import com.ninecraft.booket.core.ui.component.LoadStateFooter -import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar import com.ninecraft.booket.core.ui.component.ReedDialog import com.ninecraft.booket.core.ui.component.ReedErrorUi +import com.ninecraft.booket.core.ui.component.ReedTopAppBar import com.ninecraft.booket.feature.detail.R import com.ninecraft.booket.feature.detail.book.component.BookItem import com.ninecraft.booket.feature.detail.book.component.BookUpdateBottomSheet import com.ninecraft.booket.feature.detail.book.component.CollectedSeeds +import com.ninecraft.booket.feature.detail.book.component.DetailMenuBottomSheet import com.ninecraft.booket.feature.detail.book.component.ReadingRecordsHeader import com.ninecraft.booket.feature.detail.book.component.RecordItem import com.ninecraft.booket.feature.detail.book.component.RecordSortBottomSheet @@ -152,7 +153,7 @@ internal fun BookDetailUi( title = stringResource(R.string.record_delete_dialog_title), confirmButtonText = stringResource(R.string.record_delete_dialog_delete), onConfirmRequest = { - state.eventSink(BookDetailUiEvent.OnDelete) + state.eventSink(BookDetailUiEvent.OnDeleteRecord) }, dismissButtonText = stringResource(R.string.record_delete_dialog_cancel), onDismissRequest = { @@ -160,6 +161,32 @@ internal fun BookDetailUi( }, ) } + + if (state.isDetailMenuBottomSheetVisible) { + DetailMenuBottomSheet( + onDismissRequest = { + state.eventSink(BookDetailUiEvent.OnDetailMenuBottomSheetDismiss) + }, + sheetState = recordMenuBottomSheetState, + onDeleteBookClick = { + state.eventSink(BookDetailUiEvent.OnDeleteBookClick) + }, + ) + } + + if (state.isBookDeleteDialogVisible) { + ReedDialog( + title = stringResource(R.string.record_delete_dialog_title), + confirmButtonText = stringResource(R.string.record_delete_dialog_delete), + onConfirmRequest = { + state.eventSink(BookDetailUiEvent.OnDeleteBook) + }, + dismissButtonText = stringResource(R.string.record_delete_dialog_cancel), + onDismissRequest = { + state.eventSink(BookDetailUiEvent.OnDeleteDialogDismiss) + }, + ) + } } @Composable @@ -191,11 +218,17 @@ internal fun BookDetailContent( }, ) { item { - ReedBackTopAppBar( + ReedTopAppBar( title = "", - onBackClick = { + startIconRes = designR.drawable.ic_chevron_left, + startIconOnClick = { state.eventSink(BookDetailUiEvent.OnBackClick) }, + endIconRes = designR.drawable.ic_more_vertical, + endIconDescription = "More Vertical Icon", + endIconOnClick = { + state.eventSink(BookDetailUiEvent.OnDetailMenuClick) + }, ) } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt index 040a02f8..89cca6ea 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt @@ -39,6 +39,8 @@ data class BookDetailUiState( val isRecordSortBottomSheetVisible: Boolean = false, val isRecordMenuBottomSheetVisible: Boolean = false, val isRecordDeleteDialogVisible: Boolean = false, + val isDetailMenuBottomSheetVisible: Boolean = false, + val isBookDeleteDialogVisible: Boolean = false, val sideEffect: BookDetailSideEffect? = null, val eventSink: (BookDetailUiEvent) -> Unit, ) : CircuitUiState { @@ -72,7 +74,12 @@ sealed interface BookDetailUiEvent : CircuitUiEvent { data object OnRecordDeleteDialogDismiss : BookDetailUiEvent data object OnEditRecordClick : BookDetailUiEvent data object OnDeleteRecordClick : BookDetailUiEvent - data object OnDelete : BookDetailUiEvent + data object OnDeleteRecord : BookDetailUiEvent + data object OnDetailMenuClick : BookDetailUiEvent + data object OnDetailMenuBottomSheetDismiss : BookDetailUiEvent + data object OnDeleteBookClick : BookDetailUiEvent + data object OnDeleteDialogDismiss : BookDetailUiEvent + data object OnDeleteBook : BookDetailUiEvent data class OnRecordItemClick(val recordId: String) : BookDetailUiEvent data object OnLoadMore : BookDetailUiEvent data object OnRetryClick : BookDetailUiEvent diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/DetailMenuBottomSheet.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/DetailMenuBottomSheet.kt new file mode 100644 index 00000000..ee394a62 --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/DetailMenuBottomSheet.kt @@ -0,0 +1,108 @@ +package com.ninecraft.booket.feature.detail.book.component + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.SheetState +import androidx.compose.material3.SheetValue +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.res.vectorResource +import com.ninecraft.booket.core.common.extensions.noRippleClickable +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.core.ui.component.ReedBottomSheet +import com.ninecraft.booket.feature.detail.R +import com.ninecraft.booket.core.designsystem.R as designR + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun DetailMenuBottomSheet( + onDismissRequest: () -> Unit, + sheetState: SheetState, + onDeleteBookClick: () -> Unit, + modifier: Modifier = Modifier, +) { + ReedBottomSheet( + onDismissRequest = { + onDismissRequest() + }, + sheetState = sheetState, + ) { + Column( + modifier = modifier + .padding(top = ReedTheme.spacing.spacing5), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + DetailMenuItem( + iconResId = designR.drawable.ic_trash, + iconDescription = "Trash Icon", + label = stringResource(R.string.book_delete), + color = ReedTheme.colors.contentError, + onClick = { onDeleteBookClick() }, + ) + } + } +} + +@Composable +private fun DetailMenuItem( + iconResId: Int, + iconDescription: String, + label: String, + color: Color, + onClick: () -> Unit, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier + .fillMaxWidth() + .noRippleClickable { + onClick() + } + .padding( + vertical = ReedTheme.spacing.spacing5, + horizontal = ReedTheme.spacing.spacing6, + ), + ) { + Icon( + imageVector = ImageVector.vectorResource(iconResId), + contentDescription = iconDescription, + tint = color, + ) + Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing3)) + Text( + text = label, + color = color, + style = ReedTheme.typography.body1Medium, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@ComponentPreview +@Composable +private fun ChoiceBottomSheetPreview() { + val sheetState = SheetState( + skipPartiallyExpanded = true, + initialValue = SheetValue.Expanded, + positionalThreshold = { 0f }, + velocityThreshold = { 0f }, + ) + + DetailMenuBottomSheet( + onDismissRequest = {}, + sheetState = sheetState, + onDeleteBookClick = {}, + ) +} diff --git a/feature/detail/src/main/res/values/strings.xml b/feature/detail/src/main/res/values/strings.xml index b2c6a66e..c28bec69 100644 --- a/feature/detail/src/main/res/values/strings.xml +++ b/feature/detail/src/main/res/values/strings.xml @@ -16,4 +16,5 @@ 삭제하면 기록을 복구할 수 없어요.\n정말 삭제하시겠어요? 삭제 취소 + 도서 삭제하기 From 11b435a252cc674c46ca1611de05f660b3719cf9 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Tue, 19 Aug 2025 22:16:47 +0900 Subject: [PATCH 050/107] =?UTF-8?q?[BOOK-272]=20chore:=20remove=20->=20del?= =?UTF-8?q?ete=20=EC=82=AD=EC=A0=9C=20=EC=9B=8C=EB=94=A9=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/core/data/api/repository/BookRepository.kt | 4 ++-- .../core/data/impl/repository/DefaultBookRepository.kt | 8 ++++---- .../datastore/api/datasource/RecentSearchDataSource.kt | 2 +- .../impl/datasource/DefaultBookRecentSearchDataSource.kt | 2 +- .../datasource/DefaultLibraryRecentSearchDataSource.kt | 2 +- .../booket/feature/search/book/BookSearchPresenter.kt | 4 ++-- .../ninecraft/booket/feature/search/book/BookSearchUi.kt | 4 ++-- .../booket/feature/search/book/BookSearchUiState.kt | 2 +- .../booket/feature/search/common/component/SearchItem.kt | 6 +++--- .../feature/search/library/LibrarySearchPresenter.kt | 4 ++-- .../booket/feature/search/library/LibrarySearchUi.kt | 4 ++-- .../booket/feature/search/library/LibrarySearchUiState.kt | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt index 6d3a8c7a..b29faf03 100644 --- a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt +++ b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/BookRepository.kt @@ -17,7 +17,7 @@ interface BookRepository { start: Int, ): Result - suspend fun removeBookRecentSearch(query: String) + suspend fun deleteBookRecentSearch(query: String) suspend fun getBookDetail(isbn13: String): Result @@ -38,7 +38,7 @@ interface BookRepository { size: Int, ): Result - suspend fun removeLibraryRecentSearch(query: String) + suspend fun deleteLibraryRecentSearch(query: String) suspend fun getHome(): Result diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt index e964b0e5..cf64e2f2 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultBookRepository.kt @@ -30,8 +30,8 @@ internal class DefaultBookRepository @Inject constructor( result } - override suspend fun removeBookRecentSearch(query: String) { - bookRecentSearchDataSource.removeRecentSearch(query) + override suspend fun deleteBookRecentSearch(query: String) { + bookRecentSearchDataSource.deleteRecentSearch(query) } override suspend fun getBookDetail(isbn13: String) = runSuspendCatching { @@ -53,8 +53,8 @@ internal class DefaultBookRepository @Inject constructor( result } - override suspend fun removeLibraryRecentSearch(query: String) { - libraryRecentSearchDataSource.removeRecentSearch(query) + override suspend fun deleteLibraryRecentSearch(query: String) { + libraryRecentSearchDataSource.deleteRecentSearch(query) } override suspend fun getHome() = runSuspendCatching { diff --git a/core/datastore/api/src/main/kotlin/com/ninecraft/booket/core/datastore/api/datasource/RecentSearchDataSource.kt b/core/datastore/api/src/main/kotlin/com/ninecraft/booket/core/datastore/api/datasource/RecentSearchDataSource.kt index 9425c12c..72606554 100644 --- a/core/datastore/api/src/main/kotlin/com/ninecraft/booket/core/datastore/api/datasource/RecentSearchDataSource.kt +++ b/core/datastore/api/src/main/kotlin/com/ninecraft/booket/core/datastore/api/datasource/RecentSearchDataSource.kt @@ -5,6 +5,6 @@ import kotlinx.coroutines.flow.Flow interface RecentSearchDataSource { val recentSearches: Flow> suspend fun addRecentSearch(query: String) - suspend fun removeRecentSearch(query: String) + suspend fun deleteRecentSearch(query: String) suspend fun clearRecentSearches() } diff --git a/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultBookRecentSearchDataSource.kt b/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultBookRecentSearchDataSource.kt index 9dab0359..2694b2a9 100644 --- a/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultBookRecentSearchDataSource.kt +++ b/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultBookRecentSearchDataSource.kt @@ -67,7 +67,7 @@ class DefaultBookRecentSearchDataSource @Inject constructor( } @Suppress("TooGenericExceptionCaught") - override suspend fun removeRecentSearch(query: String) { + override suspend fun deleteRecentSearch(query: String) { dataStore.edit { prefs -> val currentSearches = prefs[BOOK_RECENT_SEARCHES]?.let { jsonString -> try { diff --git a/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt b/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt index e90c2e70..05aa6bc5 100644 --- a/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt +++ b/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt @@ -67,7 +67,7 @@ class DefaultLibraryRecentSearchDataSource @Inject constructor( } @Suppress("TooGenericExceptionCaught") - override suspend fun removeRecentSearch(query: String) { + override suspend fun deleteRecentSearch(query: String) { dataStore.edit { prefs -> val currentSearches = prefs[LIBRARY_RECENT_SEARCHES]?.let { jsonString -> try { diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt index 677465fc..715fe601 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt @@ -151,9 +151,9 @@ class BookSearchPresenter @AssistedInject constructor( searchBooks(query = event.query, startIndex = START_INDEX) } - is BookSearchUiEvent.OnRecentSearchRemoveClick -> { + is BookSearchUiEvent.OnRecentSearchDeleteClick -> { scope.launch { - repository.removeBookRecentSearch(query = event.query) + repository.deleteBookRecentSearch(query = event.query) } } diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt index ceb9cd1f..b3fbebfe 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt @@ -154,9 +154,9 @@ internal fun SearchContent( onQueryClick = { keyword -> state.eventSink(BookSearchUiEvent.OnRecentSearchClick(keyword)) }, - onRemoveIconClick = { keyword -> + onDeleteIconClick = { keyword -> state.eventSink( - BookSearchUiEvent.OnRecentSearchRemoveClick(keyword), + BookSearchUiEvent.OnRecentSearchDeleteClick(keyword), ) }, ) diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt index a72f3342..5f023961 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUiState.kt @@ -48,7 +48,7 @@ sealed interface BookSearchSideEffect { sealed interface BookSearchUiEvent : CircuitUiEvent { data object OnBackClick : BookSearchUiEvent data class OnRecentSearchClick(val query: String) : BookSearchUiEvent - data class OnRecentSearchRemoveClick(val query: String) : BookSearchUiEvent + data class OnRecentSearchDeleteClick(val query: String) : BookSearchUiEvent data class OnSearchClick(val query: String) : BookSearchUiEvent data object OnClearClick : BookSearchUiEvent data class OnBookClick(val isbn13: String) : BookSearchUiEvent diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/common/component/SearchItem.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/common/component/SearchItem.kt index 0a435282..818c3fd2 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/common/component/SearchItem.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/common/component/SearchItem.kt @@ -24,7 +24,7 @@ import com.ninecraft.booket.core.designsystem.R as designR fun SearchItem( query: String, onQueryClick: (String) -> Unit, - onRemoveIconClick: (String) -> Unit, + onDeleteIconClick: (String) -> Unit, modifier: Modifier = Modifier, ) { Row( @@ -52,7 +52,7 @@ fun SearchItem( tint = ReedTheme.colors.contentSecondary, modifier = Modifier .size(18.dp) - .clickable { onRemoveIconClick(query) }, + .clickable { onDeleteIconClick(query) }, ) } } @@ -64,7 +64,7 @@ private fun SearchItemPreview() { SearchItem( query = "최근 검색어 최근 검색어 최근 검색어 최근 검색어 최근 검색어", onQueryClick = {}, - onRemoveIconClick = {}, + onDeleteIconClick = {}, ) } } diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt index e15b8e35..9a06c1a8 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt @@ -117,9 +117,9 @@ class LibrarySearchPresenter @AssistedInject constructor( searchLibraryBooks(query = event.query, page = START_INDEX, size = PAGE_SIZE) } - is LibrarySearchUiEvent.OnRecentSearchRemoveClick -> { + is LibrarySearchUiEvent.OnRecentSearchDeleteClick -> { scope.launch { - repository.removeLibraryRecentSearch(event.query) + repository.deleteLibraryRecentSearch(event.query) } } diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt index 3cd044a5..1564fc3e 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt @@ -136,8 +136,8 @@ internal fun LibrarySearchContent( onQueryClick = { keyword -> state.eventSink(LibrarySearchUiEvent.OnRecentSearchClick(keyword)) }, - onRemoveIconClick = { keyword -> - state.eventSink(LibrarySearchUiEvent.OnRecentSearchRemoveClick(keyword)) + onDeleteIconClick = { keyword -> + state.eventSink(LibrarySearchUiEvent.OnRecentSearchDeleteClick(keyword)) }, ) HorizontalDivider( diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUiState.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUiState.kt index e4ecdea2..96b576a0 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUiState.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUiState.kt @@ -38,7 +38,7 @@ sealed interface LibrarySearchSideEffect { sealed interface LibrarySearchUiEvent : CircuitUiEvent { data object OnBackClick : LibrarySearchUiEvent data class OnRecentSearchClick(val query: String) : LibrarySearchUiEvent - data class OnRecentSearchRemoveClick(val query: String) : LibrarySearchUiEvent + data class OnRecentSearchDeleteClick(val query: String) : LibrarySearchUiEvent data class OnSearchClick(val query: String) : LibrarySearchUiEvent data object OnClearClick : LibrarySearchUiEvent data object OnLoadMore : LibrarySearchUiEvent From 7c0c118e5650f8330dd4b9d6a057d9c213c319af Mon Sep 17 00:00:00 2001 From: easyhooon Date: Tue, 19 Aug 2025 22:25:58 +0900 Subject: [PATCH 051/107] =?UTF-8?q?[BOOK-272]=20chore:=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EB=B0=8F=20contentDescription=20remove=20->=20dele?= =?UTF-8?q?te=20=EC=82=AD=EC=A0=9C=20=EC=9B=8C=EB=94=A9=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/datasource/DefaultLibraryRecentSearchDataSource.kt | 2 +- .../booket/feature/search/common/component/SearchItem.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt b/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt index 05aa6bc5..b666c888 100644 --- a/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt +++ b/core/datastore/impl/src/main/kotlin/com/ninecraft/booket/core/datastore/impl/datasource/DefaultLibraryRecentSearchDataSource.kt @@ -76,7 +76,7 @@ class DefaultLibraryRecentSearchDataSource @Inject constructor( Logger.e(e, "Failed to deserialize recent searches for removal") mutableListOf() } catch (e: Exception) { - Logger.e(e, "Unexpected error while removing recent search") + Logger.e(e, "Unexpected error while deleting recent search") mutableListOf() } } ?: mutableListOf() diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/common/component/SearchItem.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/common/component/SearchItem.kt index 818c3fd2..a8cb9362 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/common/component/SearchItem.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/common/component/SearchItem.kt @@ -48,7 +48,7 @@ fun SearchItem( Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing3)) Icon( imageVector = ImageVector.vectorResource(id = designR.drawable.ic_close), - contentDescription = "Remove Icon", + contentDescription = "Delete Icon", tint = ReedTheme.colors.contentSecondary, modifier = Modifier .size(18.dp) From 13e95da2868f927e084737f893c7549b0ad56e51 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Tue, 19 Aug 2025 23:18:08 +0900 Subject: [PATCH 052/107] =?UTF-8?q?[BOOK-274]=20feat:=20=EC=95=B1=20?= =?UTF-8?q?=EB=B2=84=EC=A0=84=20=EC=83=89=EC=83=81=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt index 030c58c9..362f3d5a 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt @@ -124,7 +124,7 @@ internal fun SettingsUi( Text( text = appVersion, style = ReedTheme.typography.body1Medium, - color = ReedTheme.colors.contentSecondary, + color = ReedTheme.colors.contentBrand, ) }, ) From 23cf8444988ea47552f7488a970018cfdfc18c11 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Tue, 19 Aug 2025 23:19:38 +0900 Subject: [PATCH 053/107] =?UTF-8?q?[BOOK-274]=20feat:=20firebase=20remote?= =?UTF-8?q?=20config=20=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20firebase=20hilt=20module=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/data/impl/build.gradle.kts | 2 ++ .../core/data/impl/di/FirebaseModule.kt | 29 +++++++++++++++++++ gradle/libs.versions.toml | 1 + 3 files changed, 32 insertions(+) create mode 100644 core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt diff --git a/core/data/impl/build.gradle.kts b/core/data/impl/build.gradle.kts index cd5c5777..f3af210e 100644 --- a/core/data/impl/build.gradle.kts +++ b/core/data/impl/build.gradle.kts @@ -18,6 +18,8 @@ dependencies { projects.core.model, projects.core.network, + platform(libs.firebase.bom), + libs.firebase.remote.config, libs.logger, ) } diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt new file mode 100644 index 00000000..3bbc9650 --- /dev/null +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt @@ -0,0 +1,29 @@ +package com.ninecraft.booket.core.data.impl.di + +import com.google.firebase.Firebase +import com.google.firebase.remoteconfig.BuildConfig +import com.google.firebase.remoteconfig.FirebaseRemoteConfig +import com.google.firebase.remoteconfig.remoteConfig +import com.google.firebase.remoteconfig.remoteConfigSettings +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@InstallIn(SingletonComponent::class) +@Module +internal object FirebaseModule { + @Singleton + @Provides + fun provideRemoteConfig(): FirebaseRemoteConfig { + return Firebase.remoteConfig.apply { + val configSettings by lazy { + remoteConfigSettings { + minimumFetchIntervalInSeconds = if (BuildConfig.DEBUG) 0 else 60 + } + } + setConfigSettingsAsync(configSettings) + } + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 896dd695..4e9ba306 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -150,6 +150,7 @@ androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase-bom" } firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" } +firebase-remote-config = { group = "com.google.firebase", name = "firebase-config-ktx" } [plugins] gradle-dependency-handler-extensions = { id = "land.sungbin.dependency.handler.extensions", version.ref = "gradle-dependency-handler-extensions" } From 248a00ad996be85b6ae98f307aa6802206483f7c Mon Sep 17 00:00:00 2001 From: easyhooon Date: Tue, 19 Aug 2025 23:53:36 +0900 Subject: [PATCH 054/107] =?UTF-8?q?[BOOK-274]=20feat:=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=20=ED=99=94=EB=A9=B4=20=EB=82=B4=20=EC=95=B1=20=EC=B5=9C?= =?UTF-8?q?=EC=8B=A0=20=EB=B2=84=EC=A0=84=20=ED=91=9C=EA=B8=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/common/utils/HandleException.kt | 2 +- .../api/repository/RemoteCofigRepository.kt | 5 ++ .../core/data/impl/di/RepositoryModule.kt | 6 +++ .../DefaultRemoteConfigRepository.kt | 30 ++++++++++++ .../settings/HandlingSettingsSideEffect.kt | 6 +++ .../feature/settings/SettingsPresenter.kt | 39 ++++++++++++++- .../booket/feature/settings/SettingsUi.kt | 49 +++++++++++++------ .../feature/settings/SettingsUiState.kt | 2 + .../settings/src/main/res/values/strings.xml | 1 + 9 files changed, 122 insertions(+), 18 deletions(-) create mode 100644 core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteCofigRepository.kt create mode 100644 core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt index fb2850a2..ed84d6e8 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt @@ -19,7 +19,7 @@ import java.net.UnknownHostException fun handleException( exception: Throwable, onError: (String) -> Unit, - onLoginRequired: () -> Unit, + onLoginRequired: () -> Unit = {}, ) { when { exception is HttpException && exception.code() == 401 -> { diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteCofigRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteCofigRepository.kt new file mode 100644 index 00000000..af62f0ba --- /dev/null +++ b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteCofigRepository.kt @@ -0,0 +1,5 @@ +package com.ninecraft.booket.core.data.api.repository + +interface RemoteConfigRepository { + suspend fun getLatestVersion(): Result +} diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/RepositoryModule.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/RepositoryModule.kt index 900bbf73..013d61de 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/RepositoryModule.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/RepositoryModule.kt @@ -3,10 +3,12 @@ package com.ninecraft.booket.core.data.impl.di import com.ninecraft.booket.core.data.api.repository.AuthRepository import com.ninecraft.booket.core.data.api.repository.BookRepository import com.ninecraft.booket.core.data.api.repository.RecordRepository +import com.ninecraft.booket.core.data.api.repository.RemoteConfigRepository import com.ninecraft.booket.core.data.api.repository.UserRepository import com.ninecraft.booket.core.data.impl.repository.DefaultAuthRepository import com.ninecraft.booket.core.data.impl.repository.DefaultBookRepository import com.ninecraft.booket.core.data.impl.repository.DefaultRecordRepository +import com.ninecraft.booket.core.data.impl.repository.DefaultRemoteConfigRepository import com.ninecraft.booket.core.data.impl.repository.DefaultUserRepository import dagger.Binds import dagger.Module @@ -33,4 +35,8 @@ internal abstract class RepositoryModule { @Binds @Singleton abstract fun bindRecordRepository(defaultRecordRepository: DefaultRecordRepository): RecordRepository + + @Binds + @Singleton + abstract fun bindRemoteConfigRepository(defaultRemoteConfigRepository: DefaultRemoteConfigRepository): RemoteConfigRepository } diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt new file mode 100644 index 00000000..c56e6daa --- /dev/null +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt @@ -0,0 +1,30 @@ +package com.ninecraft.booket.core.data.impl.repository + +import com.google.firebase.remoteconfig.FirebaseRemoteConfig +import com.google.firebase.remoteconfig.get +import com.ninecraft.booket.core.data.api.repository.RemoteConfigRepository +import com.orhanobut.logger.Logger +import kotlinx.coroutines.suspendCancellableCoroutine +import javax.inject.Inject +import kotlin.coroutines.resume + +class DefaultRemoteConfigRepository @Inject constructor( + private val remoteConfig: FirebaseRemoteConfig, +) : RemoteConfigRepository { + override suspend fun getLatestVersion(): Result = suspendCancellableCoroutine { continuation -> + remoteConfig.fetchAndActivate().addOnCompleteListener { task -> + if (task.isSuccessful) { + val latestVersion = remoteConfig[KEY_LATEST_VERSION].asString() + Logger.d("LatestVersion: $latestVersion") + continuation.resume(Result.success(latestVersion)) + } else { + Logger.e(task.exception, "getLatestVersion failed") + continuation.resume(Result.failure(task.exception ?: Exception("Unknown error"))) + } + } + } + + companion object { + private const val KEY_LATEST_VERSION = "LatestVersion" + } +} diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/HandlingSettingsSideEffect.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/HandlingSettingsSideEffect.kt index 3f046e66..298c720e 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/HandlingSettingsSideEffect.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/HandlingSettingsSideEffect.kt @@ -8,6 +8,7 @@ import com.skydoves.compose.effects.RememberedEffect @Composable internal fun HandleSettingsSideEffects( state: SettingsUiState, + eventSink: (SettingsUiEvent) -> Unit, ) { val context = LocalContext.current @@ -16,7 +17,12 @@ internal fun HandleSettingsSideEffects( is SettingsSideEffect.ShowToast -> { Toast.makeText(context, state.sideEffect.message, Toast.LENGTH_SHORT).show() } + null -> {} } + + if (state.sideEffect != null) { + eventSink(SettingsUiEvent.InitSideEffect) + } } } diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt index f9715e19..e7abb965 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt @@ -1,6 +1,7 @@ package com.ninecraft.booket.feature.settings import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope @@ -8,6 +9,7 @@ import androidx.compose.runtime.setValue import com.ninecraft.booket.core.common.constants.WebViewConstants import com.ninecraft.booket.core.common.utils.handleException import com.ninecraft.booket.core.data.api.repository.AuthRepository +import com.ninecraft.booket.core.data.api.repository.RemoteConfigRepository import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.OssLicensesScreen import com.ninecraft.booket.feature.screens.SettingsScreen @@ -26,19 +28,48 @@ import kotlinx.coroutines.launch class SettingsPresenter @AssistedInject constructor( @Assisted val navigator: Navigator, private val authRepository: AuthRepository, + private val remoteConfigRepository: RemoteConfigRepository, ) : Presenter { @Composable override fun present(): SettingsUiState { val scope = rememberCoroutineScope() var isLoading by rememberRetained { mutableStateOf(false) } - var sideEffect by rememberRetained { mutableStateOf(null) } var isLogoutDialogVisible by rememberRetained { mutableStateOf(false) } var isWithdrawBottomSheetVisible by rememberRetained { mutableStateOf(false) } var isWithdrawConfirmed by rememberRetained { mutableStateOf(false) } + var latestVersion by rememberRetained { mutableStateOf("") } + var sideEffect by rememberRetained { mutableStateOf(null) } + + suspend fun getLatestVersion() { + try { + isLoading = true + remoteConfigRepository.getLatestVersion() + .onSuccess { version -> + latestVersion = version + } + .onFailure { exception -> + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = SettingsSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + ) + } + } finally { + isLoading = false + } + } fun handleEvent(event: SettingsUiEvent) { when (event) { + is SettingsUiEvent.InitSideEffect -> { + sideEffect = null + } + is SettingsUiEvent.OnBackClick -> { navigator.pop() } @@ -134,11 +165,17 @@ class SettingsPresenter @AssistedInject constructor( } } } + + LaunchedEffect(Unit) { + getLatestVersion() + } + return SettingsUiState( isLoading = isLoading, isLogoutDialogVisible = isLogoutDialogVisible, isWithdrawBottomSheetVisible = isWithdrawBottomSheetVisible, isWithdrawConfirmed = isWithdrawConfirmed, + latestVersion = latestVersion, sideEffect = sideEffect, eventSink = ::handleEvent, ) diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt index 362f3d5a..5f7e6bd6 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt @@ -47,7 +47,10 @@ internal fun SettingsUi( state: SettingsUiState, modifier: Modifier = Modifier, ) { - HandleSettingsSideEffects(state = state) + HandleSettingsSideEffects( + state = state, + eventSink = state.eventSink, + ) val withDrawSheetState = rememberModalBottomSheetState() val coroutineScope = rememberCoroutineScope() @@ -127,6 +130,13 @@ internal fun SettingsUi( color = ReedTheme.colors.contentBrand, ) }, + description = { + Text( + text = stringResource(R.string.latest_version, state.latestVersion), + color = ReedTheme.colors.contentTertiary, + style = ReedTheme.typography.label1Medium, + ) + }, ) ReedDivider(modifier = Modifier.padding(vertical = ReedTheme.spacing.spacing4)) SettingItem( @@ -199,6 +209,7 @@ private fun SettingItem( isClickable: Boolean = true, onItemClick: () -> Unit = {}, action: @Composable () -> Unit = {}, + description: @Composable () -> Unit = {}, ) { val combinedModifier = if (isClickable) { modifier @@ -208,21 +219,27 @@ private fun SettingItem( modifier.fillMaxWidth() } - Row( - modifier = combinedModifier - .padding( - horizontal = ReedTheme.spacing.spacing5, - vertical = ReedTheme.spacing.spacing4, - ), - verticalAlignment = Alignment.CenterVertically, - ) { - Text( - modifier = Modifier.weight(1f), - text = title, - style = ReedTheme.typography.body1Medium, - color = ReedTheme.colors.contentPrimary, - ) - action() + Column { + Row( + modifier = combinedModifier + .padding( + horizontal = ReedTheme.spacing.spacing5, + vertical = ReedTheme.spacing.spacing4, + ), + verticalAlignment = Alignment.CenterVertically, + ) { + Column( + modifier = Modifier.weight(1f), + ) { + Text( + text = title, + style = ReedTheme.typography.body1Medium, + color = ReedTheme.colors.contentPrimary, + ) + description() + } + action() + } } } diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt index 21d5a76b..b01bab6c 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt @@ -10,6 +10,7 @@ data class SettingsUiState( val isLogoutDialogVisible: Boolean = false, val isWithdrawBottomSheetVisible: Boolean = false, val isWithdrawConfirmed: Boolean = false, + val latestVersion: String = "", val sideEffect: SettingsSideEffect? = null, val eventSink: (SettingsUiEvent) -> Unit, ) : CircuitUiState @@ -23,6 +24,7 @@ sealed interface SettingsSideEffect { } sealed interface SettingsUiEvent : CircuitUiEvent { + data object InitSideEffect : SettingsUiEvent data object OnBackClick : SettingsUiEvent data object OnPolicyClick : SettingsUiEvent data object OnTermClick : SettingsUiEvent diff --git a/feature/settings/src/main/res/values/strings.xml b/feature/settings/src/main/res/values/strings.xml index 01bbd5d5..58b66b1a 100644 --- a/feature/settings/src/main/res/values/strings.xml +++ b/feature/settings/src/main/res/values/strings.xml @@ -14,4 +14,5 @@ 취소 탈퇴하기 오픈소스 라이선스 + 최신 버전 %1$s From 501a537c2f6dce996fed203043c9e9f8a277323b Mon Sep 17 00:00:00 2001 From: easyhooon Date: Wed, 20 Aug 2025 00:30:58 +0900 Subject: [PATCH 055/107] =?UTF-8?q?[BOOK-274]=20fix:=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=EB=AA=85=20=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95=20=EB=B0=8F?= =?UTF-8?q?=20=EC=9E=98=EB=AA=BB=EB=90=9C=20BuildConfig=20=EC=B0=B8?= =?UTF-8?q?=EC=A1=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{RemoteCofigRepository.kt => RemoteConfigRepository.kt} | 0 core/data/impl/build.gradle.kts | 4 ++++ .../com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) rename core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/{RemoteCofigRepository.kt => RemoteConfigRepository.kt} (100%) diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteCofigRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteConfigRepository.kt similarity index 100% rename from core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteCofigRepository.kt rename to core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteConfigRepository.kt diff --git a/core/data/impl/build.gradle.kts b/core/data/impl/build.gradle.kts index f3af210e..9eb81bdf 100644 --- a/core/data/impl/build.gradle.kts +++ b/core/data/impl/build.gradle.kts @@ -8,6 +8,10 @@ plugins { android { namespace = "com.ninecraft.booket.core.data.impl" + + buildFeatures { + buildConfig = true + } } dependencies { diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt index 3bbc9650..2a6f28a5 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/di/FirebaseModule.kt @@ -1,10 +1,10 @@ package com.ninecraft.booket.core.data.impl.di import com.google.firebase.Firebase -import com.google.firebase.remoteconfig.BuildConfig import com.google.firebase.remoteconfig.FirebaseRemoteConfig import com.google.firebase.remoteconfig.remoteConfig import com.google.firebase.remoteconfig.remoteConfigSettings +import com.ninecraft.booket.core.data.impl.BuildConfig import dagger.Module import dagger.Provides import dagger.hilt.InstallIn From c5552a2cf8f0521e3992322ab114397528e2b346 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Wed, 20 Aug 2025 09:43:31 +0900 Subject: [PATCH 056/107] =?UTF-8?q?[BOOK-274]=20chore:=20=EB=8B=A4?= =?UTF-8?q?=EC=8B=9C=20=EC=8B=9C=EB=8F=84=20->=20=EB=8B=A4=EC=8B=9C=20?= =?UTF-8?q?=EC=8B=9C=EB=8F=84=ED=95=98=EA=B8=B0=20=EC=9B=8C=EB=94=A9=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 stringResource 제거 --- core/ui/src/main/res/values/strings.xml | 2 +- feature/home/src/main/res/values/strings.xml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/core/ui/src/main/res/values/strings.xml b/core/ui/src/main/res/values/strings.xml index 67994c9b..ff80b470 100644 --- a/core/ui/src/main/res/values/strings.xml +++ b/core/ui/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ 더 이상 결과가 없습니다 - 다시 시도 + 다시 시도하기 네트워크 연결이 불안정합니다.\n인터넷 연결을 확인해주세요 알 수 없는 문제가 발생했어요.\n다시 시도해주세요 diff --git a/feature/home/src/main/res/values/strings.xml b/feature/home/src/main/res/values/strings.xml index cc15f77a..58420e85 100644 --- a/feature/home/src/main/res/values/strings.xml +++ b/feature/home/src/main/res/values/strings.xml @@ -10,5 +10,4 @@ 기록하기 책 정보를 가져오는데 실패했어요 - 다시 시도 From 165c773c5bdffaec911ddf72970fd93148e7f765 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Wed, 20 Aug 2025 17:36:29 +0900 Subject: [PATCH 057/107] =?UTF-8?q?[BOOK-274]=20feat:=20=EC=8A=A4=ED=94=8C?= =?UTF-8?q?=EB=9E=98=EC=8B=9C=20=ED=99=94=EB=A9=B4=EB=82=B4=20=EA=B0=95?= =?UTF-8?q?=EC=A0=9C=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AndroidApplicationConventionPlugin.kt | 7 ++- .../kotlin/AndroidLibraryConventionPlugin.kt | 4 +- .../ninecraft/booket/convention/Android.kt | 4 +- .../booket/convention/ApplicationConstants.kt | 5 -- .../api/repository/RemoteConfigRepository.kt | 1 + core/data/impl/build.gradle.kts | 4 ++ .../DefaultRemoteConfigRepository.kt | 43 +++++++++++++++ feature/splash/build.gradle.kts | 8 +++ .../booket/splash/HandleSplashSideEffects.kt | 36 ++++++++++++ .../booket/splash/SplashPresenter.kt | 55 +++++++++++++++---- .../com/ninecraft/booket/splash/SplashUi.kt | 25 ++++++++- .../ninecraft/booket/splash/SplashUiState.kt | 18 +++++- .../splash/src/main/res/values/strings.xml | 3 + gradle/libs.versions.toml | 8 +++ 14 files changed, 196 insertions(+), 25 deletions(-) create mode 100644 feature/splash/src/main/kotlin/com/ninecraft/booket/splash/HandleSplashSideEffects.kt diff --git a/build-logic/src/main/kotlin/AndroidApplicationConventionPlugin.kt b/build-logic/src/main/kotlin/AndroidApplicationConventionPlugin.kt index 9d71f0f6..d31a051b 100644 --- a/build-logic/src/main/kotlin/AndroidApplicationConventionPlugin.kt +++ b/build-logic/src/main/kotlin/AndroidApplicationConventionPlugin.kt @@ -3,6 +3,7 @@ import com.ninecraft.booket.convention.ApplicationConstants import com.ninecraft.booket.convention.Plugins import com.ninecraft.booket.convention.applyPlugins import com.ninecraft.booket.convention.configureAndroid +import com.ninecraft.booket.convention.libs import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -19,9 +20,9 @@ internal class AndroidApplicationConventionPlugin : Plugin { configureAndroid(this) defaultConfig { - targetSdk = ApplicationConstants.TARGET_SDK - versionName = ApplicationConstants.VERSION_NAME - versionCode = ApplicationConstants.VERSION_CODE + targetSdk = libs.versions.targetSdk.get().toInt() + versionName = libs.versions.versionName.get() + versionCode = libs.versions.versionCode.get().toInt() } } } diff --git a/build-logic/src/main/kotlin/AndroidLibraryConventionPlugin.kt b/build-logic/src/main/kotlin/AndroidLibraryConventionPlugin.kt index 39888c94..b430d6b9 100644 --- a/build-logic/src/main/kotlin/AndroidLibraryConventionPlugin.kt +++ b/build-logic/src/main/kotlin/AndroidLibraryConventionPlugin.kt @@ -2,10 +2,10 @@ import com.android.build.gradle.LibraryExtension import com.ninecraft.booket.convention.Plugins import com.ninecraft.booket.convention.applyPlugins import com.ninecraft.booket.convention.configureAndroid +import com.ninecraft.booket.convention.libs import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure -import com.ninecraft.booket.convention.ApplicationConstants internal class AndroidLibraryConventionPlugin : Plugin { override fun apply(target: Project) { @@ -19,7 +19,7 @@ internal class AndroidLibraryConventionPlugin : Plugin { configureAndroid(this) defaultConfig.apply { - targetSdk = ApplicationConstants.TARGET_SDK + targetSdk = libs.versions.targetSdk.get().toInt() } } } diff --git a/build-logic/src/main/kotlin/com/ninecraft/booket/convention/Android.kt b/build-logic/src/main/kotlin/com/ninecraft/booket/convention/Android.kt index 75b05af8..b02d0b99 100644 --- a/build-logic/src/main/kotlin/com/ninecraft/booket/convention/Android.kt +++ b/build-logic/src/main/kotlin/com/ninecraft/booket/convention/Android.kt @@ -8,10 +8,10 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension internal fun Project.configureAndroid(extension: CommonExtension<*, *, *, *, *, *>) { extension.apply { - compileSdk = ApplicationConstants.COMPILE_SDK + compileSdk = libs.versions.compileSdk.get().toInt() defaultConfig { - minSdk = ApplicationConstants.MIN_SDK + minSdk = libs.versions.minSdk.get().toInt() } compileOptions { diff --git a/build-logic/src/main/kotlin/com/ninecraft/booket/convention/ApplicationConstants.kt b/build-logic/src/main/kotlin/com/ninecraft/booket/convention/ApplicationConstants.kt index 7dd72860..fc25dc55 100644 --- a/build-logic/src/main/kotlin/com/ninecraft/booket/convention/ApplicationConstants.kt +++ b/build-logic/src/main/kotlin/com/ninecraft/booket/convention/ApplicationConstants.kt @@ -3,11 +3,6 @@ package com.ninecraft.booket.convention import org.gradle.api.JavaVersion internal object ApplicationConstants { - const val MIN_SDK = 28 - const val TARGET_SDK = 35 - const val COMPILE_SDK = 35 - const val VERSION_CODE = 3 - const val VERSION_NAME = "1.0.0" const val JAVA_VERSION_INT = 17 val javaVersion = JavaVersion.VERSION_17 } diff --git a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteConfigRepository.kt b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteConfigRepository.kt index af62f0ba..7a9dba2e 100644 --- a/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteConfigRepository.kt +++ b/core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/RemoteConfigRepository.kt @@ -2,4 +2,5 @@ package com.ninecraft.booket.core.data.api.repository interface RemoteConfigRepository { suspend fun getLatestVersion(): Result + suspend fun shouldUpdate(): Result } diff --git a/core/data/impl/build.gradle.kts b/core/data/impl/build.gradle.kts index 9eb81bdf..f894b8ed 100644 --- a/core/data/impl/build.gradle.kts +++ b/core/data/impl/build.gradle.kts @@ -12,6 +12,10 @@ android { buildFeatures { buildConfig = true } + + defaultConfig { + buildConfigField("String", "APP_VERSION", "\"${libs.versions.versionName.get()}\"") + } } dependencies { diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt index c56e6daa..ae7e8fc6 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt @@ -3,6 +3,7 @@ package com.ninecraft.booket.core.data.impl.repository import com.google.firebase.remoteconfig.FirebaseRemoteConfig import com.google.firebase.remoteconfig.get import com.ninecraft.booket.core.data.api.repository.RemoteConfigRepository +import com.ninecraft.booket.core.data.impl.BuildConfig import com.orhanobut.logger.Logger import kotlinx.coroutines.suspendCancellableCoroutine import javax.inject.Inject @@ -24,7 +25,49 @@ class DefaultRemoteConfigRepository @Inject constructor( } } + override suspend fun shouldUpdate(): Result = suspendCancellableCoroutine { continuation -> + remoteConfig.fetchAndActivate().addOnCompleteListener { task -> + if (task.isSuccessful) { + val minVersion = remoteConfig[KEY_MIN_VERSION].asString() + val currentVersion = BuildConfig.APP_VERSION + continuation.resume(Result.success(checkMinVersion(currentVersion, minVersion))) + } else { + Logger.e(task.exception, "shouldUpdate: getMinVersion failed") + continuation.resume(Result.failure(task.exception ?: Exception("Unknown error"))) + } + } + } + + /** + * 현재 앱 버전이 최소 요구 버전보다 낮은지 확인하는 함수 + * + * @param currentVersion 현재 앱의 버전 (예: "1.0.0") + * @param minVersion 최소 요구 버전 (Firebase Remote Config에서 가져온 값) + * @return true면 강제 업데이트 필요 (현재 버전 < 최소 요구 버전), false면 업데이트 불필요 + * + * 버전 형식: "메이저.마이너.패치" (예: 1.2.3) + * 비교 순서: 메이저 → 마이너 → 패치 버전 순으로 비교 + */ + private fun checkMinVersion(currentVersion: String, minVersion: String): Boolean { + Logger.d("checkMinVersion: current: $currentVersion, min: $minVersion") + if (!Regex("""^\d+\.\d+\.\d+$""").matches(currentVersion)) return false + if (!Regex("""^\d+\.\d+\.\d+$""").matches(minVersion)) return false + + val current = currentVersion.split('.').map { it.toInt() } + val min = minVersion.split('.').map { it.toInt() } + + // 메이저 버전 비교 + if (current[0] != min[0]) return current[0] < min[0] + + // 마이너 버전 비교 + if (current[1] != min[1]) return current[1] < min[1] + + // 패치 버전 비교 + return current[2] < min[2] + } + companion object { private const val KEY_LATEST_VERSION = "LatestVersion" + private const val KEY_MIN_VERSION = "MinVersion" } } diff --git a/feature/splash/build.gradle.kts b/feature/splash/build.gradle.kts index a758e787..333d59e9 100644 --- a/feature/splash/build.gradle.kts +++ b/feature/splash/build.gradle.kts @@ -6,6 +6,14 @@ plugins { android { namespace = "com.ninecraft.booket.feature.splash" + + buildFeatures { + buildConfig = true + } + + defaultConfig { + buildConfigField("String", "PACKAGE_NAME", "\"${libs.versions.packageName.get()}\"") + } } ksp { diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/HandleSplashSideEffects.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/HandleSplashSideEffects.kt new file mode 100644 index 00000000..7a6dfecf --- /dev/null +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/HandleSplashSideEffects.kt @@ -0,0 +1,36 @@ +package com.ninecraft.booket.splash + +import android.content.Context +import android.content.Intent +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext +import androidx.core.net.toUri +import com.ninecraft.booket.feature.splash.BuildConfig +import com.skydoves.compose.effects.RememberedEffect + +@Composable +internal fun HandleSplashSideEffects( + state: SplashUiState, + eventSink: (SplashUiEvent) -> Unit, +) { + val context = LocalContext.current + + RememberedEffect(state.sideEffect) { + when (state.sideEffect) { + is SplashSideEffect.NavigateToPlayStore -> { + openPlayStore(context) + } + null -> {} + } + + if (state.sideEffect != null) { + eventSink(SplashUiEvent.InitSideEffect) + } + } +} + +private fun openPlayStore(context: Context) { + // https://play.google.com/store/apps/details?id=com.ninecraft.booket + val intent = Intent(Intent.ACTION_VIEW, "market://details?id=${BuildConfig.PACKAGE_NAME}".toUri()) + context.startActivity(intent) +} diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt index b8715ef5..fb8b33a0 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.setValue import com.ninecraft.booket.core.common.constants.ErrorScope import com.ninecraft.booket.core.common.utils.postErrorDialog import com.ninecraft.booket.core.data.api.repository.AuthRepository +import com.ninecraft.booket.core.data.api.repository.RemoteConfigRepository import com.ninecraft.booket.core.data.api.repository.UserRepository import com.ninecraft.booket.core.model.AutoLoginState import com.ninecraft.booket.core.model.OnboardingState @@ -17,7 +18,7 @@ import com.ninecraft.booket.feature.screens.HomeScreen import com.ninecraft.booket.feature.screens.LoginScreen import com.ninecraft.booket.feature.screens.OnboardingScreen import com.ninecraft.booket.feature.screens.SplashScreen -import com.skydoves.compose.effects.RememberedEffect +import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.collectAsRetainedState import com.slack.circuit.retained.rememberRetained @@ -34,6 +35,7 @@ class SplashPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, private val userRepository: UserRepository, private val authRepository: AuthRepository, + private val remoteConfigRepository: RemoteConfigRepository, ) : Presenter { @Composable @@ -41,7 +43,8 @@ class SplashPresenter @AssistedInject constructor( val scope = rememberCoroutineScope() val onboardingState by userRepository.onboardingState.collectAsRetainedState(initial = OnboardingState.IDLE) val autoLoginState by authRepository.autoLoginState.collectAsRetainedState(initial = AutoLoginState.IDLE) - var isSplashTimeCompleted by rememberRetained { mutableStateOf(false) } + var isForceUpdateDialogVisible by rememberRetained { mutableStateOf(false) } + var sideEffect by rememberRetained { mutableStateOf(null) } fun checkTermsAgreement() { scope.launch { @@ -64,14 +67,7 @@ class SplashPresenter @AssistedInject constructor( } } - LaunchedEffect(Unit) { - delay(1000L) - isSplashTimeCompleted = true - } - - RememberedEffect(onboardingState, autoLoginState, isSplashTimeCompleted) { - if (!isSplashTimeCompleted) return@RememberedEffect - + fun proceedToNextScreen() { when (onboardingState) { OnboardingState.NOT_COMPLETED -> { navigator.resetRoot(OnboardingScreen) @@ -99,7 +95,44 @@ class SplashPresenter @AssistedInject constructor( } } - return SplashUiState + fun handleEvent(event: SplashUiEvent) { + when (event) { + SplashUiEvent.OnUpdateButtonClick -> { + sideEffect = SplashSideEffect.NavigateToPlayStore + } + + SplashUiEvent.InitSideEffect -> { + sideEffect = null + } + } + } + + LaunchedEffect(onboardingState, autoLoginState) { + delay(1000L) + + if (onboardingState == OnboardingState.IDLE || autoLoginState == AutoLoginState.IDLE) { + return@LaunchedEffect + } + + remoteConfigRepository.shouldUpdate() + .onSuccess { shouldUpdate -> + if (shouldUpdate) { + isForceUpdateDialogVisible = true + } else { + proceedToNextScreen() + } + } + .onFailure { exception -> + Logger.e("${exception.message}") + proceedToNextScreen() + } + } + + return SplashUiState( + isForceUpdateDialogVisible = isForceUpdateDialogVisible, + sideEffect = sideEffect, + eventSink = ::handleEvent, + ) } @CircuitInject(SplashScreen::class, ActivityRetainedComponent::class) diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt index 536e66ff..dd7f9d80 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUi.kt @@ -1,5 +1,6 @@ package com.ninecraft.booket.splash +import android.R.attr.description import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box @@ -21,6 +22,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.designsystem.DevicePreview import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.core.ui.component.ReedDialog import com.ninecraft.booket.feature.screens.SplashScreen import com.ninecraft.booket.feature.splash.R import com.slack.circuit.codegen.annotations.CircuitInject @@ -30,6 +32,7 @@ import tech.thdev.compose.exteions.system.ui.controller.rememberSystemUiControll @CircuitInject(SplashScreen::class, ActivityRetainedComponent::class) @Composable fun SplashUi( + state: SplashUiState, modifier: Modifier = Modifier, ) { val systemUiController = rememberSystemUiController() @@ -50,6 +53,11 @@ fun SplashUi( } } + HandleSplashSideEffects( + state = state, + eventSink = state.eventSink, + ) + Box( modifier = modifier .fillMaxSize() @@ -74,6 +82,17 @@ fun SplashUi( ) Spacer(Modifier.height(ReedTheme.spacing.spacing8)) } + + if (state.isForceUpdateDialogVisible) { + ReedDialog( + title = stringResource(R.string.splash_force_update_title), + description = stringResource(R.string.splash_force_update_message), + confirmButtonText = stringResource(R.string.splash_force_update_button_text), + onConfirmRequest = { + state.eventSink(SplashUiEvent.OnUpdateButtonClick) + }, + ) + } } } @@ -81,6 +100,10 @@ fun SplashUi( @Composable private fun SplashPreview() { ReedTheme { - SplashUi() + SplashUi( + state = SplashUiState( + eventSink = {}, + ), + ) } } diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUiState.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUiState.kt index d1ed996e..7f8be888 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUiState.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashUiState.kt @@ -1,5 +1,21 @@ package com.ninecraft.booket.splash +import androidx.compose.runtime.Immutable +import com.slack.circuit.runtime.CircuitUiEvent import com.slack.circuit.runtime.CircuitUiState -object SplashUiState : CircuitUiState +data class SplashUiState( + val isForceUpdateDialogVisible: Boolean = false, + val sideEffect: SplashSideEffect? = null, + val eventSink: (SplashUiEvent) -> Unit, +) : CircuitUiState + +@Immutable +sealed interface SplashSideEffect { + data object NavigateToPlayStore : SplashSideEffect +} + +sealed interface SplashUiEvent : CircuitUiEvent { + data object InitSideEffect : SplashUiEvent + data object OnUpdateButtonClick : SplashUiEvent +} diff --git a/feature/splash/src/main/res/values/strings.xml b/feature/splash/src/main/res/values/strings.xml index 3c81ec5c..c4b7f99e 100644 --- a/feature/splash/src/main/res/values/strings.xml +++ b/feature/splash/src/main/res/values/strings.xml @@ -1,4 +1,7 @@ 책 덮기 전 한 문장을 기록해보세요 + 최신 버전이 출시 되었습니다. + 최적의 사용 환경을 위해 업데이트를 해주세요. + 업데이트 하기 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4e9ba306..33cf0675 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -75,6 +75,14 @@ google-service = "4.4.3" firebase-bom = "33.16.0" firebase-crashlytics = "3.0.4" +## App Configuration +minSdk = "28" +targetSdk = "35" +compileSdk = "35" +versionName = "1.0.0" +versionCode = "3" +packageName = "com.ninecraft.booket" + [libraries] android-gradle-plugin = { group = "com.android.tools.build", name = "gradle", version.ref = "android-gradle-plugin" } kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } From c8725a87dce62ca362cae2f19019d46931c7a011 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Wed, 20 Aug 2025 20:52:31 +0900 Subject: [PATCH 058/107] =?UTF-8?q?[BOOK-274]=20refactor:=20repository=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=ED=98=B8=EC=B6=9C=20=EA=B5=AC=EB=AC=B8=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/settings/SettingsPresenter.kt | 154 ++++++++++-------- .../booket/splash/SplashPresenter.kt | 30 ++-- 2 files changed, 100 insertions(+), 84 deletions(-) diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt index e7abb965..b725dcc2 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt @@ -1,7 +1,6 @@ package com.ninecraft.booket.feature.settings import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope @@ -15,6 +14,7 @@ import com.ninecraft.booket.feature.screens.OssLicensesScreen import com.ninecraft.booket.feature.screens.SettingsScreen import com.ninecraft.booket.feature.screens.WebViewScreen import com.orhanobut.logger.Logger +import com.skydoves.compose.effects.RememberedEffect import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator @@ -41,26 +41,86 @@ class SettingsPresenter @AssistedInject constructor( var latestVersion by rememberRetained { mutableStateOf("") } var sideEffect by rememberRetained { mutableStateOf(null) } - suspend fun getLatestVersion() { - try { - isLoading = true - remoteConfigRepository.getLatestVersion() - .onSuccess { version -> - latestVersion = version - } - .onFailure { exception -> - val handleErrorMessage = { message: String -> - Logger.e(message) - sideEffect = SettingsSideEffect.ShowToast(message) + fun logout() { + scope.launch { + try { + isLoading = true + authRepository.logout() + .onSuccess { + navigator.resetRoot(LoginScreen) } + .onFailure { exception -> + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = SettingsSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + onLoginRequired = { + navigator.resetRoot(LoginScreen) + }, + ) + } + } finally { + isLoading = false + isLogoutDialogVisible = false + } + } + } - handleException( - exception = exception, - onError = handleErrorMessage, - ) - } - } finally { - isLoading = false + fun withdraw() { + scope.launch { + try { + isLoading = true + authRepository.withdraw() + .onSuccess { + navigator.resetRoot(LoginScreen) + } + .onFailure { exception -> + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = SettingsSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + onLoginRequired = { + navigator.resetRoot(LoginScreen) + }, + ) + } + } finally { + isLoading = false + isWithdrawBottomSheetVisible = false + } + } + } + + fun getLatestVersion() { + scope.launch { + try { + isLoading = true + remoteConfigRepository.getLatestVersion() + .onSuccess { version -> + latestVersion = version + } + .onFailure { exception -> + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = SettingsSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + ) + } + } finally { + isLoading = false + } } } @@ -107,66 +167,16 @@ class SettingsPresenter @AssistedInject constructor( } is SettingsUiEvent.Logout -> { - scope.launch { - try { - isLoading = true - authRepository.logout() - .onSuccess { - navigator.resetRoot(LoginScreen) - } - .onFailure { exception -> - val handleErrorMessage = { message: String -> - Logger.e(message) - sideEffect = SettingsSideEffect.ShowToast(message) - } - - handleException( - exception = exception, - onError = handleErrorMessage, - onLoginRequired = { - navigator.resetRoot(LoginScreen) - }, - ) - } - } finally { - isLoading = false - } - } - isLogoutDialogVisible = false + logout() } is SettingsUiEvent.Withdraw -> { - scope.launch { - try { - isLoading = true - authRepository.withdraw() - .onSuccess { - navigator.resetRoot(LoginScreen) - } - .onFailure { exception -> - val handleErrorMessage = { message: String -> - Logger.e(message) - sideEffect = SettingsSideEffect.ShowToast(message) - } - - handleException( - exception = exception, - onError = handleErrorMessage, - onLoginRequired = { - navigator.resetRoot(LoginScreen) - }, - ) - } - } finally { - isLoading = false - } - } - isWithdrawBottomSheetVisible = false + withdraw() } } } - LaunchedEffect(Unit) { + RememberedEffect(Unit) { getLatestVersion() } diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt index fb8b33a0..3942dc54 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt @@ -95,6 +95,23 @@ class SplashPresenter @AssistedInject constructor( } } + fun checkForceUpdate() { + scope.launch { + remoteConfigRepository.shouldUpdate() + .onSuccess { shouldUpdate -> + if (shouldUpdate) { + isForceUpdateDialogVisible = true + } else { + proceedToNextScreen() + } + } + .onFailure { exception -> + Logger.e("${exception.message}") + proceedToNextScreen() + } + } + } + fun handleEvent(event: SplashUiEvent) { when (event) { SplashUiEvent.OnUpdateButtonClick -> { @@ -114,18 +131,7 @@ class SplashPresenter @AssistedInject constructor( return@LaunchedEffect } - remoteConfigRepository.shouldUpdate() - .onSuccess { shouldUpdate -> - if (shouldUpdate) { - isForceUpdateDialogVisible = true - } else { - proceedToNextScreen() - } - } - .onFailure { exception -> - Logger.e("${exception.message}") - proceedToNextScreen() - } + checkForceUpdate() } return SplashUiState( From 30ab43e7e1df24ef010692f399f119fa7e9cefa1 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Wed, 20 Aug 2025 21:30:10 +0900 Subject: [PATCH 059/107] =?UTF-8?q?[BOOK-275]=20feat:=20CloudVision=20API?= =?UTF-8?q?=20=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/ocr/build.gradle.kts | 1 + .../core/ocr/analyzer/CloudOcrRecognizer.kt | 34 +++++++++ .../core/ocr/di/CloudVisionNetworkModule.kt | 74 +++++++++++++++++++ .../ocr/di/CloudVisionNetworkQualifier.kt | 11 +++ .../core/ocr/model/CloudVisionRequest.kt | 31 ++++++++ .../core/ocr/model/CloudVisionResponse.kt | 18 +++++ .../core/ocr/service/CloudVisionService.kt | 15 ++++ 7 files changed, 184 insertions(+) create mode 100644 core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt create mode 100644 core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt create mode 100644 core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkQualifier.kt create mode 100644 core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionRequest.kt create mode 100644 core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt create mode 100644 core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt diff --git a/core/ocr/build.gradle.kts b/core/ocr/build.gradle.kts index e3a83b9a..8fb05c16 100644 --- a/core/ocr/build.gradle.kts +++ b/core/ocr/build.gradle.kts @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.booket.android.library) + alias(libs.plugins.booket.android.retrofit) alias(libs.plugins.booket.android.hilt) } diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt new file mode 100644 index 00000000..49e9ab1c --- /dev/null +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt @@ -0,0 +1,34 @@ +package com.ninecraft.booket.core.ocr.analyzer + +import com.ninecraft.booket.core.ocr.model.AnnotateImageRequest +import com.ninecraft.booket.core.ocr.model.CloudVisionRequest +import com.ninecraft.booket.core.ocr.model.Feature +import com.ninecraft.booket.core.ocr.model.ImageContext +import com.ninecraft.booket.core.ocr.model.VisionImage +import com.ninecraft.booket.core.ocr.service.CloudVisionService +import com.orhanobut.logger.Logger +import javax.inject.Inject + +class CloudOcrRecognizer @Inject constructor( + private val service: CloudVisionService, +) { + suspend fun recognizeText(base64Image: String) { + try { + val request = CloudVisionRequest( + requests = listOf( + AnnotateImageRequest( + image = VisionImage(base64Image), + features = listOf(Feature(type = "TEXT_DETECTION")), + imageContext = ImageContext(languageHints = null), + ), + ), + ) + service.annotate( + key = "", // local properties 에서 key 가져오기 + body = request, + ) + } catch (e: Exception) { + Logger.e("${e.message}") + } + } +} diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt new file mode 100644 index 00000000..b7faf96c --- /dev/null +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt @@ -0,0 +1,74 @@ +package com.ninecraft.booket.core.ocr.di + +import com.ninecraft.booket.core.ocr.service.CloudVisionService +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import kotlinx.serialization.json.Json +import okhttp3.MediaType.Companion.toMediaType +import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor +import retrofit2.Retrofit +import retrofit2.converter.kotlinx.serialization.asConverterFactory +import java.util.concurrent.TimeUnit +import javax.inject.Singleton + + +private const val MaxTimeoutMillis = 15_000L + +private val jsonRule = Json { + // 기본값도 JSON에 포함하여 직렬화 + encodeDefaults = true + // JSON에 정의되지 않은 키는 무시 (역직렬화 시 에러 방지) + ignoreUnknownKeys = true + // JSON을 보기 좋게 들여쓰기하여 포맷팅 + prettyPrint = true + // 엄격하지 않은 파싱 (따옴표 없는 키, 후행 쉼표 등 허용) + isLenient = true +} + +private val jsonConverterFactory = jsonRule.asConverterFactory("application/json".toMediaType()) + +@Module +@InstallIn(SingletonComponent::class) +object CloudVisionNetworkModule { + + @Provides + @Singleton + @CloudVisionOkHttp + fun provideOkHttp(): OkHttpClient { + val log = HttpLoggingInterceptor().apply { + level = HttpLoggingInterceptor.Level.BASIC + } + return OkHttpClient.Builder() + .addInterceptor(log) + .addInterceptor { chain -> + val req = chain.request().newBuilder() + .build() + chain.proceed(req) + } + .connectTimeout(MaxTimeoutMillis, TimeUnit.MILLISECONDS) + .readTimeout(MaxTimeoutMillis, TimeUnit.MILLISECONDS) + .writeTimeout(MaxTimeoutMillis, TimeUnit.MILLISECONDS) + .build() + } + + @Provides + @Singleton + @CloudVisionRetrofit + fun provideRetrofit( + @CloudVisionOkHttp okHttpClient: OkHttpClient, + ): Retrofit { + return Retrofit.Builder() + .baseUrl("https://vision.googleapis.com/") + .client(okHttpClient) + .addConverterFactory(jsonConverterFactory) + .build() + } + + @Provides + @Singleton + fun provideVisionApi(@CloudVisionRetrofit retrofit: Retrofit): CloudVisionService = + retrofit.create(CloudVisionService::class.java) +} diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkQualifier.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkQualifier.kt new file mode 100644 index 00000000..b79d4ea1 --- /dev/null +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkQualifier.kt @@ -0,0 +1,11 @@ +package com.ninecraft.booket.core.ocr.di + +import javax.inject.Qualifier + +@Qualifier +@Retention(AnnotationRetention.BINARY) +annotation class CloudVisionOkHttp + +@Qualifier +@Retention(AnnotationRetention.BINARY) +annotation class CloudVisionRetrofit diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionRequest.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionRequest.kt new file mode 100644 index 00000000..7f465448 --- /dev/null +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionRequest.kt @@ -0,0 +1,31 @@ +package com.ninecraft.booket.core.ocr.model + +import kotlinx.serialization.Serializable + + +@Serializable +data class CloudVisionRequest( + val requests: List, +) + +@Serializable +data class AnnotateImageRequest( + val image: VisionImage, + val features: List, + val imageContext: ImageContext? = null +) + +@Serializable +data class VisionImage( + val content: String, +) + +@Serializable +data class Feature( + val type: String = "TEXT_DETECTION", +) + +@Serializable +data class ImageContext( + val languageHints: List? = null +) diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt new file mode 100644 index 00000000..eb9a25a6 --- /dev/null +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt @@ -0,0 +1,18 @@ +package com.ninecraft.booket.core.ocr.model + +import kotlinx.serialization.Serializable + +@Serializable +data class CloudVisionResponse( + val response: List, +) + +@Serializable +data class AnnotateImageResponse( + val fullTextAnnotation: FullTextAnnotation? = null, +) + +@Serializable +data class FullTextAnnotation( + val text: String? = null, +) diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt new file mode 100644 index 00000000..00aca667 --- /dev/null +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt @@ -0,0 +1,15 @@ +package com.ninecraft.booket.core.ocr.service + +import com.ninecraft.booket.core.ocr.model.CloudVisionRequest +import com.ninecraft.booket.core.ocr.model.CloudVisionResponse +import retrofit2.http.Body +import retrofit2.http.POST +import retrofit2.http.Query + +interface CloudVisionService { + @POST("v1/images:annotate") + suspend fun annotate( + @Query("key") key: String, + @Body body: CloudVisionRequest + ): CloudVisionResponse +} From d27193c1c5c737db6767d1cece8d886a07d73155 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Wed, 20 Aug 2025 23:54:37 +0900 Subject: [PATCH 060/107] =?UTF-8?q?[BOOK-273]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20=ED=99=94=EB=A9=B4=20resource=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/font/hakgyoansim_santteutbatang_m.ttf | Bin 0 -> 2021792 bytes .../detail/src/main/res/drawable/ic_save.xml | 9 +++++++++ .../detail/src/main/res/drawable/ic_share.xml | 9 +++++++++ .../res/drawable/img_record_card_insight.webp | Bin 0 -> 160270 bytes .../res/drawable/img_record_card_joy.webp | Bin 0 -> 198052 bytes .../res/drawable/img_record_card_sad.webp | Bin 0 -> 209912 bytes .../res/drawable/img_record_card_warm.webp | Bin 0 -> 199638 bytes 7 files changed, 18 insertions(+) create mode 100644 core/designsystem/src/main/res/font/hakgyoansim_santteutbatang_m.ttf create mode 100644 feature/detail/src/main/res/drawable/ic_save.xml create mode 100644 feature/detail/src/main/res/drawable/ic_share.xml create mode 100644 feature/detail/src/main/res/drawable/img_record_card_insight.webp create mode 100644 feature/detail/src/main/res/drawable/img_record_card_joy.webp create mode 100644 feature/detail/src/main/res/drawable/img_record_card_sad.webp create mode 100644 feature/detail/src/main/res/drawable/img_record_card_warm.webp diff --git a/core/designsystem/src/main/res/font/hakgyoansim_santteutbatang_m.ttf b/core/designsystem/src/main/res/font/hakgyoansim_santteutbatang_m.ttf new file mode 100644 index 0000000000000000000000000000000000000000..205f1967c9451edf4251c9c8a5f6fe66760a3e0e GIT binary patch literal 2021792 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

KK>m^@v1r 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�Crvs%&v`5*Sd#sD+w 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

?OcCs^ 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

(0C}M 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 z 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 + + diff --git a/feature/detail/src/main/res/drawable/ic_share.xml b/feature/detail/src/main/res/drawable/ic_share.xml new file mode 100644 index 00000000..fcb8180b --- /dev/null +++ b/feature/detail/src/main/res/drawable/ic_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/feature/detail/src/main/res/drawable/img_record_card_insight.webp b/feature/detail/src/main/res/drawable/img_record_card_insight.webp new file mode 100644 index 0000000000000000000000000000000000000000..231b4d6ce4390d1fe048c943e7adf1e0c7f8041b GIT binary patch literal 160270 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 literal 0 HcmV?d00001 diff --git a/feature/detail/src/main/res/drawable/img_record_card_joy.webp b/feature/detail/src/main/res/drawable/img_record_card_joy.webp new file mode 100644 index 0000000000000000000000000000000000000000..8b5f4b1ccd9981488c2cc7d73087a27eaf4e342e GIT binary patch literal 198052 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 DI$B3{$aS@!~> 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

}6uJ!MKEDUkNX-zu#6 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�sz16}w42k=%+bT_rDHc}Dxc~0 zv|qlk(&m@?iE}=>rgzGrRrsyPtiUhJDaO*r%6nawb;e@)Rj=`Q9P9BopXjGM7M^i8 z-yhUfR{3fDX8C(YUNdh&j<33wff6y9tE9UT1PXj+ix6rfk zEgjcYSA`YXjX9P^V=ZBT1%XuA4pV22#bV9z^@5&uqi6rbV;=72xP{o=>{p6NWm7oZ zE!M<6@3iZy<+#tLqXs6rF`=U6tCYohx7Kn@yR%Jwj;VKuuRP9{3dT9UKCDTvbDTl< zY0PmBn!8J*H+tT2t>w>NuZki)@3S4;U0;>$fl?W^$Li_NOH=Fu3}$}_%PbCs>7Eyv zt7SH)W$CI~0jbiq?ZwlF9**TteTx@=7=F~Ms=1k1=KK3Be&6$K@9&&zp7VXqpGPPq zDO{$*yqoT2UDsi)ddhOGyPnLRzO}~>`gZTXcwg(?owgpw$-}BIi)%fZZ*S3)LvWdK z{w{(f=F31B?q<%O;)QFc@Im;I(4izeT`KBXvT zhdXP*{chVmkdZgtIp(s=nJ@EqO=e2)ksmq;lf^u=C!6k&hs!x!p4`k2;zHeKs74%HT=3RUp+Ue>zb&&M6D7HgD$q=bsD`?tU7 zFT2k+n{O`n+0%YoOQ2V5LycN~FvRklMGRrM=lOC7^W!jd3rpjw{%G`UyiDq^qrKzX4Y8)K<0QHtAjwwP>h;)yYpk>S!4F3CvvZkX8m# z35oLZwXA-@^wTf%kLJ|WA8M7f=xN$6^Zgx1LMSmm=G{EVTI9x@Kf<5Bmxo8!YUdNiYc{9i6rN6)1ebsi&qz~f8upEE7~7srv$aGDxZ5DmKPu2W6tiLte(d`%yGtc z&dL3L=Y6VeP#!QR?WNtHYs9W0Q{j`sVK~&Akm#O-r?B`)OADAjp(2LDp90l=dPP2B zH-*^$==iZu%=0uM4t^Nx_hH)pAk(Z;^sFwJ_qD7n^FB4|a^8RbrgN9|Z9Sf{thMy7 zbLPoD#^CsN=~W+kQdwA<>}+#fN@y927M&tn8_9)Xmh-eygOxVUftINpuVXbte>Kt8oW3n)X6)vATX#&mYtQ@~e>#M1!BD6@l|Xg| zuwRyLdbKehYP7o1pcbOa1@vO!@?J9IxVO;M>!2<_i^v{ zcHO%zIE-;V-q-6~Z?3AoUn_@iKj5K6iEqb3hf39`=b*1vA{(<_Eu##V%e<5p5C}KK zFcagf`ZknRMAMV|#u{__-WEC5Fq<@M1Z`Xo0SY$6d9d4W-hTrqW&~gs3mQ`PhuLP^ zuCd@)j;q@XJL}cOf-mdK{r9r^_sbX7m#cezvD>y2nz=!2dtT!1(E46|YyrH!4c-+n?Enl$)_CH%e@KEi64ndag^AyXEy;zM#94 iV34Eg=)Gfa`kX)WC;Ot--m>kZAskC9Eqe0?#&rNj9h+tV literal 0 HcmV?d00001 diff --git a/feature/detail/src/main/res/drawable/img_record_card_sad.webp b/feature/detail/src/main/res/drawable/img_record_card_sad.webp new file mode 100644 index 0000000000000000000000000000000000000000..b5ecf58b11118cd968fb269e169f176ceaa8ad25 GIT binary patch literal 209912 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

ycn#5Cr7UJ{Ec-g#p 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Þ?2- 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 pvP)I|VEB_HzUE|cohK*BAtzy#W(h7 z^NOk?tQeno{uy`R`DgU$BUzA5ct8gd6nl1v-XXPGOu~jnin)mv-S(KwCQph+Ef~?} zbK(^pyFu_GGUu0R0~#Asv>n>7JlQZ(Oxzfzo@LqojLb`bMl8dgDT7A@yGJxz56xzB zglH^58rp%F9N7waJAeFNuFZk+wTn!1a@-7z@!(#3ci1|cM+UKTA2<8(yi)L&2!32PCwf3g9w-e{-y^1reK1OXs55F*5|5Uvn zQl)E8iEWS3{L}hgtKXYemXpk4BBO%cDO1XGb*{U>56PDNXZ&xS<+n(6XztO424(kU z?3eC^X!Gr5UJ&VTbzhql>iRy>zUXPJ>5_Tg`aqgkYv`N1B#!votxcwYD& zQ&h&R+WWPtDKdpvwGQ`uF<-|O6A!2Oj_%R;lgobkw`|hPp2+ZO^kx-wo_|JNxL^E>v|gLdACtfh36&~d z-&;h62Nwp-vW~G?+?<}C{E=@{BO%e2BrbysumI$%NGp{wm`K26B=T7}XmcjY7{nsV zXe7*Kt(A@>Bp->nNJwLn(Eb=|w(7;HbFq-9u*hqEOj75VR#s+FRzzJW6O*7bWhRlP z{L(EKC$`#8?lFq53j4?3I!A>fVMoP-ASeC`YV#~$!DJjdA^kZ2ssR|k| z<*QhY3i1RBE;Ho{3?_4VI2wxqd5($^2`&zKbQ)a=Cp(LQCJ7fHDQRjzH9m<+kxfyt z0tb6Szg3w{nT2?eDJ_OH=FdDaiF}E=JX5r?fCh`GxH=A7G>)SCFUdc$yg<_h5R+KdghjEk z7%HP-pdJR`!68w`s|e63f+jBXZm8l$AfKqckIlX|&GCOo8trvvQRWG7!zJjzJv5X~<$X^6CPDuoPF<;#7=P zPRE&gA(#R0m_Fh~v%4UoCgS>ot~`QqyKw|UhR+|mT&=vypB)qBk1hthMl0SPSrTnT zcOO2%X&V%^jWhMOYxEefT#lZN_TVGfOl({P+~$l*_cs#Uro)7Gnmrg+ZZmQ{URT;8 zDOgWK*4oHcpemk6OM$VSmkMa>7o*0c510+BNQ2wvI+Hpn8;}~jqZ^A>*DS-SVX4t z2x+aV1NFluMvx|S#a9_Qzl#`1dciFB7<9JCBx0&E%L`Fo&IGV7U)*{QD@?!BC0~`X zwNf=W=mZ6u%so^$#kgR0W#>w!GvLIwd2C-ka7AG)w7G>n=k$L?tN-&X*X98+JA@be zHlY9bkat+%`H+q~9Ckn?>$vE}@}l*$2(HIR_t9Ml?lCc+Ihaynv5a`iP5Mq-;poaP zY5kxQg;gQc_kx>Dk zZU42#|04|Yy7@-1<^98u(e&GigX#T-FQ0Wj59}JficcpKP{o>}rsz^2#$mg&(Dl_u zJKcLWvB-cwtOp(U5~(;kI*X7KynXw2I7&3A&*7JavvYS|_YbU3KbtdN%zgl`-)zl& zLCBraAG~U=F#J|%$f(q{)3HP)H!LLF^P%UJ`reu2PvjEeFtr=C^>Fil-Y*YCrKWW) zRvLffDOvIixBVu!qN#GgnF#T7q*nrd%IS3)J*zN$PdDCyQzOJbA7IxIog7 z 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

&T@#2zS$(U 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 z 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 literal 0 HcmV?d00001 From 54774284af713bf15b9aa58085c28a447139ae85 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Wed, 20 Aug 2025 23:57:30 +0900 Subject: [PATCH 061/107] =?UTF-8?q?[BOOK-273]=20fix:=20=EB=8F=85=EC=84=9C?= =?UTF-8?q?=20=EA=B8=B0=EB=A1=9D=20=ED=99=94=EB=A9=B4=20=EB=AC=B8=EC=9E=A5?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=EC=8B=9C=20=ED=82=A4=EB=B3=B4=EB=93=9C?= =?UTF-8?q?=EC=97=90=20=EC=9D=98=ED=95=B4=20=EB=AC=B8=EC=9E=A5=20=EC=8A=A4?= =?UTF-8?q?=EC=BA=94=20=EB=B2=84=ED=8A=BC=EC=9D=B4=20=EA=B0=80=EB=A0=A4?= =?UTF-8?q?=EC=A7=80=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- feature/record/build.gradle.kts | 1 + .../booket/feature/record/step/QuoteStep.kt | 26 ++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/feature/record/build.gradle.kts b/feature/record/build.gradle.kts index c6354e6e..8b49d90b 100644 --- a/feature/record/build.gradle.kts +++ b/feature/record/build.gradle.kts @@ -25,6 +25,7 @@ dependencies { libs.androidx.camera.lifecycle, libs.androidx.camera.view, + libs.compose.keyboard.state, libs.logger, ) } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt index d9d49d98..d4617377 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt @@ -18,9 +18,15 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusDirection +import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.res.stringResource @@ -41,6 +47,7 @@ import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.feature.record.R import com.ninecraft.booket.feature.record.register.RecordRegisterUiEvent import com.ninecraft.booket.feature.record.register.RecordRegisterUiState +import tech.thdev.compose.extensions.keyboard.state.foundation.rememberKeyboardVisible import com.ninecraft.booket.core.designsystem.R as designR @Composable @@ -49,6 +56,15 @@ internal fun QuoteStep( modifier: Modifier = Modifier, ) { val focusManager = LocalFocusManager.current + val scrollState = rememberScrollState() + val keyboardState by rememberKeyboardVisible() + var isSentenceTextFieldFocused by remember { mutableStateOf(false) } + + LaunchedEffect(keyboardState, isSentenceTextFieldFocused) { + if (keyboardState && isSentenceTextFieldFocused) { + scrollState.animateScrollTo(scrollState.maxValue) + } + } Box( modifier = modifier @@ -61,7 +77,7 @@ internal fun QuoteStep( .fillMaxSize() .padding(horizontal = ReedTheme.spacing.spacing5) .padding(bottom = 80.dp) - .verticalScroll(rememberScrollState()), + .verticalScroll(scrollState), ) { Text( text = stringResource(R.string.quote_step_title), @@ -105,7 +121,10 @@ internal fun QuoteStep( recordHintRes = R.string.quote_step_sentence_hint, modifier = Modifier .fillMaxWidth() - .height(140.dp), + .height(140.dp) + .onFocusChanged { focusState -> + isSentenceTextFieldFocused = focusState.isFocused + }, keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Text, imeAction = ImeAction.Default, @@ -143,7 +162,8 @@ internal fun QuoteStep( .fillMaxWidth() .align(Alignment.BottomCenter) .padding(horizontal = ReedTheme.spacing.spacing5) - .padding(bottom = ReedTheme.spacing.spacing4), + .padding(bottom = ReedTheme.spacing.spacing4) + .imePadding(), enabled = state.isNextButtonEnabled, text = stringResource(R.string.record_next_button), multipleEventsCutterEnabled = state.currentStep == RecordStep.IMPRESSION, From 3d54ce0a78f746375613045c4b23572cbb14a6c9 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 00:03:56 +0900 Subject: [PATCH 062/107] =?UTF-8?q?[BOOK-273]=20chore:=20=ED=95=84?= =?UTF-8?q?=EC=9A=94=EC=97=86=EB=8A=94=20imePadding()=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/feature/record/step/QuoteStep.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt index d4617377..d22196fa 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt @@ -162,8 +162,7 @@ internal fun QuoteStep( .fillMaxWidth() .align(Alignment.BottomCenter) .padding(horizontal = ReedTheme.spacing.spacing5) - .padding(bottom = ReedTheme.spacing.spacing4) - .imePadding(), + .padding(bottom = ReedTheme.spacing.spacing4), enabled = state.isNextButtonEnabled, text = stringResource(R.string.record_next_button), multipleEventsCutterEnabled = state.currentStep == RecordStep.IMPRESSION, From 7972082f9ecf7986cc9451f414c941a9abf58252 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 00:08:49 +0900 Subject: [PATCH 063/107] =?UTF-8?q?[BOOK-273]=20feat:=20=EB=8F=84=EC=84=9C?= =?UTF-8?q?=20=EC=83=81=EC=84=B8,=20=EA=B8=B0=EB=A1=9D=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20->=20=EA=B8=B0=EB=A1=9D=20=EC=B9=B4=EB=93=9C=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/book/BookDetailPresenter.kt | 16 ++++++++++ .../feature/detail/book/BookDetailUi.kt | 5 +-- .../feature/detail/book/BookDetailUiState.kt | 1 + .../detail/record/RecordDetailPresenter.kt | 32 ++++++++++++++----- .../feature/detail/record/RecordDetailUi.kt | 4 ++- .../detail/record/RecordDetailUiState.kt | 1 + .../booket/feature/screens/Screens.kt | 8 +++++ 7 files changed, 56 insertions(+), 11 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 4cf040b2..46dcac6f 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -19,10 +19,12 @@ import com.ninecraft.booket.core.model.ReadingRecordModel import com.ninecraft.booket.core.ui.component.FooterState import com.ninecraft.booket.feature.screens.BookDetailScreen import com.ninecraft.booket.feature.screens.LoginScreen +import com.ninecraft.booket.feature.screens.RecordCardScreen import com.ninecraft.booket.feature.screens.RecordDetailScreen import com.ninecraft.booket.feature.screens.RecordEditScreen import com.ninecraft.booket.feature.screens.RecordScreen import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs +import com.ninecraft.booket.feature.screens.extensions.delayedGoTo import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained @@ -298,6 +300,20 @@ class BookDetailPresenter @AssistedInject constructor( isRecordDeleteDialogVisible = false } + is BookDetailUiEvent.OnShareRecordClick -> { + isRecordMenuBottomSheetVisible = false + scope.launch { + navigator.delayedGoTo( + RecordCardScreen( + quote = selectedRecordInfo.quote, + bookTitle = selectedRecordInfo.bookTitle, + author = selectedRecordInfo.author, + emotionTag = selectedRecordInfo.emotionTags[0], + ), + ) + } + } + is BookDetailUiEvent.OnEditRecordClick -> { isRecordMenuBottomSheetVisible = false navigator.goTo( diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt index e7ea5923..eda9f00a 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt @@ -135,7 +135,9 @@ internal fun BookDetailUi( state.eventSink(BookDetailUiEvent.OnRecordMenuBottomSheetDismiss) }, sheetState = recordMenuBottomSheetState, - onShareRecordClick = {}, + onShareRecordClick = { + state.eventSink(BookDetailUiEvent.OnShareRecordClick) + }, onEditRecordClick = { coroutineScope.launch { recordMenuBottomSheetState.hide() @@ -219,7 +221,6 @@ internal fun BookDetailContent( ) { item { ReedTopAppBar( - title = "", startIconRes = designR.drawable.ic_chevron_left, startIconOnClick = { state.eventSink(BookDetailUiEvent.OnBackClick) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt index 89cca6ea..550d0ee1 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUiState.kt @@ -72,6 +72,7 @@ sealed interface BookDetailUiEvent : CircuitUiEvent { data class OnRecordMenuClick(val selectedRecordInfo: ReadingRecordModel) : BookDetailUiEvent data object OnRecordMenuBottomSheetDismiss : BookDetailUiEvent data object OnRecordDeleteDialogDismiss : BookDetailUiEvent + data object OnShareRecordClick : BookDetailUiEvent data object OnEditRecordClick : BookDetailUiEvent data object OnDeleteRecordClick : BookDetailUiEvent data object OnDeleteRecord : BookDetailUiEvent diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index 0e8f8e49..a8b7996c 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -10,9 +10,11 @@ import com.ninecraft.booket.core.common.utils.handleException import com.ninecraft.booket.core.data.api.repository.RecordRepository import com.ninecraft.booket.core.model.RecordDetailModel import com.ninecraft.booket.feature.screens.LoginScreen +import com.ninecraft.booket.feature.screens.RecordCardScreen import com.ninecraft.booket.feature.screens.RecordDetailScreen import com.ninecraft.booket.feature.screens.RecordEditScreen import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs +import com.ninecraft.booket.feature.screens.extensions.delayedGoTo import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained @@ -91,27 +93,41 @@ class RecordDetailPresenter @AssistedInject constructor( fun handleEvent(event: RecordDetailUiEvent) { when (event) { - RecordDetailUiEvent.OnCloseClick -> { + is RecordDetailUiEvent.OnCloseClick -> { navigator.pop() } - RecordDetailUiEvent.OnRetryClick -> { + is RecordDetailUiEvent.OnRetryClick -> { getRecordDetail(screen.recordId) } - RecordDetailUiEvent.OnRecordMenuClick -> { + is RecordDetailUiEvent.OnRecordMenuClick -> { isRecordMenuBottomSheetVisible = true } - RecordDetailUiEvent.OnRecordMenuBottomSheetDismiss -> { + is RecordDetailUiEvent.OnRecordMenuBottomSheetDismiss -> { isRecordMenuBottomSheetVisible = false } - RecordDetailUiEvent.OnRecordDeleteDialogDismiss -> { + is RecordDetailUiEvent.OnRecordDeleteDialogDismiss -> { isRecordDeleteDialogVisible = false } - RecordDetailUiEvent.OnEditRecordClick -> { + is RecordDetailUiEvent.OnShareRecordClick -> { + isRecordMenuBottomSheetVisible = false + scope.launch { + navigator.delayedGoTo( + RecordCardScreen( + quote = recordDetailInfo.quote, + bookTitle = recordDetailInfo.bookTitle, + author = recordDetailInfo.author, + emotionTag = recordDetailInfo.emotionTags[0], + ), + ) + } + } + + is RecordDetailUiEvent.OnEditRecordClick -> { isRecordMenuBottomSheetVisible = false navigator.goTo( RecordEditScreen( @@ -130,12 +146,12 @@ class RecordDetailPresenter @AssistedInject constructor( ) } - RecordDetailUiEvent.OnDeleteRecordClick -> { + is RecordDetailUiEvent.OnDeleteRecordClick -> { isRecordMenuBottomSheetVisible = false isRecordDeleteDialogVisible = true } - RecordDetailUiEvent.OnDelete -> { + is RecordDetailUiEvent.OnDelete -> { isRecordDeleteDialogVisible = false deleteRecord( readingRecordId = screen.recordId, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt index 9f9d89a1..a9137960 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt @@ -84,7 +84,9 @@ internal fun RecordDetailUi( state.eventSink(RecordDetailUiEvent.OnRecordMenuBottomSheetDismiss) }, sheetState = recordMenuBottomSheetState, - onShareRecordClick = {}, + onShareRecordClick = { + state.eventSink(RecordDetailUiEvent.OnShareRecordClick) + }, onEditRecordClick = { coroutineScope.launch { recordMenuBottomSheetState.hide() diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt index b4a2e51b..07ff909a 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUiState.kt @@ -37,6 +37,7 @@ sealed interface RecordDetailUiEvent : CircuitUiEvent { data object OnRecordMenuClick : RecordDetailUiEvent data object OnRecordMenuBottomSheetDismiss : RecordDetailUiEvent data object OnRecordDeleteDialogDismiss : RecordDetailUiEvent + data object OnShareRecordClick : RecordDetailUiEvent data object OnEditRecordClick : RecordDetailUiEvent data object OnDeleteRecordClick : RecordDetailUiEvent data object OnDelete : RecordDetailUiEvent diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt index 0306e1f4..e521d37d 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt @@ -71,3 +71,11 @@ data object OnboardingScreen : ReedScreen(name = "Onboarding()") @Parcelize data object SplashScreen : ReedScreen(name = "Splash()") + +@Parcelize +data class RecordCardScreen( + val quote: String, + val bookTitle: String, + val author: String, + val emotionTag: String, +) : ReedScreen(name = "RecordCard()") From 50dfa5a1233adc032d17a987b905225714ad8e55 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 00:11:44 +0900 Subject: [PATCH 064/107] =?UTF-8?q?[BOOK-273]=20feat:=20RecordCardPresente?= =?UTF-8?q?r,=20RecordCardUiState=20=EA=B5=AC=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/card/RecordCardPresenter.kt | 60 +++++++++++++++++++ .../detail/card/RecordCardSideEffect.kt | 28 +++++++++ .../feature/detail/card/RecordCardUiState.kt | 31 ++++++++++ 3 files changed, 119 insertions(+) create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt new file mode 100644 index 00000000..90e8636f --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt @@ -0,0 +1,60 @@ +package com.ninecraft.booket.feature.detail.card + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import com.ninecraft.booket.feature.screens.RecordCardScreen +import com.slack.circuit.codegen.annotations.CircuitInject +import com.slack.circuit.retained.rememberRetained +import com.slack.circuit.runtime.Navigator +import com.slack.circuit.runtime.presenter.Presenter +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject +import dagger.hilt.android.components.ActivityRetainedComponent + +class RecordCardPresenter @AssistedInject constructor( + @Assisted private val screen: RecordCardScreen, + @Assisted private val navigator: Navigator, +) : Presenter { + @Composable + override fun present(): RecordCardUiState { + var isLoading by rememberRetained { mutableStateOf(false) } + var sideEffect by rememberRetained { mutableStateOf(null) } + + fun handleEvent(event: RecordCardUiEvent) { + when (event) { + is RecordCardUiEvent.InitSideEffect -> { + sideEffect = null + } + + is RecordCardUiEvent.OnBackClick -> { + navigator.pop() + } + + is RecordCardUiEvent.OnSaveClick -> {} + is RecordCardUiEvent.OnShareClick -> {} + } + } + + return RecordCardUiState( + isLoading = isLoading, + quote = screen.quote, + bookTitle = screen.bookTitle, + author = screen.author, + emotionTag = screen.emotionTag, + sideEffect = sideEffect, + eventSink = ::handleEvent, + ) + } +} + +@CircuitInject(RecordCardScreen::class, ActivityRetainedComponent::class) +@AssistedFactory +fun interface Factory { + fun create( + screen: RecordCardScreen, + navigator: Navigator, + ): RecordCardPresenter +} diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt new file mode 100644 index 00000000..490e2cc3 --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt @@ -0,0 +1,28 @@ +package com.ninecraft.booket.feature.detail.card + +import android.widget.Toast +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext +import com.skydoves.compose.effects.RememberedEffect + +@Composable +internal fun HandleRecordCardSideEffects( + state: RecordCardUiState, + eventSink: (RecordCardUiEvent) -> Unit, +) { + val context = LocalContext.current + + RememberedEffect(state.sideEffect) { + when (state.sideEffect) { + is RecordCardSideEffect.ShowToast -> { + Toast.makeText(context, state.sideEffect.message, Toast.LENGTH_SHORT).show() + } + + null -> {} + } + + if (state.sideEffect != null) { + eventSink(RecordCardUiEvent.InitSideEffect) + } + } +} diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt new file mode 100644 index 00000000..a42eb5a7 --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt @@ -0,0 +1,31 @@ +package com.ninecraft.booket.feature.detail.card + +import androidx.compose.runtime.Immutable +import com.slack.circuit.runtime.CircuitUiEvent +import com.slack.circuit.runtime.CircuitUiState +import java.util.UUID + +data class RecordCardUiState( + val isLoading: Boolean = false, + val quote: String = "", + val bookTitle: String = "", + val author: String = "", + val emotionTag: String = "", + val sideEffect: RecordCardSideEffect? = null, + val eventSink: (RecordCardUiEvent) -> Unit, +) : CircuitUiState + +@Immutable +sealed interface RecordCardSideEffect { + data class ShowToast( + val message: String, + private val key: String = UUID.randomUUID().toString(), + ) : RecordCardSideEffect +} + +sealed interface RecordCardUiEvent : CircuitUiEvent { + data object InitSideEffect : RecordCardUiEvent + data object OnBackClick : RecordCardUiEvent + data object OnSaveClick : RecordCardUiEvent + data object OnShareClick : RecordCardUiEvent +} From 85c5b782f4f5a1edd38b9d23589194e03736b652 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 01:09:57 +0900 Subject: [PATCH 065/107] =?UTF-8?q?[BOOK-273]=20feat:=20RecordCard=20UI=20?= =?UTF-8?q?=EA=B5=AC=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/designsystem/theme/Typography.kt | 13 ++ .../feature/detail/card/RecordCardUi.kt | 147 ++++++++++++++++++ .../detail/card/component/RecordCard.kt | 97 ++++++++++++ .../detail/src/main/res/values/strings.xml | 3 + 4 files changed, 260 insertions(+) create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt create mode 100644 feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt diff --git a/core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Typography.kt b/core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Typography.kt index c53e170c..9882936e 100644 --- a/core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Typography.kt +++ b/core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Typography.kt @@ -17,6 +17,10 @@ val pretendardFamily = FontFamily( Font(R.font.pretendard_semi_bold, FontWeight.SemiBold, FontStyle.Normal), ) +val hakgyoansimFamily = FontFamily( + Font(R.font.hakgyoansim_santteutbatang_m, FontWeight.Medium, FontStyle.Normal), +) + private val defaultLineHeightStyle = LineHeightStyle( alignment = LineHeightStyle.Alignment.Center, trim = LineHeightStyle.Trim.None, @@ -73,4 +77,13 @@ data class ReedTypography( // Caption val caption1Regular: TextStyle = style(12, 16, -0.12f, FontWeight.Normal), val caption2Regular: TextStyle = style(11, 14, -0.11f, FontWeight.Normal), + + val quoteMedium: TextStyle = TextStyle( + fontFamily = hakgyoansimFamily, + lineHeightStyle = defaultLineHeightStyle, + fontSize = 18.sp, + lineHeight = 28.sp, + letterSpacing = (-0.27f).sp, + fontWeight = FontWeight.Medium, + ), ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt new file mode 100644 index 00000000..c832c33f --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt @@ -0,0 +1,147 @@ +package com.ninecraft.booket.feature.detail.card + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import com.ninecraft.booket.core.designsystem.DevicePreview +import com.ninecraft.booket.core.designsystem.component.button.ReedButton +import com.ninecraft.booket.core.designsystem.component.button.ReedButtonColorStyle +import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle +import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.core.designsystem.theme.White +import com.ninecraft.booket.core.ui.ReedScaffold +import com.ninecraft.booket.core.ui.component.ReedTopAppBar +import com.ninecraft.booket.feature.detail.R +import com.ninecraft.booket.feature.detail.card.component.RecordCard +import com.ninecraft.booket.feature.screens.RecordCardScreen +import com.slack.circuit.codegen.annotations.CircuitInject +import dagger.hilt.android.components.ActivityRetainedComponent +import com.ninecraft.booket.core.designsystem.R as designR + +@CircuitInject(RecordCardScreen::class, ActivityRetainedComponent::class) +@Composable +internal fun RecordCardUi( + state: RecordCardUiState, + modifier: Modifier = Modifier, +) { + ReedScaffold( + modifier = modifier.fillMaxSize(), + containerColor = White, + ) { innerPadding -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(innerPadding), + ) { + ReedTopAppBar( + startIconRes = designR.drawable.ic_chevron_left, + startIconDescription = "Back Icon", + startIconOnClick = { + state.eventSink(RecordCardUiEvent.OnBackClick) + }, + ) + + Column( + modifier = Modifier + .weight(1f) + .padding(horizontal = ReedTheme.spacing.spacing5) + .verticalScroll(rememberScrollState()), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + RecordCard( + quote = state.quote, + bookTitle = state.bookTitle, + author = state.author, + emotionTag = state.emotionTag, + modifier = Modifier.padding( + top = ReedTheme.spacing.spacing5, + start = ReedTheme.spacing.spacing5, + end = ReedTheme.spacing.spacing5, + ) + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) + Text( + text = stringResource(R.string.share_impressive_quote), + color = ReedTheme.colors.contentSecondary, + textAlign = TextAlign.Center, + style = ReedTheme.typography.label1Medium, + ) + Spacer(modifier = Modifier.height(50.dp)) + } + + Row( + modifier = Modifier + .fillMaxWidth() + .padding( + start = ReedTheme.spacing.spacing5, + end = ReedTheme.spacing.spacing5, + bottom = ReedTheme.spacing.spacing4, + ), + ) { + ReedButton( + onClick = { + state.eventSink(RecordCardUiEvent.OnSaveClick) + }, + text = stringResource(R.string.save_image), + sizeStyle = largeButtonStyle, + colorStyle = ReedButtonColorStyle.SECONDARY, + modifier = Modifier.weight(1f), + leadingIcon = { + Icon( + imageVector = ImageVector.vectorResource(R.drawable.ic_save), + contentDescription = "Save Icon", + tint = Color.Unspecified, + ) + }, + ) + Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing2)) + ReedButton( + onClick = { + state.eventSink(RecordCardUiEvent.OnShareClick) + }, + text = stringResource(R.string.share_card), + sizeStyle = largeButtonStyle, + colorStyle = ReedButtonColorStyle.PRIMARY, + modifier = Modifier.weight(1f), + leadingIcon = { + Icon( + imageVector = ImageVector.vectorResource(R.drawable.ic_share), + contentDescription = "Share Icon", + tint = Color.Unspecified, + ) + }, + ) + } + } + } +} + +@DevicePreview +@Composable +private fun RecordCardUiPreview() { + ReedTheme { + RecordCardUi( + state = RecordCardUiState( + eventSink = {}, + ), + ) + } +} diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt new file mode 100644 index 00000000..2ccf9d56 --- /dev/null +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt @@ -0,0 +1,97 @@ +package com.ninecraft.booket.feature.detail.card.component + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.EmotionTag +import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.feature.detail.R + +@Composable +internal fun RecordCard( + quote: String, + bookTitle: String, + author: String, + emotionTag: String, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .fillMaxWidth() + .height(448.dp) + .clip(RoundedCornerShape(ReedTheme.radius.md)), + ) { + Image( + painter = painterResource(getEmotionCardImage(emotionTag)), + contentDescription = "Record Card Image", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop, + ) + + Column( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = ReedTheme.spacing.spacing8), + ) { + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing16)) + Text( + text = quote, + style = ReedTheme.typography.quoteMedium, + color = ReedTheme.colors.contentPrimary, + modifier = Modifier.fillMaxWidth(), + ) + Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.End, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = "『$bookTitle』", + style = ReedTheme.typography.quoteMedium, + color = ReedTheme.colors.contentPrimary, + ) + } + } + } +} + +private fun getEmotionCardImage(emotionTag: String): Int { + return when (emotionTag) { + EmotionTag.WARMTH.label -> R.drawable.img_record_card_warm + EmotionTag.JOY.label -> R.drawable.img_record_card_joy + EmotionTag.SADNESS.label -> R.drawable.img_record_card_sad + EmotionTag.INSIGHT.label -> R.drawable.img_record_card_insight + else -> R.drawable.img_record_card_warm + } +} + +@ComponentPreview +@Composable +private fun RecordCardPreview() { + ReedTheme { + RecordCard( + quote = "이 세상에 집이라 이름 붙일 수 없는 것이 있다면 그건 바로 여기, 내가 앉아 있는 이곳일 것이다.", + bookTitle = "샤이닝", + author = "욘 포세 ", + emotionTag = EmotionTag.WARMTH.label, + ) + } +} diff --git a/feature/detail/src/main/res/values/strings.xml b/feature/detail/src/main/res/values/strings.xml index c28bec69..e316c76f 100644 --- a/feature/detail/src/main/res/values/strings.xml +++ b/feature/detail/src/main/res/values/strings.xml @@ -17,4 +17,7 @@ 삭제 취소 도서 삭제하기 + 이미지 저장 + 카드 공유 + 인상 깊은 문장을\n공유해보세요! From 8e362f64b75859b7fa41b5743709200b78f69387 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 02:10:05 +0900 Subject: [PATCH 066/107] =?UTF-8?q?[BOOK-275]=20fix:=20DTO=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt index eb9a25a6..71c5f52f 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionResponse.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.Serializable @Serializable data class CloudVisionResponse( - val response: List, + val responses: List, ) @Serializable From 98cf936f82d92b5a39c4a1d19c85c9316c8fe5d1 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 02:13:48 +0900 Subject: [PATCH 067/107] =?UTF-8?q?[BOOK-275]=20feat:=20Cloud=20Vision=20A?= =?UTF-8?q?PI=20=ED=82=A4=EB=A5=BC=20BuildConfig=EB=A1=9C=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/ocr/build.gradle.kts | 17 +++++++++ .../core/ocr/analyzer/CloudOcrRecognizer.kt | 35 +++++++++---------- .../core/ocr/di/CloudVisionNetworkModule.kt | 11 ++++-- .../core/ocr/service/CloudVisionService.kt | 2 +- 4 files changed, 43 insertions(+), 22 deletions(-) diff --git a/core/ocr/build.gradle.kts b/core/ocr/build.gradle.kts index 8fb05c16..4d70a87e 100644 --- a/core/ocr/build.gradle.kts +++ b/core/ocr/build.gradle.kts @@ -1,5 +1,8 @@ @file:Suppress("INLINE_FROM_HIGHER_PLATFORM") +import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties + + plugins { alias(libs.plugins.booket.android.library) alias(libs.plugins.booket.android.retrofit) @@ -8,13 +11,27 @@ plugins { android { namespace = "com.ninecraft.booket.core.ocr" + + defaultConfig { + buildConfigField("String", "CLOUD_VISION_API_KEY", getApiKey("CLOUD_VISION_API_KEY")) + } + + buildFeatures { + buildConfig = true + } } dependencies { implementations( + projects.core.common, + libs.logger, libs.androidx.camera.core, libs.google.mlkit.text.recognition.korean, ) } + +fun getApiKey(propertyKey: String): String { + return gradleLocalProperties(rootDir, providers).getProperty(propertyKey) +} diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt index 49e9ab1c..2e545614 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt @@ -1,34 +1,33 @@ package com.ninecraft.booket.core.ocr.analyzer +import com.ninecraft.booket.core.common.utils.runSuspendCatching +import com.ninecraft.booket.core.ocr.BuildConfig import com.ninecraft.booket.core.ocr.model.AnnotateImageRequest import com.ninecraft.booket.core.ocr.model.CloudVisionRequest +import com.ninecraft.booket.core.ocr.model.CloudVisionResponse import com.ninecraft.booket.core.ocr.model.Feature import com.ninecraft.booket.core.ocr.model.ImageContext import com.ninecraft.booket.core.ocr.model.VisionImage import com.ninecraft.booket.core.ocr.service.CloudVisionService -import com.orhanobut.logger.Logger import javax.inject.Inject class CloudOcrRecognizer @Inject constructor( private val service: CloudVisionService, ) { - suspend fun recognizeText(base64Image: String) { - try { - val request = CloudVisionRequest( - requests = listOf( - AnnotateImageRequest( - image = VisionImage(base64Image), - features = listOf(Feature(type = "TEXT_DETECTION")), - imageContext = ImageContext(languageHints = null), - ), + suspend fun recognizeText(base64Image: String): Result = runSuspendCatching { + val request = CloudVisionRequest( + requests = listOf( + AnnotateImageRequest( + image = VisionImage(base64Image), + features = listOf(Feature(type = "TEXT_DETECTION")), + imageContext = ImageContext(languageHints = null), ), - ) - service.annotate( - key = "", // local properties 에서 key 가져오기 - body = request, - ) - } catch (e: Exception) { - Logger.e("${e.message}") - } + ), + ) + + service.batchAnnotateImage( + key = BuildConfig.CLOUD_VISION_API_KEY, + body = request, + ) } } diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt index b7faf96c..acd398ab 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt @@ -1,5 +1,6 @@ package com.ninecraft.booket.core.ocr.di +import com.ninecraft.booket.core.ocr.BuildConfig import com.ninecraft.booket.core.ocr.service.CloudVisionService import dagger.Module import dagger.Provides @@ -14,7 +15,7 @@ import retrofit2.converter.kotlinx.serialization.asConverterFactory import java.util.concurrent.TimeUnit import javax.inject.Singleton - +private const val BASE_URL = "https://vision.googleapis.com/" private const val MaxTimeoutMillis = 15_000L private val jsonRule = Json { @@ -39,7 +40,11 @@ object CloudVisionNetworkModule { @CloudVisionOkHttp fun provideOkHttp(): OkHttpClient { val log = HttpLoggingInterceptor().apply { - level = HttpLoggingInterceptor.Level.BASIC + level = if (BuildConfig.DEBUG) { + HttpLoggingInterceptor.Level.BASIC + } else { + HttpLoggingInterceptor.Level.NONE + } } return OkHttpClient.Builder() .addInterceptor(log) @@ -61,7 +66,7 @@ object CloudVisionNetworkModule { @CloudVisionOkHttp okHttpClient: OkHttpClient, ): Retrofit { return Retrofit.Builder() - .baseUrl("https://vision.googleapis.com/") + .baseUrl(BASE_URL) .client(okHttpClient) .addConverterFactory(jsonConverterFactory) .build() diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt index 00aca667..b4475a6c 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt @@ -8,7 +8,7 @@ import retrofit2.http.Query interface CloudVisionService { @POST("v1/images:annotate") - suspend fun annotate( + suspend fun batchAnnotateImage( @Query("key") key: String, @Body body: CloudVisionRequest ): CloudVisionResponse From 6fffe0e0256893dd3e0170532718525f56a660bb Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 02:39:09 +0900 Subject: [PATCH 068/107] =?UTF-8?q?[BOOK-275]=20feat:=20Cloud=20Vision=20A?= =?UTF-8?q?PI=EB=A5=BC=20=EC=82=AC=EC=9A=A9=ED=95=9C=20=EB=AC=B8=EC=9E=A5?= =?UTF-8?q?=20=EC=8A=A4=EC=BA=94=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/record/ocr/OcrPresenter.kt | 73 +++++++++++-------- .../booket/feature/record/ocr/OcrUi.kt | 46 ++++++++---- .../booket/feature/record/ocr/OcrUiState.kt | 4 +- 3 files changed, 76 insertions(+), 47 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt index 0105759a..c5c6ba54 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt @@ -1,12 +1,14 @@ package com.ninecraft.booket.feature.record.ocr +import android.util.Base64 import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue -import com.ninecraft.booket.core.ocr.analyzer.LiveTextAnalyzer +import com.ninecraft.booket.core.ocr.analyzer.CloudOcrRecognizer import com.ninecraft.booket.feature.screens.OcrScreen +import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator @@ -17,14 +19,16 @@ import dagger.assisted.AssistedInject import dagger.hilt.android.components.ActivityRetainedComponent import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toPersistentList +import kotlinx.coroutines.launch class OcrPresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, - private val liveTextAnalyzer: LiveTextAnalyzer.Factory, + private val recognizer: CloudOcrRecognizer, ) : Presenter { @Composable override fun present(): OcrUiState { + val scope = rememberCoroutineScope() var currentUi by rememberRetained { mutableStateOf(OcrUi.CAMERA) } var isPermissionDialogVisible by rememberRetained { mutableStateOf(false) } var sentenceList by rememberRetained { mutableStateOf(emptyList().toPersistentList()) } @@ -33,18 +37,37 @@ class OcrPresenter @AssistedInject constructor( var mergedSentence by rememberRetained { mutableStateOf("") } var isTextDetectionFailed by rememberRetained { mutableStateOf(false) } var isRecaptureDialogVisible by rememberRetained { mutableStateOf(false) } - - val analyzer = rememberRetained { - liveTextAnalyzer.create( - onTextDetected = { text -> - recognizedText = text - }, - ) - } - - DisposableEffect(Unit) { - onDispose { - analyzer.cancel() + var isLoading by rememberRetained { mutableStateOf(false) } + + fun recognizeText(base64Image: String) { + scope.launch { + try { + isLoading = true + recognizer.recognizeText(base64Image) + .onSuccess { + val text = it.responses.firstOrNull()?.fullTextAnnotation?.text.orEmpty() + recognizedText = text + + if (text.isNotBlank()) { + isTextDetectionFailed = false + val sentences = text + .split("\n") + .map { it.trim() } + .filter { it.isNotEmpty() } + + sentenceList = persistentListOf(*sentences.toTypedArray()) + currentUi = OcrUi.RESULT + } else { + isTextDetectionFailed = true + } + } + .onFailure { + isTextDetectionFailed = true + Logger.e("Cloud Vision API Error: ${it.message}") + } + } finally { + isLoading = false + } } } @@ -62,24 +85,9 @@ class OcrPresenter @AssistedInject constructor( isPermissionDialogVisible = false } - is OcrUiEvent.OnFrameReceived -> { - analyzer.analyze(event.imageProxy) - } - is OcrUiEvent.OnCaptureButtonClick -> { - if (recognizedText.isEmpty()) { - isTextDetectionFailed = true - } else { - isTextDetectionFailed = false - - val sentences = recognizedText - .split("\n") - .map { it.trim() } - .filter { it.isNotEmpty() } - sentenceList = persistentListOf(*sentences.toTypedArray()) - - currentUi = OcrUi.RESULT - } + val base64Image = Base64.encodeToString(event.imageData, Base64.NO_WRAP) + recognizeText(base64Image) } is OcrUiEvent.OnReCaptureButtonClick -> { @@ -119,6 +127,7 @@ class OcrPresenter @AssistedInject constructor( selectedIndices = selectedIndices, isTextDetectionFailed = isTextDetectionFailed, isRecaptureDialogVisible = isRecaptureDialogVisible, + isLoading = isLoading, eventSink = ::handleEvent, ) } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 4d5e0857..086540c1 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -8,7 +8,8 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts -import androidx.camera.core.ImageAnalysis +import androidx.camera.core.ImageCapture +import androidx.camera.core.ImageCaptureException import androidx.camera.view.LifecycleCameraController import androidx.camera.view.PreviewView import androidx.compose.foundation.background @@ -29,6 +30,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -66,9 +68,11 @@ import com.ninecraft.booket.feature.record.R import com.ninecraft.booket.feature.record.ocr.component.CameraFrame import com.ninecraft.booket.feature.record.ocr.component.SentenceBox import com.ninecraft.booket.feature.screens.OcrScreen +import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent import tech.thdev.compose.exteions.system.ui.controller.rememberSystemUiController +import java.io.File import com.ninecraft.booket.core.designsystem.R as designR @CircuitInject(OcrScreen::class, ActivityRetainedComponent::class) @@ -138,27 +142,17 @@ private fun CameraPreview( } /** - * Camera Controller & ImageAnalyzer + * Camera Controller */ val cameraController = remember { LifecycleCameraController(context) } - val imageAnalyzer = remember { - ImageAnalysis.Analyzer { imageProxy -> - state.eventSink(OcrUiEvent.OnFrameReceived(imageProxy)) - } - } DisposableEffect(isGranted, lifecycleOwner, cameraController) { if (isGranted) { cameraController.bindToLifecycle(lifecycleOwner) - cameraController.setImageAnalysisAnalyzer( - ContextCompat.getMainExecutor(context), - imageAnalyzer, - ) } onDispose { cameraController.unbind() - cameraController.clearImageAnalysisAnalyzer() } } @@ -254,7 +248,24 @@ private fun CameraPreview( Button( onClick = { - state.eventSink(OcrUiEvent.OnCaptureButtonClick) + val executor = ContextCompat.getMainExecutor(context) + val photoFile = File.createTempFile("ocr_", ".jpg", context.cacheDir) + val output = ImageCapture.OutputFileOptions.Builder(photoFile).build() + + cameraController.takePicture( + output, + executor, + object : ImageCapture.OnImageSavedCallback { + override fun onImageSaved(outputFileResults: ImageCapture.OutputFileResults) { + val bytes = photoFile.readBytes() + state.eventSink(OcrUiEvent.OnCaptureButtonClick(bytes)) + } + + override fun onError(exception: ImageCaptureException) { + Logger.e("ImageCaptureException: ${exception.message}") + } + } + ) }, modifier = Modifier.size(72.dp), shape = CircleShape, @@ -272,6 +283,15 @@ private fun CameraPreview( } Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing4)) } + + if (state.isLoading) { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = ReedTheme.colors.contentBrand) + } + } } } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt index 2a86e6d6..6effab8d 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt @@ -13,6 +13,7 @@ data class OcrUiState( val selectedIndices: Set = emptySet(), val isTextDetectionFailed: Boolean = false, val isRecaptureDialogVisible: Boolean = false, + val isLoading: Boolean = false, val eventSink: (OcrUiEvent) -> Unit, ) : CircuitUiState @@ -20,8 +21,7 @@ sealed interface OcrUiEvent : CircuitUiEvent { data object OnCloseClick : OcrUiEvent data object OnShowPermissionDialog : OcrUiEvent data object OnHidePermissionDialog : OcrUiEvent - data class OnFrameReceived(val imageProxy: ImageProxy) : OcrUiEvent - data object OnCaptureButtonClick : OcrUiEvent + data class OnCaptureButtonClick(val imageData: ByteArray) : OcrUiEvent data object OnReCaptureButtonClick : OcrUiEvent data object OnSelectionConfirmed : OcrUiEvent data object OnRecaptureDialogConfirmed : OcrUiEvent From 9434d5be167e6ac26c5bb442727b033536f18b05 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 02:48:44 +0900 Subject: [PATCH 069/107] =?UTF-8?q?[BOOK-275]=20feat:=20=EB=A1=9C=EB=94=A9?= =?UTF-8?q?=20=EC=A4=91=20=EC=BA=A1=EC=B2=98=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=ED=84=B0=EC=B9=98=20=EB=A7=89=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 086540c1..678ffa0d 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -247,6 +247,7 @@ private fun CameraPreview( } Button( + enabled = !state.isLoading, onClick = { val executor = ContextCompat.getMainExecutor(context) val photoFile = File.createTempFile("ocr_", ".jpg", context.cacheDir) From 793189b373fd7e2bd186664ef8c80b3686e4fdff Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 03:25:48 +0900 Subject: [PATCH 070/107] =?UTF-8?q?[BOOK-275]=20feat:=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=20=ED=95=B8=EB=93=A4=EB=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../record/ocr/HandleOcrSideEffects.kt | 23 +++++++++++++++++++ .../booket/feature/record/ocr/OcrPresenter.kt | 19 +++++++++++++-- .../booket/feature/record/ocr/OcrUi.kt | 2 ++ .../booket/feature/record/ocr/OcrUiState.kt | 12 +++++++++- 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/HandleOcrSideEffects.kt diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/HandleOcrSideEffects.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/HandleOcrSideEffects.kt new file mode 100644 index 00000000..8b9e8569 --- /dev/null +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/HandleOcrSideEffects.kt @@ -0,0 +1,23 @@ +package com.ninecraft.booket.feature.record.ocr + +import android.widget.Toast +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext +import com.skydoves.compose.effects.RememberedEffect + +@Composable +internal fun HandleOcrSideEffects( + state: OcrUiState, +) { + val context = LocalContext.current + + RememberedEffect(state.sideEffect) { + when (state.sideEffect) { + is OcrSideEffect.ShowToast -> { + Toast.makeText(context, state.sideEffect.message, Toast.LENGTH_SHORT).show() + } + + null -> {} + } + } +} diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt index c5c6ba54..bc27f9cc 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt @@ -6,6 +6,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.utils.handleException import com.ninecraft.booket.core.ocr.analyzer.CloudOcrRecognizer import com.ninecraft.booket.feature.screens.OcrScreen import com.orhanobut.logger.Logger @@ -38,6 +39,7 @@ class OcrPresenter @AssistedInject constructor( var isTextDetectionFailed by rememberRetained { mutableStateOf(false) } var isRecaptureDialogVisible by rememberRetained { mutableStateOf(false) } var isLoading by rememberRetained { mutableStateOf(false) } + var sideEffect by rememberRetained { mutableStateOf(null) } fun recognizeText(base64Image: String) { scope.launch { @@ -61,9 +63,19 @@ class OcrPresenter @AssistedInject constructor( isTextDetectionFailed = true } } - .onFailure { + .onFailure { exception -> isTextDetectionFailed = true - Logger.e("Cloud Vision API Error: ${it.message}") + + val handleErrorMessage = { message: String -> + Logger.e("Cloud Vision API Error: ${exception.message}") + sideEffect = OcrSideEffect.ShowToast(message) + } + + handleException( + exception = exception, + onError = handleErrorMessage, + onLoginRequired = {}, + ) } } finally { isLoading = false @@ -86,6 +98,8 @@ class OcrPresenter @AssistedInject constructor( } is OcrUiEvent.OnCaptureButtonClick -> { + isTextDetectionFailed = false + val base64Image = Base64.encodeToString(event.imageData, Base64.NO_WRAP) recognizeText(base64Image) } @@ -128,6 +142,7 @@ class OcrPresenter @AssistedInject constructor( isTextDetectionFailed = isTextDetectionFailed, isRecaptureDialogVisible = isRecaptureDialogVisible, isLoading = isLoading, + sideEffect = sideEffect, eventSink = ::handleEvent, ) } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 678ffa0d..3deab266 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -81,6 +81,8 @@ internal fun OcrUi( state: OcrUiState, modifier: Modifier = Modifier, ) { + HandleOcrSideEffects(state = state) + when (state.currentUi) { OcrUi.CAMERA -> CameraPreview(state = state, modifier = modifier) OcrUi.RESULT -> TextScanResult(state = state, modifier = modifier) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt index 6effab8d..946c2b04 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt @@ -1,10 +1,11 @@ package com.ninecraft.booket.feature.record.ocr -import androidx.camera.core.ImageProxy +import androidx.compose.runtime.Immutable import com.slack.circuit.runtime.CircuitUiEvent import com.slack.circuit.runtime.CircuitUiState import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.toPersistentList +import java.util.UUID data class OcrUiState( val currentUi: OcrUi = OcrUi.CAMERA, @@ -14,9 +15,18 @@ data class OcrUiState( val isTextDetectionFailed: Boolean = false, val isRecaptureDialogVisible: Boolean = false, val isLoading: Boolean = false, + val sideEffect: OcrSideEffect? = null, val eventSink: (OcrUiEvent) -> Unit, ) : CircuitUiState +@Immutable +sealed interface OcrSideEffect { + data class ShowToast( + val message: String, + private val key: String = UUID.randomUUID().toString(), + ) : OcrSideEffect +} + sealed interface OcrUiEvent : CircuitUiEvent { data object OnCloseClick : OcrUiEvent data object OnShowPermissionDialog : OcrUiEvent From 3240abc406814655b15aa66086fb48cafa475c4b Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 06:43:50 +0900 Subject: [PATCH 071/107] =?UTF-8?q?[BOOK-273]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20=EC=A0=80=EC=9E=A5=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B3=B5=EC=9C=A0=20=EA=B5=AC=ED=98=84=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/core/common/extensions/Modifier.kt | 9 ++++++++ .../detail/card/RecordCardPresenter.kt | 23 +++++++++++++++++-- .../feature/detail/card/RecordCardUi.kt | 16 +++++++++---- .../feature/detail/card/RecordCardUiState.kt | 6 +++++ 4 files changed, 47 insertions(+), 7 deletions(-) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt index 703d47c6..7016d59a 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt @@ -6,6 +6,9 @@ import androidx.compose.material3.ripple import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.composed +import androidx.compose.ui.draw.drawWithContent +import androidx.compose.ui.graphics.layer.GraphicsLayer +import androidx.compose.ui.graphics.layer.drawLayer import androidx.compose.ui.platform.debugInspectorInfo import androidx.compose.ui.semantics.Role import com.ninecraft.booket.core.common.utils.MultipleEventsCutter @@ -45,3 +48,9 @@ fun Modifier.clickableSingle( interactionSource = remember { MutableInteractionSource() }, ) } + +fun Modifier.captureToGraphicsLayer(graphicsLayer: GraphicsLayer,) = + this.drawWithContent { + graphicsLayer.record { this@drawWithContent.drawContent() } + drawLayer(graphicsLayer) + } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt index 90e8636f..c6065207 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt @@ -21,8 +21,18 @@ class RecordCardPresenter @AssistedInject constructor( @Composable override fun present(): RecordCardUiState { var isLoading by rememberRetained { mutableStateOf(false) } + var isCapturing by rememberRetained { mutableStateOf(false) } + var isSharing by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } + fun captureRecordCard() { + + } + + fun shareRecordCard() { + + } + fun handleEvent(event: RecordCardUiEvent) { when (event) { is RecordCardUiEvent.InitSideEffect -> { @@ -33,8 +43,15 @@ class RecordCardPresenter @AssistedInject constructor( navigator.pop() } - is RecordCardUiEvent.OnSaveClick -> {} - is RecordCardUiEvent.OnShareClick -> {} + is RecordCardUiEvent.OnSaveClick -> { + isCapturing = true + } + is RecordCardUiEvent.OnShareClick -> { + isSharing = true + } + is RecordCardUiEvent.CaptureRecordCard -> TODO() + is RecordCardUiEvent.SaveRecordCard -> TODO() + is RecordCardUiEvent.ShareRecordCard -> TODO() } } @@ -44,6 +61,8 @@ class RecordCardPresenter @AssistedInject constructor( bookTitle = screen.bookTitle, author = screen.author, emotionTag = screen.emotionTag, + isCapturing = isCapturing, + isSharing = isSharing, sideEffect = sideEffect, eventSink = ::handleEvent, ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt index c832c33f..7ead1905 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt @@ -16,11 +16,13 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.rememberGraphicsLayer import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +import com.ninecraft.booket.core.common.extensions.captureToGraphicsLayer import com.ninecraft.booket.core.designsystem.DevicePreview import com.ninecraft.booket.core.designsystem.component.button.ReedButton import com.ninecraft.booket.core.designsystem.component.button.ReedButtonColorStyle @@ -42,6 +44,8 @@ internal fun RecordCardUi( state: RecordCardUiState, modifier: Modifier = Modifier, ) { + val recordCardGraphicsLayer = rememberGraphicsLayer() + ReedScaffold( modifier = modifier.fillMaxSize(), containerColor = White, @@ -71,11 +75,13 @@ internal fun RecordCardUi( bookTitle = state.bookTitle, author = state.author, emotionTag = state.emotionTag, - modifier = Modifier.padding( - top = ReedTheme.spacing.spacing5, - start = ReedTheme.spacing.spacing5, - end = ReedTheme.spacing.spacing5, - ) + modifier = Modifier + .padding( + top = ReedTheme.spacing.spacing5, + start = ReedTheme.spacing.spacing5, + end = ReedTheme.spacing.spacing5, + ) + .captureToGraphicsLayer(recordCardGraphicsLayer), ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) Text( diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt index a42eb5a7..7fa827e8 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt @@ -1,6 +1,7 @@ package com.ninecraft.booket.feature.detail.card import androidx.compose.runtime.Immutable +import androidx.compose.ui.graphics.ImageBitmap import com.slack.circuit.runtime.CircuitUiEvent import com.slack.circuit.runtime.CircuitUiState import java.util.UUID @@ -11,6 +12,8 @@ data class RecordCardUiState( val bookTitle: String = "", val author: String = "", val emotionTag: String = "", + val isCapturing: Boolean = false, + val isSharing: Boolean = false, val sideEffect: RecordCardSideEffect? = null, val eventSink: (RecordCardUiEvent) -> Unit, ) : CircuitUiState @@ -28,4 +31,7 @@ sealed interface RecordCardUiEvent : CircuitUiEvent { data object OnBackClick : RecordCardUiEvent data object OnSaveClick : RecordCardUiEvent data object OnShareClick : RecordCardUiEvent + data class CaptureRecordCard(val bitmap: ImageBitmap) : RecordCardUiEvent + data class SaveRecordCard(val bitmap: ImageBitmap) : RecordCardUiEvent + data class ShareRecordCard(val bitmap: ImageBitmap) : RecordCardUiEvent } From 50d7037cf2931de8b486fc48e282306f5b5f6bc9 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 09:34:39 +0900 Subject: [PATCH 072/107] =?UTF-8?q?[BOOK-273]=20feat:=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=A0=80=EC=9E=A5/=EA=B3=B5=EC=9C=A0=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=ED=99=95=EC=9E=A5=20=ED=95=A8=EC=88=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/core/common/extensions/Context.kt | 123 ++++++++++++++++++ .../core/common/extensions/ImageBitmap.kt | 21 +++ 2 files changed, 144 insertions(+) create mode 100644 core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt create mode 100644 core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/ImageBitmap.kt diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt new file mode 100644 index 00000000..cdd99a1c --- /dev/null +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt @@ -0,0 +1,123 @@ +package com.ninecraft.booket.core.common.extensions + +import android.content.ContentValues +import android.content.Context +import android.graphics.Bitmap +import android.net.Uri +import android.os.Build +import android.os.Environment +import android.provider.MediaStore +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asAndroidBitmap +import androidx.core.app.ShareCompat +import androidx.core.content.FileProvider +import com.orhanobut.logger.Logger +import java.io.File + +@Suppress("TooGenericExceptionCaught") +fun Context.externalShareForBitmap(bitmap: ImageBitmap) { + try { + val file = File(bitmap.saveToDisk(this)) + val uri = FileProvider.getUriForFile(this, "$packageName.provider", file) + + ShareCompat.IntentBuilder(this) + .setStream(uri) + .setType("image/png") + .startChooser() + } catch (e: Exception) { + Logger.e("[externalShareFoBitmap] message: ${e.message}") + } +} + +@Suppress("TooGenericExceptionCaught") +fun Context.bitmapToFileUri(bitmap: ImageBitmap): Uri? { + return try { + val file = File(bitmap.saveToDisk(this)) + FileProvider.getUriForFile(this, "$packageName.provider", file) + } catch (e: Exception) { + Logger.e("Failed to convert bitmap to URI: ${e.message}") + null + } +} + +@Suppress("TooGenericExceptionCaught") +fun Context.shareImage(imageUri: Uri) { + try { + ShareCompat.IntentBuilder(this) + .setStream(imageUri) + .setType("image/png") + .startChooser() + } catch (e: Exception) { + Logger.e("Failed to share image: ${e.message}") + } +} + +@Suppress("TooGenericExceptionCaught") +fun Context.saveImageToGallery(bitmap: ImageBitmap) { + try { + val fileName = "bandalart_${System.currentTimeMillis()}.png" + val contentValues = ContentValues().apply { + put(MediaStore.Images.Media.DISPLAY_NAME, fileName) + put(MediaStore.Images.Media.MIME_TYPE, "image/png") + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_PICTURES) + put(MediaStore.Images.Media.IS_PENDING, 1) + } + } + + val imageUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues) + imageUri?.let { uri -> + contentResolver.openOutputStream(uri)?.use { outputStream -> + bitmap.asAndroidBitmap().compress(Bitmap.CompressFormat.PNG, 100, outputStream) + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + contentValues.clear() + contentValues.put(MediaStore.Images.Media.IS_PENDING, 0) + contentResolver.update(uri, contentValues, null, null) + } + } + } catch (e: Exception) { + Logger.e("Failed to save image to gallery: ${e.message}") + } +} + +@Suppress("TooGenericExceptionCaught") +fun Context.saveUriToGallery(imageUri: Uri) { + try { + val fileName = "bandalart_${System.currentTimeMillis()}.png" + val contentValues = createContentValues(fileName) + val destinationUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues) + ?: return + + copyUriContent(imageUri, destinationUri) + updatePendingStatus(destinationUri, contentValues) + } catch (e: Exception) { + Logger.e("Failed to save image to gallery: ${e.message}") + } +} + +private fun createContentValues(fileName: String) = ContentValues().apply { + put(MediaStore.Images.Media.DISPLAY_NAME, fileName) + put(MediaStore.Images.Media.MIME_TYPE, "image/png") + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_PICTURES) + put(MediaStore.Images.Media.IS_PENDING, 1) + } +} + +private fun Context.copyUriContent(sourceUri: Uri, destinationUri: Uri) { + contentResolver.openInputStream(sourceUri)?.use { input -> + contentResolver.openOutputStream(destinationUri)?.use { output -> + input.copyTo(output) + } + } +} + +private fun Context.updatePendingStatus(uri: Uri, contentValues: ContentValues) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + contentValues.clear() + contentValues.put(MediaStore.Images.Media.IS_PENDING, 0) + contentResolver.update(uri, contentValues, null, null) + } +} diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/ImageBitmap.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/ImageBitmap.kt new file mode 100644 index 00000000..f6dc1608 --- /dev/null +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/ImageBitmap.kt @@ -0,0 +1,21 @@ +package com.ninecraft.booket.core.common.extensions + +import android.content.Context +import android.graphics.Bitmap +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asAndroidBitmap +import java.io.File +import java.io.FileOutputStream + +fun ImageBitmap.saveToDisk(context: Context): String { + val fileName = "shared_image_${System.currentTimeMillis()}.png" + val cachePath = File(context.cacheDir, "images").also { it.mkdirs() } + val file = File(cachePath, fileName) + val outputStream = FileOutputStream(file) + + asAndroidBitmap().compress(Bitmap.CompressFormat.PNG, 100, outputStream) + outputStream.flush() + outputStream.close() + + return file.absolutePath +} From fec257ea02244abf9a17efde059c31f45302652e Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 11:14:30 +0900 Subject: [PATCH 073/107] =?UTF-8?q?[BOOK-273]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20=EC=A0=80=EC=9E=A5/=EA=B3=B5=EC=9C=A0?= =?UTF-8?q?=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 함수 제거 --- app/src/main/AndroidManifest.xml | 12 ++++ .../src/main/res/xml/backup_rules.xml | 0 .../main/res/xml/data_extraction_rules.xml | 0 .../main/res/xml/network_security_config.xml | 0 app/src/main/res/xml/provider_paths.xml | 11 ++++ .../booket/core/common/extensions/Context.kt | 64 ------------------- .../booket/core/common/extensions/Modifier.kt | 2 +- .../detail/book/BookDetailPresenter.kt | 1 - .../detail/card/RecordCardPresenter.kt | 23 ++++--- .../detail/card/RecordCardSideEffect.kt | 29 ++++++++- .../feature/detail/card/RecordCardUi.kt | 7 +- .../feature/detail/card/RecordCardUiState.kt | 4 +- .../detail/card/component/RecordCard.kt | 2 - .../detail/record/RecordDetailPresenter.kt | 1 - .../detail/src/main/res/values/strings.xml | 1 + .../booket/feature/screens/Screens.kt | 1 - 16 files changed, 73 insertions(+), 85 deletions(-) rename {core/designsystem => app}/src/main/res/xml/backup_rules.xml (100%) rename {core/designsystem => app}/src/main/res/xml/data_extraction_rules.xml (100%) rename {core/designsystem => app}/src/main/res/xml/network_security_config.xml (100%) create mode 100644 app/src/main/res/xml/provider_paths.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1443cd8d..7a93c3d6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,6 +60,18 @@ + + + + + diff --git a/core/designsystem/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml similarity index 100% rename from core/designsystem/src/main/res/xml/backup_rules.xml rename to app/src/main/res/xml/backup_rules.xml diff --git a/core/designsystem/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml similarity index 100% rename from core/designsystem/src/main/res/xml/data_extraction_rules.xml rename to app/src/main/res/xml/data_extraction_rules.xml diff --git a/core/designsystem/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml similarity index 100% rename from core/designsystem/src/main/res/xml/network_security_config.xml rename to app/src/main/res/xml/network_security_config.xml diff --git a/app/src/main/res/xml/provider_paths.xml b/app/src/main/res/xml/provider_paths.xml new file mode 100644 index 00000000..4a2cfe93 --- /dev/null +++ b/app/src/main/res/xml/provider_paths.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt index cdd99a1c..1b27823d 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt @@ -3,7 +3,6 @@ package com.ninecraft.booket.core.common.extensions import android.content.ContentValues import android.content.Context import android.graphics.Bitmap -import android.net.Uri import android.os.Build import android.os.Environment import android.provider.MediaStore @@ -29,29 +28,6 @@ fun Context.externalShareForBitmap(bitmap: ImageBitmap) { } } -@Suppress("TooGenericExceptionCaught") -fun Context.bitmapToFileUri(bitmap: ImageBitmap): Uri? { - return try { - val file = File(bitmap.saveToDisk(this)) - FileProvider.getUriForFile(this, "$packageName.provider", file) - } catch (e: Exception) { - Logger.e("Failed to convert bitmap to URI: ${e.message}") - null - } -} - -@Suppress("TooGenericExceptionCaught") -fun Context.shareImage(imageUri: Uri) { - try { - ShareCompat.IntentBuilder(this) - .setStream(imageUri) - .setType("image/png") - .startChooser() - } catch (e: Exception) { - Logger.e("Failed to share image: ${e.message}") - } -} - @Suppress("TooGenericExceptionCaught") fun Context.saveImageToGallery(bitmap: ImageBitmap) { try { @@ -81,43 +57,3 @@ fun Context.saveImageToGallery(bitmap: ImageBitmap) { Logger.e("Failed to save image to gallery: ${e.message}") } } - -@Suppress("TooGenericExceptionCaught") -fun Context.saveUriToGallery(imageUri: Uri) { - try { - val fileName = "bandalart_${System.currentTimeMillis()}.png" - val contentValues = createContentValues(fileName) - val destinationUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues) - ?: return - - copyUriContent(imageUri, destinationUri) - updatePendingStatus(destinationUri, contentValues) - } catch (e: Exception) { - Logger.e("Failed to save image to gallery: ${e.message}") - } -} - -private fun createContentValues(fileName: String) = ContentValues().apply { - put(MediaStore.Images.Media.DISPLAY_NAME, fileName) - put(MediaStore.Images.Media.MIME_TYPE, "image/png") - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_PICTURES) - put(MediaStore.Images.Media.IS_PENDING, 1) - } -} - -private fun Context.copyUriContent(sourceUri: Uri, destinationUri: Uri) { - contentResolver.openInputStream(sourceUri)?.use { input -> - contentResolver.openOutputStream(destinationUri)?.use { output -> - input.copyTo(output) - } - } -} - -private fun Context.updatePendingStatus(uri: Uri, contentValues: ContentValues) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - contentValues.clear() - contentValues.put(MediaStore.Images.Media.IS_PENDING, 0) - contentResolver.update(uri, contentValues, null, null) - } -} diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt index 7016d59a..019befb7 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Modifier.kt @@ -49,7 +49,7 @@ fun Modifier.clickableSingle( ) } -fun Modifier.captureToGraphicsLayer(graphicsLayer: GraphicsLayer,) = +fun Modifier.captureToGraphicsLayer(graphicsLayer: GraphicsLayer) = this.drawWithContent { graphicsLayer.record { this@drawWithContent.drawContent() } drawLayer(graphicsLayer) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 46dcac6f..4b67edf7 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -307,7 +307,6 @@ class BookDetailPresenter @AssistedInject constructor( RecordCardScreen( quote = selectedRecordInfo.quote, bookTitle = selectedRecordInfo.bookTitle, - author = selectedRecordInfo.author, emotionTag = selectedRecordInfo.emotionTags[0], ), ) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt index c6065207..e3df57f7 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt @@ -25,14 +25,6 @@ class RecordCardPresenter @AssistedInject constructor( var isSharing by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } - fun captureRecordCard() { - - } - - fun shareRecordCard() { - - } - fun handleEvent(event: RecordCardUiEvent) { when (event) { is RecordCardUiEvent.InitSideEffect -> { @@ -46,12 +38,20 @@ class RecordCardPresenter @AssistedInject constructor( is RecordCardUiEvent.OnSaveClick -> { isCapturing = true } + is RecordCardUiEvent.OnShareClick -> { isSharing = true } - is RecordCardUiEvent.CaptureRecordCard -> TODO() - is RecordCardUiEvent.SaveRecordCard -> TODO() - is RecordCardUiEvent.ShareRecordCard -> TODO() + + is RecordCardUiEvent.SaveRecordCard -> { + isCapturing = false + sideEffect = RecordCardSideEffect.SaveImage(event.bitmap) + } + + is RecordCardUiEvent.ShareRecordCard -> { + isSharing = false + sideEffect = RecordCardSideEffect.ShareImage(event.bitmap) + } } } @@ -59,7 +59,6 @@ class RecordCardPresenter @AssistedInject constructor( isLoading = isLoading, quote = screen.quote, bookTitle = screen.bookTitle, - author = screen.author, emotionTag = screen.emotionTag, isCapturing = isCapturing, isSharing = isSharing, diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt index 490e2cc3..2a98cee7 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardSideEffect.kt @@ -2,12 +2,18 @@ package com.ninecraft.booket.feature.detail.card import android.widget.Toast import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.ui.graphics.layer.GraphicsLayer import androidx.compose.ui.platform.LocalContext +import com.ninecraft.booket.core.common.extensions.externalShareForBitmap +import com.ninecraft.booket.core.common.extensions.saveImageToGallery +import com.ninecraft.booket.feature.detail.R import com.skydoves.compose.effects.RememberedEffect @Composable internal fun HandleRecordCardSideEffects( state: RecordCardUiState, + recordCardGraphicsLayer: GraphicsLayer, eventSink: (RecordCardUiEvent) -> Unit, ) { val context = LocalContext.current @@ -18,11 +24,32 @@ internal fun HandleRecordCardSideEffects( Toast.makeText(context, state.sideEffect.message, Toast.LENGTH_SHORT).show() } - null -> {} + is RecordCardSideEffect.SaveImage -> { + context.saveImageToGallery(state.sideEffect.bitmap) + Toast.makeText(context, context.getString(R.string.save_image_complete), Toast.LENGTH_SHORT).show() + } + + is RecordCardSideEffect.ShareImage -> { + context.externalShareForBitmap(state.sideEffect.bitmap) + } + + else -> {} } if (state.sideEffect != null) { eventSink(RecordCardUiEvent.InitSideEffect) } } + + LaunchedEffect(state.isCapturing) { + if (state.isCapturing) { + eventSink(RecordCardUiEvent.SaveRecordCard(recordCardGraphicsLayer.toImageBitmap())) + } + } + + LaunchedEffect(state.isSharing) { + if (state.isSharing) { + eventSink(RecordCardUiEvent.ShareRecordCard(recordCardGraphicsLayer.toImageBitmap())) + } + } } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt index 7ead1905..a7d5bc8e 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt @@ -46,6 +46,12 @@ internal fun RecordCardUi( ) { val recordCardGraphicsLayer = rememberGraphicsLayer() + HandleRecordCardSideEffects( + state = state, + recordCardGraphicsLayer = recordCardGraphicsLayer, + eventSink = state.eventSink, + ) + ReedScaffold( modifier = modifier.fillMaxSize(), containerColor = White, @@ -73,7 +79,6 @@ internal fun RecordCardUi( RecordCard( quote = state.quote, bookTitle = state.bookTitle, - author = state.author, emotionTag = state.emotionTag, modifier = Modifier .padding( diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt index 7fa827e8..c9880356 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUiState.kt @@ -24,6 +24,9 @@ sealed interface RecordCardSideEffect { val message: String, private val key: String = UUID.randomUUID().toString(), ) : RecordCardSideEffect + + data class SaveImage(val bitmap: ImageBitmap) : RecordCardSideEffect + data class ShareImage(val bitmap: ImageBitmap) : RecordCardSideEffect } sealed interface RecordCardUiEvent : CircuitUiEvent { @@ -31,7 +34,6 @@ sealed interface RecordCardUiEvent : CircuitUiEvent { data object OnBackClick : RecordCardUiEvent data object OnSaveClick : RecordCardUiEvent data object OnShareClick : RecordCardUiEvent - data class CaptureRecordCard(val bitmap: ImageBitmap) : RecordCardUiEvent data class SaveRecordCard(val bitmap: ImageBitmap) : RecordCardUiEvent data class ShareRecordCard(val bitmap: ImageBitmap) : RecordCardUiEvent } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt index 2ccf9d56..02bf35a5 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt @@ -28,7 +28,6 @@ import com.ninecraft.booket.feature.detail.R internal fun RecordCard( quote: String, bookTitle: String, - author: String, emotionTag: String, modifier: Modifier = Modifier, ) { @@ -90,7 +89,6 @@ private fun RecordCardPreview() { RecordCard( quote = "이 세상에 집이라 이름 붙일 수 없는 것이 있다면 그건 바로 여기, 내가 앉아 있는 이곳일 것이다.", bookTitle = "샤이닝", - author = "욘 포세 ", emotionTag = EmotionTag.WARMTH.label, ) } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index a8b7996c..b2e50fe8 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -120,7 +120,6 @@ class RecordDetailPresenter @AssistedInject constructor( RecordCardScreen( quote = recordDetailInfo.quote, bookTitle = recordDetailInfo.bookTitle, - author = recordDetailInfo.author, emotionTag = recordDetailInfo.emotionTags[0], ), ) diff --git a/feature/detail/src/main/res/values/strings.xml b/feature/detail/src/main/res/values/strings.xml index e316c76f..b75b80f1 100644 --- a/feature/detail/src/main/res/values/strings.xml +++ b/feature/detail/src/main/res/values/strings.xml @@ -18,6 +18,7 @@ 취소 도서 삭제하기 이미지 저장 + 이미지를 저장했습니다. 카드 공유 인상 깊은 문장을\n공유해보세요! diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt index e521d37d..59101b6f 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt @@ -76,6 +76,5 @@ data object SplashScreen : ReedScreen(name = "Splash()") data class RecordCardScreen( val quote: String, val bookTitle: String, - val author: String, val emotionTag: String, ) : ReedScreen(name = "RecordCard()") From 3e86cd2f522fe989d2a6b3b1a81fdceba7363cdb Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 11:23:52 +0900 Subject: [PATCH 074/107] =?UTF-8?q?[BOOK-273]=20fix:=20=EC=A4=91=EB=B3=B5?= =?UTF-8?q?=20=ED=8C=A8=EB=94=A9=20=EC=A0=9C=EA=B1=B0=20=EB=B0=8F=20?= =?UTF-8?q?=EB=AC=B8=EA=B5=AC=20=EC=8B=9C=EC=95=88=EC=97=90=20=EB=A7=9E?= =?UTF-8?q?=EA=B2=8C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ninecraft/booket/feature/detail/card/RecordCardUi.kt | 6 +----- feature/detail/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt index a7d5bc8e..bc92801a 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt @@ -81,11 +81,7 @@ internal fun RecordCardUi( bookTitle = state.bookTitle, emotionTag = state.emotionTag, modifier = Modifier - .padding( - top = ReedTheme.spacing.spacing5, - start = ReedTheme.spacing.spacing5, - end = ReedTheme.spacing.spacing5, - ) + .padding(top = ReedTheme.spacing.spacing5) .captureToGraphicsLayer(recordCardGraphicsLayer), ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) diff --git a/feature/detail/src/main/res/values/strings.xml b/feature/detail/src/main/res/values/strings.xml index b75b80f1..49889711 100644 --- a/feature/detail/src/main/res/values/strings.xml +++ b/feature/detail/src/main/res/values/strings.xml @@ -18,7 +18,7 @@ 취소 도서 삭제하기 이미지 저장 - 이미지를 저장했습니다. + 이미지를 저장했습니다! 카드 공유 인상 깊은 문장을\n공유해보세요! From b0fd45d867298b069b5b2a0024e456b6a612fc60 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 13:02:48 +0900 Subject: [PATCH 075/107] =?UTF-8?q?[BOOK-273]=20fix:=20=EC=B9=B4=EB=93=9C?= =?UTF-8?q?=20=EA=B3=B5=EC=9C=A0=20=EB=B0=8F=20=EC=A0=80=EC=9E=A5=EC=8B=9C?= =?UTF-8?q?=20radius=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/feature/detail/card/RecordCardUi.kt | 3 +++ .../booket/feature/detail/card/component/RecordCard.kt | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt index bc92801a..97e39ca7 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt @@ -9,12 +9,14 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.rememberGraphicsLayer import androidx.compose.ui.graphics.vector.ImageVector @@ -82,6 +84,7 @@ internal fun RecordCardUi( emotionTag = state.emotionTag, modifier = Modifier .padding(top = ReedTheme.spacing.spacing5) + .clip(RoundedCornerShape(ReedTheme.radius.md)) .captureToGraphicsLayer(recordCardGraphicsLayer), ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing8)) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt index 02bf35a5..15a474f5 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt @@ -34,8 +34,7 @@ internal fun RecordCard( Box( modifier = modifier .fillMaxWidth() - .height(448.dp) - .clip(RoundedCornerShape(ReedTheme.radius.md)), + .height(448.dp), ) { Image( painter = painterResource(getEmotionCardImage(emotionTag)), From b3a3b5b510400036d758029edd62497306344f23 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 15:54:53 +0900 Subject: [PATCH 076/107] =?UTF-8?q?[BOOK-273]=20fix:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20=EB=86=92=EC=9D=B4=20=ED=95=98=EB=93=9C?= =?UTF-8?q?=EC=BD=94=EB=94=A9=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/card/component/RecordCard.kt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt index 15a474f5..e9264378 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt @@ -10,15 +10,12 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource -import androidx.compose.ui.unit.dp import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.EmotionTag import com.ninecraft.booket.core.designsystem.theme.ReedTheme @@ -31,11 +28,7 @@ internal fun RecordCard( emotionTag: String, modifier: Modifier = Modifier, ) { - Box( - modifier = modifier - .fillMaxWidth() - .height(448.dp), - ) { + Box(modifier = modifier.fillMaxWidth()) { Image( painter = painterResource(getEmotionCardImage(emotionTag)), contentDescription = "Record Card Image", From 38c27b0728e7134f065aeb1c7791fd79f74a499f Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 16:06:52 +0900 Subject: [PATCH 077/107] =?UTF-8?q?[BOOK-273]=20feat:=20=EA=B3=B5=ED=86=B5?= =?UTF-8?q?=20LoadingIndicator=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LoadingIndicator가 노출되는 동안 뒤에 화면의 클릭을 막음 누락된 preview theme 추가 --- .../booket/core/ui/component/ReedErrorUi.kt | 20 ++++++----- .../core/ui/component/ReedLoadingIndicator.kt | 33 +++++++++++++++++++ .../feature/detail/book/BookDetailUi.kt | 9 ++--- .../feature/detail/record/RecordDetailUi.kt | 13 ++------ .../ninecraft/booket/feature/home/HomeUi.kt | 10 ++---- .../booket/feature/library/LibraryUi.kt | 9 ++--- .../ninecraft/booket/feature/login/LoginUi.kt | 7 ++-- .../feature/search/book/BookSearchUi.kt | 9 ++--- .../feature/search/library/LibrarySearchUi.kt | 9 ++--- .../booket/feature/settings/SettingsUi.kt | 12 ++----- 10 files changed, 62 insertions(+), 69 deletions(-) create mode 100644 core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedLoadingIndicator.kt diff --git a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedErrorUi.kt b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedErrorUi.kt index 8f0b96df..083b39db 100644 --- a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedErrorUi.kt +++ b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedErrorUi.kt @@ -50,17 +50,21 @@ fun ReedErrorUi( @ComponentPreview @Composable private fun ReedNetworkErrorUiPreview() { - ReedErrorUi( - exception = java.io.IOException("네트워크 오류"), - onRetryClick = {}, - ) + ReedTheme { + ReedErrorUi( + exception = java.io.IOException("네트워크 오류"), + onRetryClick = {}, + ) + } } @ComponentPreview @Composable private fun ReedServerErrorUiPreview() { - ReedErrorUi( - exception = Exception("알 수 없는 문제"), - onRetryClick = {}, - ) + ReedTheme { + ReedErrorUi( + exception = Exception("알 수 없는 문제"), + onRetryClick = {}, + ) + } } diff --git a/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedLoadingIndicator.kt b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedLoadingIndicator.kt new file mode 100644 index 00000000..3adbc6b0 --- /dev/null +++ b/core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/ReedLoadingIndicator.kt @@ -0,0 +1,33 @@ +package com.ninecraft.booket.core.ui.component + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import com.ninecraft.booket.core.common.extensions.noRippleClickable +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.theme.ReedTheme + +@Composable +fun ReedLoadingIndicator( + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .fillMaxSize() + .noRippleClickable {}, + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator(color = ReedTheme.colors.contentBrand) + } +} + +@ComponentPreview +@Composable +private fun ReedLoadingIndicatorPreview() { + ReedTheme { + ReedLoadingIndicator() + } +} diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt index eda9f00a..0c1a6d7d 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt @@ -15,7 +15,6 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.Text @@ -42,6 +41,7 @@ import com.ninecraft.booket.core.ui.component.InfinityLazyColumn import com.ninecraft.booket.core.ui.component.LoadStateFooter import com.ninecraft.booket.core.ui.component.ReedDialog import com.ninecraft.booket.core.ui.component.ReedErrorUi +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.core.ui.component.ReedTopAppBar import com.ninecraft.booket.feature.detail.R import com.ninecraft.booket.feature.detail.book.component.BookItem @@ -201,12 +201,7 @@ internal fun BookDetailContent( when (state.uiState) { is UiState.Idle -> {} is UiState.Loading -> { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - CircularProgressIndicator(color = ReedTheme.colors.contentBrand) - } + ReedLoadingIndicator() } is UiState.Success -> { diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt index a9137960..ebd2bea1 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt @@ -1,6 +1,5 @@ package com.ninecraft.booket.feature.detail.record -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize @@ -8,13 +7,11 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import com.ninecraft.booket.core.designsystem.ComponentPreview @@ -25,6 +22,7 @@ import com.ninecraft.booket.core.model.RecordDetailModel import com.ninecraft.booket.core.ui.ReedScaffold import com.ninecraft.booket.core.ui.component.ReedDialog import com.ninecraft.booket.core.ui.component.ReedErrorUi +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.core.ui.component.ReedTopAppBar import com.ninecraft.booket.feature.detail.R import com.ninecraft.booket.feature.detail.record.component.BookItem @@ -122,12 +120,7 @@ private fun RecordDetailContent( when (state.uiState) { is UiState.Idle -> {} is UiState.Loading -> { - Box( - modifier = modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - CircularProgressIndicator(color = ReedTheme.colors.contentBrand) - } + ReedLoadingIndicator() } is UiState.Success -> { @@ -141,7 +134,7 @@ private fun RecordDetailContent( ReedDivider() Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) Column( - modifier = Modifier + modifier = modifier .fillMaxSize() .padding(horizontal = ReedTheme.spacing.spacing5), ) { diff --git a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt index 094c5955..82221807 100644 --- a/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt +++ b/feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt @@ -17,10 +17,8 @@ import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource @@ -30,6 +28,7 @@ import com.ninecraft.booket.core.designsystem.theme.HomeBg import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.ui.ReedScaffold import com.ninecraft.booket.core.ui.component.ReedErrorUi +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.home.component.BookCard import com.ninecraft.booket.feature.home.component.EmptyBookCard import com.ninecraft.booket.feature.home.component.HomeBanner @@ -98,12 +97,7 @@ internal fun HomeContent( when (state.uiState) { is UiState.Idle -> {} is UiState.Loading -> { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - CircularProgressIndicator(color = ReedTheme.colors.contentBrand) - } + ReedLoadingIndicator() } is UiState.Success -> { diff --git a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt index 982bada8..ed1f0512 100644 --- a/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt +++ b/feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUi.kt @@ -10,7 +10,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.items -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -25,6 +24,7 @@ import com.ninecraft.booket.core.ui.ReedScaffold import com.ninecraft.booket.core.ui.component.InfinityLazyColumn import com.ninecraft.booket.core.ui.component.LoadStateFooter import com.ninecraft.booket.core.ui.component.ReedErrorUi +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.library.component.FilterChipGroup import com.ninecraft.booket.feature.library.component.LibraryBookItem import com.ninecraft.booket.feature.library.component.LibraryHeader @@ -106,12 +106,7 @@ internal fun LibraryContent( } is UiState.Loading -> { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - CircularProgressIndicator(color = ReedTheme.colors.contentBrand) - } + ReedLoadingIndicator() } is UiState.Success -> { diff --git a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginUi.kt b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginUi.kt index d6ce3c93..c56d466f 100644 --- a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginUi.kt +++ b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginUi.kt @@ -11,7 +11,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.systemBarsPadding -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -30,6 +29,7 @@ import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.core.ui.ReedScaffold +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.screens.LoginScreen import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent @@ -102,10 +102,7 @@ internal fun LoginUi( } if (state.isLoading) { - CircularProgressIndicator( - modifier = Modifier.align(Alignment.Center), - color = ReedTheme.colors.contentBrand, - ) + ReedLoadingIndicator() } } } diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt index b3fbebfe..9e4a9c8f 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchUi.kt @@ -10,7 +10,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Text @@ -32,6 +31,7 @@ import com.ninecraft.booket.core.ui.component.InfinityLazyColumn import com.ninecraft.booket.core.ui.component.LoadStateFooter import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar import com.ninecraft.booket.core.ui.component.ReedErrorUi +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.screens.SearchScreen import com.ninecraft.booket.feature.search.R import com.ninecraft.booket.feature.search.book.component.BookItem @@ -109,12 +109,7 @@ internal fun SearchContent( when (state.uiState) { is UiState.Loading -> { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - CircularProgressIndicator(color = ReedTheme.colors.contentBrand) - } + ReedLoadingIndicator() } is UiState.Error -> { diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt index 1564fc3e..148c12fc 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchUi.kt @@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -27,6 +26,7 @@ import com.ninecraft.booket.core.ui.component.InfinityLazyColumn import com.ninecraft.booket.core.ui.component.LoadStateFooter import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar import com.ninecraft.booket.core.ui.component.ReedErrorUi +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.screens.LibrarySearchScreen import com.ninecraft.booket.feature.search.R import com.ninecraft.booket.feature.search.common.component.RecentSearchTitle @@ -91,12 +91,7 @@ internal fun LibrarySearchContent( when (state.uiState) { is UiState.Loading -> { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - CircularProgressIndicator(color = ReedTheme.colors.contentBrand) - } + ReedLoadingIndicator() } is UiState.Error -> { diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt index 030c58c9..e6dcfc0a 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt @@ -1,7 +1,6 @@ package com.ninecraft.booket.feature.settings import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -11,7 +10,6 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.Text @@ -34,6 +32,7 @@ import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.core.ui.ReedScaffold import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar import com.ninecraft.booket.core.ui.component.ReedDialog +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.screens.SettingsScreen import com.ninecraft.booket.feature.settings.component.WithdrawConfirmationBottomSheet import com.slack.circuit.codegen.annotations.CircuitInject @@ -144,14 +143,7 @@ internal fun SettingsUi( } if (state.isLoading) { - Box( - modifier = Modifier.fillMaxSize(), - ) { - CircularProgressIndicator( - modifier = Modifier.align(Alignment.Center), - color = ReedTheme.colors.contentBrand, - ) - } + ReedLoadingIndicator() } if (state.isLogoutDialogVisible) { From a36945b2cd2135f1198e6abdd563e5a797b3cb22 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 16:22:16 +0900 Subject: [PATCH 078/107] =?UTF-8?q?[BOOK-273]=20fix:=20=EB=8F=85=EC=84=9C?= =?UTF-8?q?=20=EA=B8=B0=EB=A1=9D=20API=20=EC=A4=91=EB=B3=B5=20=ED=98=B8?= =?UTF-8?q?=EC=B6=9C=20=EB=B0=A9=EC=A7=80=EB=A5=BC=20=EC=9C=84=ED=95=9C=20?= =?UTF-8?q?LoadingIndicator=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../register/RecordRegisterPresenter.kt | 60 +++++++++++-------- .../record/register/RecordRegisterUi.kt | 5 ++ .../record/register/RecordRegisterUiState.kt | 1 + .../feature/record/step/ImpressionStep.kt | 1 + 4 files changed, 41 insertions(+), 26 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt index ba892739..072e56fe 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt @@ -32,6 +32,7 @@ import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import dagger.hilt.android.components.ActivityRetainedComponent import kotlinx.collections.immutable.toPersistentList +import kotlinx.coroutines.delay import kotlinx.coroutines.launch class RecordRegisterPresenter @AssistedInject constructor( @@ -43,6 +44,7 @@ class RecordRegisterPresenter @AssistedInject constructor( @Composable override fun present(): RecordRegisterUiState { val scope = rememberCoroutineScope() + var isLoading by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } var currentStep by rememberRetained { mutableStateOf(RecordStep.QUOTE) } val recordPageState = rememberTextFieldState() @@ -108,33 +110,38 @@ class RecordRegisterPresenter @AssistedInject constructor( impression: String, ) { scope.launch { - repository.postRecord( - userBookId = userBookId, - pageNumber = pageNumber, - quote = quote, - emotionTags = emotionTags, - review = impression, - ).onSuccess { result -> - savedRecordId = result.id - isRecordSavedDialogVisible = true - }.onFailure { exception -> - postErrorDialog( - errorScope = ErrorScope.RECORD_REGISTER, - exception = exception, - ) - - val handleErrorMessage = { message: String -> - Logger.e(message) - sideEffect = RecordRegisterSideEffect.ShowToast(message) - } + try { + isLoading = true + repository.postRecord( + userBookId = userBookId, + pageNumber = pageNumber, + quote = quote, + emotionTags = emotionTags, + review = impression, + ).onSuccess { result -> + savedRecordId = result.id + isRecordSavedDialogVisible = true + }.onFailure { exception -> + postErrorDialog( + errorScope = ErrorScope.RECORD_REGISTER, + exception = exception, + ) + + val handleErrorMessage = { message: String -> + Logger.e(message) + sideEffect = RecordRegisterSideEffect.ShowToast(message) + } - handleException( - exception = exception, - onError = handleErrorMessage, - onLoginRequired = { - navigator.resetRoot(LoginScreen) - }, - ) + handleException( + exception = exception, + onError = handleErrorMessage, + onLoginRequired = { + navigator.resetRoot(LoginScreen) + }, + ) + } + } finally { + isLoading = false } } } @@ -259,6 +266,7 @@ class RecordRegisterPresenter @AssistedInject constructor( } return RecordRegisterUiState( + isLoading = isLoading, currentStep = currentStep, recordPageState = recordPageState, recordSentenceState = recordSentenceState, diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt index 6ec6428c..4f676ad6 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt @@ -24,6 +24,7 @@ import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar import com.ninecraft.booket.core.ui.component.ReedDialog +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.record.R import com.ninecraft.booket.feature.record.step.EmotionStep import com.ninecraft.booket.feature.record.step.ImpressionStep @@ -80,6 +81,10 @@ internal fun RecordRegisterUi( } } + if (state.isLoading) { + ReedLoadingIndicator() + } + if (state.isExitDialogVisible) { ReedDialog( title = stringResource(R.string.record_exit_dialog_title), diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUiState.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUiState.kt index a3ae39d3..516886d2 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUiState.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUiState.kt @@ -11,6 +11,7 @@ import kotlinx.collections.immutable.persistentListOf import java.util.UUID data class RecordRegisterUiState( + val isLoading: Boolean = false, val currentStep: RecordStep = RecordStep.QUOTE, val recordPageState: TextFieldState = TextFieldState(), val recordSentenceState: TextFieldState = TextFieldState(), diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt index e555e5ae..f93120b2 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt @@ -40,6 +40,7 @@ import com.ninecraft.booket.core.designsystem.component.button.smallRoundedButto import com.ninecraft.booket.core.designsystem.component.textfield.ReedRecordTextField import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White +import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.record.R import com.ninecraft.booket.feature.record.component.ImpressionGuideBottomSheet import com.ninecraft.booket.feature.record.register.RecordRegisterUiEvent From df821343bababd3528f55183fad0a3f475ae6682 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 16:25:00 +0900 Subject: [PATCH 079/107] =?UTF-8?q?[BOOK-273]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20=EB=AC=B8=EC=9E=A5=20maxLine=20?= =?UTF-8?q?=EC=98=B5=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/card/component/RecordCard.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt index e9264378..bd8912ac 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt @@ -16,6 +16,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextOverflow import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.EmotionTag import com.ninecraft.booket.core.designsystem.theme.ReedTheme @@ -44,9 +45,11 @@ internal fun RecordCard( Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing16)) Text( text = quote, - style = ReedTheme.typography.quoteMedium, - color = ReedTheme.colors.contentPrimary, modifier = Modifier.fillMaxWidth(), + color = ReedTheme.colors.contentPrimary, + overflow = TextOverflow.Ellipsis, + maxLines = 7, + style = ReedTheme.typography.quoteMedium, ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing6)) Row( @@ -56,8 +59,8 @@ internal fun RecordCard( ) { Text( text = "『$bookTitle』", - style = ReedTheme.typography.quoteMedium, color = ReedTheme.colors.contentPrimary, + style = ReedTheme.typography.quoteMedium, ) } } From adc19053e682281426dd05bbe760b1c114169f8c Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 16:39:36 +0900 Subject: [PATCH 080/107] =?UTF-8?q?[BOOK-273]=20fix:=20=EA=B0=90=EC=83=81?= =?UTF-8?q?=ED=8F=89=20=EA=B8=B0=EB=A1=9D=20=ED=99=94=EB=A9=B4=20=ED=82=A4?= =?UTF-8?q?=EB=B3=B4=EB=93=9C=EC=97=90=20=EC=9D=98=ED=95=B4=20=EA=B0=90?= =?UTF-8?q?=EC=83=81=ED=8F=89=20=EA=B0=80=EC=9D=B4=EB=93=9C=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=20=EA=B0=80=EB=A0=A4=EC=A7=80=EB=8A=94=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/record/step/ImpressionStep.kt | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt index f93120b2..4b6c4d5e 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt @@ -18,12 +18,16 @@ import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource @@ -46,6 +50,7 @@ import com.ninecraft.booket.feature.record.component.ImpressionGuideBottomSheet import com.ninecraft.booket.feature.record.register.RecordRegisterUiEvent import com.ninecraft.booket.feature.record.register.RecordRegisterUiState import kotlinx.coroutines.launch +import tech.thdev.compose.extensions.keyboard.state.foundation.rememberKeyboardVisible import com.ninecraft.booket.core.designsystem.R as designR @OptIn(ExperimentalMaterial3Api::class) @@ -55,11 +60,18 @@ fun ImpressionStep( modifier: Modifier = Modifier, ) { val coroutineScope = rememberCoroutineScope() - val impressionGuideBottomSheetState = - rememberModalBottomSheetState(skipPartiallyExpanded = true) - + val impressionGuideBottomSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) val focusRequester = remember { FocusRequester() } val keyboardController = LocalSoftwareKeyboardController.current + val scrollState = rememberScrollState() + val keyboardState by rememberKeyboardVisible() + var isSentenceTextFieldFocused by remember { mutableStateOf(false) } + + LaunchedEffect(keyboardState, isSentenceTextFieldFocused) { + if (keyboardState && isSentenceTextFieldFocused) { + scrollState.animateScrollTo(scrollState.maxValue) + } + } LaunchedEffect(Unit) { if (state.impressionState.text.isEmpty()) { @@ -78,7 +90,8 @@ fun ImpressionStep( modifier = Modifier .fillMaxSize() .padding(horizontal = ReedTheme.spacing.spacing5) - .verticalScroll(rememberScrollState()), + .padding(bottom = 80.dp) + .verticalScroll(scrollState), ) { Text( text = stringResource(R.string.impression_step_title), @@ -98,7 +111,10 @@ fun ImpressionStep( modifier = Modifier .fillMaxWidth() .focusRequester(focusRequester) - .height(140.dp), + .height(140.dp) + .onFocusChanged { focusState -> + isSentenceTextFieldFocused = focusState.isFocused + }, keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Text, imeAction = ImeAction.Default, From 65a0aedd8a71d69b9305c9890ee6796a5abf13a1 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 17:07:02 +0900 Subject: [PATCH 081/107] =?UTF-8?q?[BOOK-273]=20feat:=20=EC=BB=A4=EC=8A=A4?= =?UTF-8?q?=ED=85=80=20=ED=88=B4=ED=8C=81=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../record/component/CustomTooltipBox.kt | 69 +++++++++++++++++++ .../register/RecordRegisterPresenter.kt | 7 +- .../record/register/RecordRegisterUiState.kt | 2 + .../feature/record/step/ImpressionStep.kt | 43 ++++++++---- .../booket/feature/record/step/QuoteStep.kt | 6 ++ .../record/src/main/res/values/strings.xml | 2 + 6 files changed, 113 insertions(+), 16 deletions(-) create mode 100644 feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/component/CustomTooltipBox.kt diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/component/CustomTooltipBox.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/component/CustomTooltipBox.kt new file mode 100644 index 00000000..80cc30b2 --- /dev/null +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/component/CustomTooltipBox.kt @@ -0,0 +1,69 @@ +package com.ninecraft.booket.feature.record.component + +import androidx.annotation.StringRes +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.theme.ReedTheme +import com.ninecraft.booket.feature.record.R + +@Composable +internal fun CustomTooltipBox( + @StringRes messageResId: Int, +) { + Row(verticalAlignment = Alignment.CenterVertically) { + Box( + Modifier + .shadow(ReedTheme.radius.xs, RoundedCornerShape(ReedTheme.radius.xs), clip = false) + .background( + ReedTheme.colors.contentPrimary, + RoundedCornerShape(ReedTheme.radius.xs), + ) + .padding( + horizontal = ReedTheme.spacing.spacing3, + vertical = ReedTheme.spacing.spacing2, + ), + ) { + Text( + text = stringResource(messageResId), + color = ReedTheme.colors.contentInverse, + style = ReedTheme.typography.label2Regular, + ) + } + Box( + Modifier + .padding(start = 2.dp) + .size(ReedTheme.spacing.spacing3) + .offset( + x = (-10).dp, + ) + .graphicsLayer { + rotationZ = 45f + shadowElevation = 8.dp.toPx() + clip = true + } + .background(ReedTheme.colors.contentPrimary), + ) + } +} + +@ComponentPreview +@Composable +private fun CustomTooltipBoxPreview() { + ReedTheme { + CustomTooltipBox(messageResId = R.string.scan_tooltip_message) + } +} diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt index 072e56fe..e7cace37 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt @@ -32,7 +32,6 @@ import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import dagger.hilt.android.components.ActivityRetainedComponent import kotlinx.collections.immutable.toPersistentList -import kotlinx.coroutines.delay import kotlinx.coroutines.launch class RecordRegisterPresenter @AssistedInject constructor( @@ -94,6 +93,8 @@ class RecordRegisterPresenter @AssistedInject constructor( } } } + var isScanTooltipVisible by rememberRetained { mutableStateOf(true) } + var isImpressionGuideTooltipVisible by rememberRetained { mutableStateOf(true) } val ocrNavigator = rememberAnsweringNavigator(navigator) { result -> recordSentenceState.edit { @@ -180,6 +181,7 @@ class RecordRegisterPresenter @AssistedInject constructor( } is RecordRegisterUiEvent.OnSentenceScanButtonClick -> { + isScanTooltipVisible = false ocrNavigator.goTo(OcrScreen) } @@ -188,6 +190,7 @@ class RecordRegisterPresenter @AssistedInject constructor( } is RecordRegisterUiEvent.OnImpressionGuideButtonClick -> { + isImpressionGuideTooltipVisible = false beforeSelectedImpressionGuide = selectedImpressionGuide if (impressionState.text.isEmpty()) { selectedImpressionGuide = "" @@ -282,6 +285,8 @@ class RecordRegisterPresenter @AssistedInject constructor( isImpressionGuideBottomSheetVisible = isImpressionGuideBottomSheetVisible, isExitDialogVisible = isExitDialogVisible, isRecordSavedDialogVisible = isRecordSavedDialogVisible, + isScanTooltipVisible = isScanTooltipVisible, + isImpressionGuideTooltipVisible = isImpressionGuideTooltipVisible, sideEffect = sideEffect, eventSink = ::handleEvent, ) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUiState.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUiState.kt index 516886d2..9641f987 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUiState.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUiState.kt @@ -27,6 +27,8 @@ data class RecordRegisterUiState( val isImpressionGuideBottomSheetVisible: Boolean = false, val isExitDialogVisible: Boolean = false, val isRecordSavedDialogVisible: Boolean = false, + val isScanTooltipVisible: Boolean = true, + val isImpressionGuideTooltipVisible: Boolean = true, val sideEffect: RecordRegisterSideEffect? = null, val eventSink: (RecordRegisterUiEvent) -> Unit, ) : CircuitUiState diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt index 4b6c4d5e..604b45db 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt @@ -1,8 +1,10 @@ package com.ninecraft.booket.feature.record.step import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -44,8 +46,8 @@ import com.ninecraft.booket.core.designsystem.component.button.smallRoundedButto import com.ninecraft.booket.core.designsystem.component.textfield.ReedRecordTextField import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White -import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator import com.ninecraft.booket.feature.record.R +import com.ninecraft.booket.feature.record.component.CustomTooltipBox import com.ninecraft.booket.feature.record.component.ImpressionGuideBottomSheet import com.ninecraft.booket.feature.record.register.RecordRegisterUiEvent import com.ninecraft.booket.feature.record.register.RecordRegisterUiState @@ -121,21 +123,32 @@ fun ImpressionStep( ), ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing3)) - ReedButton( - onClick = { - state.eventSink(RecordRegisterUiEvent.OnImpressionGuideButtonClick) - }, - colorStyle = ReedButtonColorStyle.STROKE, - sizeStyle = smallRoundedButtonStyle, - modifier = Modifier.align(Alignment.End), - text = stringResource(R.string.impression_step_guide), - leadingIcon = { - Icon( - imageVector = ImageVector.vectorResource(designR.drawable.ic_book_open), - contentDescription = "Impression Guide Icon", + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.End, + verticalAlignment = Alignment.CenterVertically, + ) { + if (state.isImpressionGuideTooltipVisible) { + CustomTooltipBox( + messageResId = R.string.impression_guide_tooltip_message, ) - }, - ) + } + + ReedButton( + onClick = { + state.eventSink(RecordRegisterUiEvent.OnImpressionGuideButtonClick) + }, + colorStyle = ReedButtonColorStyle.STROKE, + sizeStyle = smallRoundedButtonStyle, + text = stringResource(R.string.impression_step_guide), + leadingIcon = { + Icon( + imageVector = ImageVector.vectorResource(designR.drawable.ic_book_open), + contentDescription = "Impression Guide Icon", + ) + }, + ) + } } ReedButton( diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt index d22196fa..023be3ae 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt @@ -45,6 +45,7 @@ import com.ninecraft.booket.core.designsystem.component.textfield.digitOnlyInput import com.ninecraft.booket.core.designsystem.theme.ReedTheme import com.ninecraft.booket.core.designsystem.theme.White import com.ninecraft.booket.feature.record.R +import com.ninecraft.booket.feature.record.component.CustomTooltipBox import com.ninecraft.booket.feature.record.register.RecordRegisterUiEvent import com.ninecraft.booket.feature.record.register.RecordRegisterUiState import tech.thdev.compose.extensions.keyboard.state.foundation.rememberKeyboardVisible @@ -134,7 +135,12 @@ internal fun QuoteStep( Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End, + verticalAlignment = Alignment.CenterVertically, ) { + if (state.isScanTooltipVisible) { + CustomTooltipBox(messageResId = R.string.scan_tooltip_message) + } + ReedButton( onClick = { state.eventSink(RecordRegisterUiEvent.OnSentenceScanButtonClick) diff --git a/feature/record/src/main/res/values/strings.xml b/feature/record/src/main/res/values/strings.xml index 2bd05714..093c7da1 100644 --- a/feature/record/src/main/res/values/strings.xml +++ b/feature/record/src/main/res/values/strings.xml @@ -38,4 +38,6 @@ 기록 보러가기 닫기 해당 책의 마지막 페이지 수를 초과했습니다 + 예시 문장을 알려드려요 + 스캔으로 빠르게 입력해요 From 4b798d7703a096b4366c5ddb262c9538ad2e12ce Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 18:35:25 +0900 Subject: [PATCH 082/107] [BOOK-275] chore: code style check success --- .../ninecraft/booket/core/ocr/model/CloudVisionRequest.kt | 5 ++--- .../ninecraft/booket/core/ocr/service/CloudVisionService.kt | 2 +- .../kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionRequest.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionRequest.kt index 7f465448..b3d0c730 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionRequest.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/model/CloudVisionRequest.kt @@ -2,7 +2,6 @@ package com.ninecraft.booket.core.ocr.model import kotlinx.serialization.Serializable - @Serializable data class CloudVisionRequest( val requests: List, @@ -12,7 +11,7 @@ data class CloudVisionRequest( data class AnnotateImageRequest( val image: VisionImage, val features: List, - val imageContext: ImageContext? = null + val imageContext: ImageContext? = null, ) @Serializable @@ -27,5 +26,5 @@ data class Feature( @Serializable data class ImageContext( - val languageHints: List? = null + val languageHints: List? = null, ) diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt index b4475a6c..b88103a6 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt @@ -10,6 +10,6 @@ interface CloudVisionService { @POST("v1/images:annotate") suspend fun batchAnnotateImage( @Query("key") key: String, - @Body body: CloudVisionRequest + @Body body: CloudVisionRequest, ): CloudVisionResponse } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 3deab266..87ecfa2b 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -267,7 +267,7 @@ private fun CameraPreview( override fun onError(exception: ImageCaptureException) { Logger.e("ImageCaptureException: ${exception.message}") } - } + }, ) }, modifier = Modifier.size(72.dp), From fbf8b1486914bcc447c609ae64e006ff09aba878 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 19:03:31 +0900 Subject: [PATCH 083/107] =?UTF-8?q?[BOOK-275]=20chore:=20=EC=9D=98?= =?UTF-8?q?=EB=AF=B8=20=EC=97=86=EB=8A=94=20chain=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt index acd398ab..e363d6c5 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt @@ -48,11 +48,6 @@ object CloudVisionNetworkModule { } return OkHttpClient.Builder() .addInterceptor(log) - .addInterceptor { chain -> - val req = chain.request().newBuilder() - .build() - chain.proceed(req) - } .connectTimeout(MaxTimeoutMillis, TimeUnit.MILLISECONDS) .readTimeout(MaxTimeoutMillis, TimeUnit.MILLISECONDS) .writeTimeout(MaxTimeoutMillis, TimeUnit.MILLISECONDS) From 14d6c15b8b538804d58cc22a6ce01f65de6e73fa Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 19:07:46 +0900 Subject: [PATCH 084/107] =?UTF-8?q?[BOOK-275]=20refactor:=20ImmutableList?= =?UTF-8?q?=20=EC=B4=88=EA=B8=B0=ED=99=94=20=EB=A6=AC=EB=B7=B0=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt | 4 ++-- .../com/ninecraft/booket/feature/record/ocr/OcrUiState.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt index bc27f9cc..dc8033fb 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt @@ -32,7 +32,7 @@ class OcrPresenter @AssistedInject constructor( val scope = rememberCoroutineScope() var currentUi by rememberRetained { mutableStateOf(OcrUi.CAMERA) } var isPermissionDialogVisible by rememberRetained { mutableStateOf(false) } - var sentenceList by rememberRetained { mutableStateOf(emptyList().toPersistentList()) } + var sentenceList by rememberRetained { mutableStateOf(persistentListOf()) } var recognizedText by rememberRetained { mutableStateOf("") } var selectedIndices by rememberRetained { mutableStateOf(setOf()) } var mergedSentence by rememberRetained { mutableStateOf("") } @@ -57,7 +57,7 @@ class OcrPresenter @AssistedInject constructor( .map { it.trim() } .filter { it.isNotEmpty() } - sentenceList = persistentListOf(*sentences.toTypedArray()) + sentenceList = sentences.toPersistentList() currentUi = OcrUi.RESULT } else { isTextDetectionFailed = true diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt index 946c2b04..e5756de6 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt @@ -4,13 +4,13 @@ import androidx.compose.runtime.Immutable import com.slack.circuit.runtime.CircuitUiEvent import com.slack.circuit.runtime.CircuitUiState import kotlinx.collections.immutable.ImmutableList -import kotlinx.collections.immutable.toPersistentList +import kotlinx.collections.immutable.persistentListOf import java.util.UUID data class OcrUiState( val currentUi: OcrUi = OcrUi.CAMERA, val isPermissionDialogVisible: Boolean = false, - val sentenceList: ImmutableList = emptyList().toPersistentList(), + val sentenceList: ImmutableList = persistentListOf(), val selectedIndices: Set = emptySet(), val isTextDetectionFailed: Boolean = false, val isRecaptureDialogVisible: Boolean = false, From f772c150e845e8aac2073a3383304da88753f573 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 20:09:29 +0900 Subject: [PATCH 085/107] =?UTF-8?q?[BOOK-275]=20refactor:=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=20=ED=8C=8C=EB=A6=AC=EB=AF=B8=ED=84=B0=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=B4=EB=82=B8=20API=20=ED=82=A4=EB=A5=BC=20=ED=97=A4?= =?UTF-8?q?=EB=8D=94=EB=A1=9C=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt | 2 +- .../ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt | 1 + .../ninecraft/booket/core/ocr/service/CloudVisionService.kt | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt index 2e545614..c59d4b6e 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt @@ -26,7 +26,7 @@ class CloudOcrRecognizer @Inject constructor( ) service.batchAnnotateImage( - key = BuildConfig.CLOUD_VISION_API_KEY, + apiKey = BuildConfig.CLOUD_VISION_API_KEY, body = request, ) } diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt index e363d6c5..c38717b5 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/di/CloudVisionNetworkModule.kt @@ -40,6 +40,7 @@ object CloudVisionNetworkModule { @CloudVisionOkHttp fun provideOkHttp(): OkHttpClient { val log = HttpLoggingInterceptor().apply { + redactHeader("X-Goog-Api-Key") level = if (BuildConfig.DEBUG) { HttpLoggingInterceptor.Level.BASIC } else { diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt index b88103a6..3ee87c14 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/service/CloudVisionService.kt @@ -3,13 +3,13 @@ package com.ninecraft.booket.core.ocr.service import com.ninecraft.booket.core.ocr.model.CloudVisionRequest import com.ninecraft.booket.core.ocr.model.CloudVisionResponse import retrofit2.http.Body +import retrofit2.http.Header import retrofit2.http.POST -import retrofit2.http.Query interface CloudVisionService { @POST("v1/images:annotate") suspend fun batchAnnotateImage( - @Query("key") key: String, + @Header("X-Goog-Api-Key") apiKey: String, @Body body: CloudVisionRequest, ): CloudVisionResponse } From 8e0f3fd0b54d43e4bef6e68207969d2a56cd6ce7 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 21:00:27 +0900 Subject: [PATCH 086/107] =?UTF-8?q?[BOOK-256]=20feat:=20Error=20logEvent?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/core/common/analytics/AnalyticsHelper.kt | 8 +++++++- .../com/ninecraft/booket/feature/login/LoginPresenter.kt | 6 ++++++ .../feature/search/library/LibrarySearchPresenter.kt | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt index 725c65c6..984d690d 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt @@ -10,11 +10,17 @@ import javax.inject.Singleton class AnalyticsHelper @Inject constructor( private val firebaseAnalytics: FirebaseAnalytics ) { + fun logScreenView(screenName: String) { Logger.d("Analytics - Screen View: $screenName") - + firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) } } + + fun logEvent(eventName: String) { + Logger.d("Analytics - Event: $eventName") + firebaseAnalytics.logEvent(eventName) {} + } } diff --git a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt index 680e47bd..1fbc323f 100644 --- a/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt +++ b/feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt @@ -30,6 +30,10 @@ class LoginPresenter @AssistedInject constructor( private val analyticsHelper: AnalyticsHelper, ) : Presenter { + companion object { + private const val EVENT_ERROR_LOGIN = "error_login" + } + @Composable override fun present(): LoginUiState { val scope = rememberCoroutineScope() @@ -63,6 +67,7 @@ class LoginPresenter @AssistedInject constructor( is LoginUiEvent.LoginFailure -> { isLoading = false + analyticsHelper.logEvent(EVENT_ERROR_LOGIN) sideEffect = LoginSideEffect.ShowToast(event.message) } @@ -75,6 +80,7 @@ class LoginPresenter @AssistedInject constructor( navigateAfterLogin() }.onFailure { exception -> exception.message?.let { Logger.e(it) } + analyticsHelper.logEvent(EVENT_ERROR_LOGIN) sideEffect = exception.message?.let { LoginSideEffect.ShowToast(it) } diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt index 292f38e5..24713a49 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/library/LibrarySearchPresenter.kt @@ -40,6 +40,7 @@ class LibrarySearchPresenter @AssistedInject constructor( companion object { private const val PAGE_SIZE = 20 private const val START_INDEX = 0 + private const val ERROR_SEARCH = "error_search" } @Composable @@ -89,7 +90,7 @@ class LibrarySearchPresenter @AssistedInject constructor( } else { footerState = FooterState.Error(errorMessage) } - + analyticsHelper.logEvent(ERROR_SEARCH) val handleErrorMessage = { message: String -> Logger.e(message) sideEffect = LibrarySearchSideEffect.ShowToast(message) From e53d4bfa752e82aefedf78c9b945c2ba7c24725c Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 21:06:38 +0900 Subject: [PATCH 087/107] =?UTF-8?q?[BOOK-275]=20refactor:=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9D=BD=EA=B8=B0=20=EB=B0=8F=20=EC=9D=B8=EC=BD=94?= =?UTF-8?q?=EB=94=A9=EC=9D=84=20CloudOcrRecognizer=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/ocr/analyzer/CloudOcrRecognizer.kt | 38 ++++++++++++------- .../booket/feature/record/ocr/OcrPresenter.kt | 9 ++--- .../booket/feature/record/ocr/OcrUi.kt | 4 +- .../booket/feature/record/ocr/OcrUiState.kt | 3 +- 4 files changed, 33 insertions(+), 21 deletions(-) diff --git a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt index c59d4b6e..538095db 100644 --- a/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt +++ b/core/ocr/src/main/kotlin/com/ninecraft/booket/core/ocr/analyzer/CloudOcrRecognizer.kt @@ -1,5 +1,7 @@ package com.ninecraft.booket.core.ocr.analyzer +import android.net.Uri +import android.util.Base64 import com.ninecraft.booket.core.common.utils.runSuspendCatching import com.ninecraft.booket.core.ocr.BuildConfig import com.ninecraft.booket.core.ocr.model.AnnotateImageRequest @@ -9,25 +11,35 @@ import com.ninecraft.booket.core.ocr.model.Feature import com.ninecraft.booket.core.ocr.model.ImageContext import com.ninecraft.booket.core.ocr.model.VisionImage import com.ninecraft.booket.core.ocr.service.CloudVisionService +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import java.io.File import javax.inject.Inject class CloudOcrRecognizer @Inject constructor( private val service: CloudVisionService, ) { - suspend fun recognizeText(base64Image: String): Result = runSuspendCatching { - val request = CloudVisionRequest( - requests = listOf( - AnnotateImageRequest( - image = VisionImage(base64Image), - features = listOf(Feature(type = "TEXT_DETECTION")), - imageContext = ImageContext(languageHints = null), + suspend fun recognizeText(imageUri: Uri): Result = runSuspendCatching { + withContext(Dispatchers.IO) { + val filePath = imageUri.path ?: throw IllegalArgumentException("URI does not have a valid path.") + val file = File(filePath) + val byte = file.readBytes() + val base64Image = Base64.encodeToString(byte, Base64.NO_WRAP) + + val request = CloudVisionRequest( + requests = listOf( + AnnotateImageRequest( + image = VisionImage(base64Image), + features = listOf(Feature(type = "TEXT_DETECTION")), + imageContext = ImageContext(languageHints = null), + ), ), - ), - ) + ) - service.batchAnnotateImage( - apiKey = BuildConfig.CLOUD_VISION_API_KEY, - body = request, - ) + service.batchAnnotateImage( + apiKey = BuildConfig.CLOUD_VISION_API_KEY, + body = request, + ) + } } } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt index dc8033fb..410b4800 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt @@ -1,6 +1,6 @@ package com.ninecraft.booket.feature.record.ocr -import android.util.Base64 +import android.net.Uri import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -41,11 +41,11 @@ class OcrPresenter @AssistedInject constructor( var isLoading by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } - fun recognizeText(base64Image: String) { + fun recognizeText(imageUri: Uri) { scope.launch { try { isLoading = true - recognizer.recognizeText(base64Image) + recognizer.recognizeText(imageUri) .onSuccess { val text = it.responses.firstOrNull()?.fullTextAnnotation?.text.orEmpty() recognizedText = text @@ -100,8 +100,7 @@ class OcrPresenter @AssistedInject constructor( is OcrUiEvent.OnCaptureButtonClick -> { isTextDetectionFailed = false - val base64Image = Base64.encodeToString(event.imageData, Base64.NO_WRAP) - recognizeText(base64Image) + recognizeText(event.imageUri) } is OcrUiEvent.OnReCaptureButtonClick -> { diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 87ecfa2b..856d13f7 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -51,6 +51,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.core.content.ContextCompat +import androidx.core.net.toUri import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner @@ -260,8 +261,7 @@ private fun CameraPreview( executor, object : ImageCapture.OnImageSavedCallback { override fun onImageSaved(outputFileResults: ImageCapture.OutputFileResults) { - val bytes = photoFile.readBytes() - state.eventSink(OcrUiEvent.OnCaptureButtonClick(bytes)) + state.eventSink(OcrUiEvent.OnCaptureButtonClick(photoFile.toUri())) } override fun onError(exception: ImageCaptureException) { diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt index e5756de6..5418d339 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt @@ -1,5 +1,6 @@ package com.ninecraft.booket.feature.record.ocr +import android.net.Uri import androidx.compose.runtime.Immutable import com.slack.circuit.runtime.CircuitUiEvent import com.slack.circuit.runtime.CircuitUiState @@ -31,7 +32,7 @@ sealed interface OcrUiEvent : CircuitUiEvent { data object OnCloseClick : OcrUiEvent data object OnShowPermissionDialog : OcrUiEvent data object OnHidePermissionDialog : OcrUiEvent - data class OnCaptureButtonClick(val imageData: ByteArray) : OcrUiEvent + data class OnCaptureButtonClick(val imageUri: Uri) : OcrUiEvent data object OnReCaptureButtonClick : OcrUiEvent data object OnSelectionConfirmed : OcrUiEvent data object OnRecaptureDialogConfirmed : OcrUiEvent From 2ed9202007def3d727f6863ce170eb1767f606cb Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 21:20:25 +0900 Subject: [PATCH 088/107] =?UTF-8?q?[BOOK-275]=20feat:=20=EC=B4=AC=EC=98=81?= =?UTF-8?q?=20=EC=8B=9C=EC=9E=91=20=EC=8B=9C=20=EB=A1=9C=EB=94=A9=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=20=EB=9D=84=EC=9A=B0=EA=B8=B0=20=EB=B0=8F=20?= =?UTF-8?q?=EC=BA=A1=EC=B3=90=20=EC=8B=A4=ED=8C=A8=20=EC=9D=B4=EB=B2=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/record/ocr/OcrPresenter.kt | 12 +++++++++++- .../com/ninecraft/booket/feature/record/ocr/OcrUi.kt | 6 ++++-- .../booket/feature/record/ocr/OcrUiState.kt | 4 +++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt index 410b4800..05e32289 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt @@ -97,7 +97,17 @@ class OcrPresenter @AssistedInject constructor( isPermissionDialogVisible = false } - is OcrUiEvent.OnCaptureButtonClick -> { + is OcrUiEvent.OnCaptureStart -> { + isLoading = true + } + + is OcrUiEvent.OnCaptureFailed -> { + isLoading = false + sideEffect = OcrSideEffect.ShowToast("이미지 캡처에 실패했어요") + Logger.e("ImageCaptureException: ${event.exception.message}") + } + + is OcrUiEvent.OnImageCaptured -> { isTextDetectionFailed = false recognizeText(event.imageUri) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 856d13f7..3cd71029 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -252,6 +252,8 @@ private fun CameraPreview( Button( enabled = !state.isLoading, onClick = { + state.eventSink(OcrUiEvent.OnCaptureStart) + val executor = ContextCompat.getMainExecutor(context) val photoFile = File.createTempFile("ocr_", ".jpg", context.cacheDir) val output = ImageCapture.OutputFileOptions.Builder(photoFile).build() @@ -261,11 +263,11 @@ private fun CameraPreview( executor, object : ImageCapture.OnImageSavedCallback { override fun onImageSaved(outputFileResults: ImageCapture.OutputFileResults) { - state.eventSink(OcrUiEvent.OnCaptureButtonClick(photoFile.toUri())) + state.eventSink(OcrUiEvent.OnImageCaptured(photoFile.toUri())) } override fun onError(exception: ImageCaptureException) { - Logger.e("ImageCaptureException: ${exception.message}") + state.eventSink(OcrUiEvent.OnCaptureFailed(exception)) } }, ) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt index 5418d339..812fc57e 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUiState.kt @@ -32,7 +32,9 @@ sealed interface OcrUiEvent : CircuitUiEvent { data object OnCloseClick : OcrUiEvent data object OnShowPermissionDialog : OcrUiEvent data object OnHidePermissionDialog : OcrUiEvent - data class OnCaptureButtonClick(val imageUri: Uri) : OcrUiEvent + data object OnCaptureStart : OcrUiEvent + data class OnCaptureFailed(val exception: Exception) : OcrUiEvent + data class OnImageCaptured(val imageUri: Uri) : OcrUiEvent data object OnReCaptureButtonClick : OcrUiEvent data object OnSelectionConfirmed : OcrUiEvent data object OnRecaptureDialogConfirmed : OcrUiEvent From 7b3b81bbd6a2d3baf2e4b926d51e99a624c18db0 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 21:30:26 +0900 Subject: [PATCH 089/107] =?UTF-8?q?[BOOK-275]=20feat:=20=EC=84=A0=ED=83=9D?= =?UTF-8?q?=20=EB=AC=B8=EC=9E=A5=20=EB=B3=91=ED=95=A9=20=EC=8B=9C=20?= =?UTF-8?q?=EB=9D=84=EC=96=B4=EC=93=B0=EA=B8=B0=20=EC=A0=9C=EA=B1=B0?= =?UTF-8?q?=ED=95=98=EA=B3=A0=20=EB=B6=99=EC=97=AC=EC=84=9C=20=ED=95=A9?= =?UTF-8?q?=EC=B9=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt index 05e32289..9d69eac0 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt @@ -119,7 +119,7 @@ class OcrPresenter @AssistedInject constructor( is OcrUiEvent.OnSelectionConfirmed -> { mergedSentence = selectedIndices - .sorted().joinToString(" ") { sentenceList[it] } + .sorted().joinToString("") { sentenceList[it] } navigator.pop(result = OcrScreen.OcrResult(mergedSentence)) } From 9c624d92ad3317efd009ee2c488c1367f5dcdb89 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 22:10:33 +0900 Subject: [PATCH 090/107] =?UTF-8?q?[BOOK-256]=20feat:=20=EB=88=84=EB=9D=BD?= =?UTF-8?q?=EB=90=9C=20Analytics=20=EB=A1=9C=EA=B7=B8=20=EC=88=98=EC=A7=91?= =?UTF-8?q?=20=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/common/analytics/AnalyticsHelper.kt | 7 ++--- .../common/analytics/di/AnalyticsModule.kt | 4 +-- .../detail/book/BookDetailPresenter.kt | 4 +++ .../detail/record/RecordDetailPresenter.kt | 7 +++++ .../edit/record/RecordEditPresenter.kt | 18 +++++++++--- .../booket/feature/record/ocr/OcrPresenter.kt | 5 ++++ .../register/RecordRegisterPresenter.kt | 28 +++++++++++++++---- .../search/book/BookSearchPresenter.kt | 22 +++++++++++++-- .../feature/settings/SettingsPresenter.kt | 9 ++++++ 9 files changed, 83 insertions(+), 21 deletions(-) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt index 984d690d..cf176c1a 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt @@ -8,15 +8,12 @@ import javax.inject.Singleton @Singleton class AnalyticsHelper @Inject constructor( - private val firebaseAnalytics: FirebaseAnalytics + private val firebaseAnalytics: FirebaseAnalytics, ) { fun logScreenView(screenName: String) { Logger.d("Analytics - Screen View: $screenName") - - firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { - param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) - } + firebaseAnalytics.logEvent(screenName) {} } fun logEvent(eventName: String) { diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/di/AnalyticsModule.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/di/AnalyticsModule.kt index 43018ab8..c08fc156 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/di/AnalyticsModule.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/di/AnalyticsModule.kt @@ -1,13 +1,11 @@ package com.ninecraft.booket.core.common.analytics.di -import android.content.Context import com.google.firebase.Firebase import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.analytics.analytics import dagger.Module import dagger.Provides import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import javax.inject.Singleton @@ -17,7 +15,7 @@ object AnalyticsModule { @Provides @Singleton - fun provideFirebaseAnalytics(@ApplicationContext context: Context): FirebaseAnalytics { + fun provideFirebaseAnalytics(): FirebaseAnalytics { return Firebase.analytics } } diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 69d8f00c..f271b225 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -53,6 +53,8 @@ class BookDetailPresenter @AssistedInject constructor( companion object { private const val PAGE_SIZE = 20 private const val START_INDEX = 0 + private const val BOOK_DELETE = "library_book_delete" + private const val BOOK_DELETE_COMPLETE = "library_book_delete_complete" } private fun getRecordComparator(sortType: RecordSort): Comparator { @@ -221,6 +223,7 @@ class BookDetailPresenter @AssistedInject constructor( scope.launch { bookRepository.deleteBook(userBookId = userBookId) .onSuccess { + analyticsHelper.logEvent(BOOK_DELETE_COMPLETE) onSuccess() } .onFailure { exception -> @@ -323,6 +326,7 @@ class BookDetailPresenter @AssistedInject constructor( is BookDetailUiEvent.OnDeleteRecordClick -> { isRecordMenuBottomSheetVisible = false isRecordDeleteDialogVisible = true + analyticsHelper.logScreenView(BOOK_DELETE) } is BookDetailUiEvent.OnDeleteRecord -> { diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt index 46397ce2..a25fef5c 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailPresenter.kt @@ -33,6 +33,11 @@ class RecordDetailPresenter @AssistedInject constructor( private val analyticsHelper: AnalyticsHelper, ) : Presenter { + companion object { + private const val RECORD_DELETE = "record_delete" + private const val RECORD_DELETE_COMPLETE = "record_delete_complete" + } + @Composable override fun present(): RecordDetailUiState { val scope = rememberCoroutineScope() @@ -73,6 +78,7 @@ class RecordDetailPresenter @AssistedInject constructor( scope.launch { repository.deleteRecord(readingRecordId = readingRecordId) .onSuccess { + analyticsHelper.logEvent(RECORD_DELETE_COMPLETE) onSuccess() } .onFailure { exception -> @@ -134,6 +140,7 @@ class RecordDetailPresenter @AssistedInject constructor( } RecordDetailUiEvent.OnDeleteRecordClick -> { + analyticsHelper.logEvent(RECORD_DELETE) isRecordMenuBottomSheetVisible = false isRecordDeleteDialogVisible = true } diff --git a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt index 9cd7a5ed..f420ff45 100644 --- a/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt +++ b/feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditPresenter.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.core.common.utils.handleException import com.ninecraft.booket.core.data.api.repository.RecordRepository import com.ninecraft.booket.feature.screens.EmotionEditScreen @@ -20,6 +21,7 @@ import com.slack.circuit.foundation.rememberAnsweringNavigator import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -30,8 +32,15 @@ class RecordEditPresenter @AssistedInject constructor( @Assisted private val screen: RecordEditScreen, @Assisted private val navigator: Navigator, private val repository: RecordRepository, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { + companion object { + private const val MAX_PAGE = 4032 + private const val RECORD_EDIT = "record_edit_save" + private const val RECORD_EDIT_SAVE = "record_edit_save" + } + @Composable override fun present(): RecordEditUiState { val scope = rememberCoroutineScope() @@ -85,6 +94,7 @@ class RecordEditPresenter @AssistedInject constructor( emotionTags = emotionTags, review = impression, ).onSuccess { + analyticsHelper.logEvent(RECORD_EDIT_SAVE) onSuccess() }.onFailure { exception -> val handleErrorMessage = { message: String -> @@ -133,6 +143,10 @@ class RecordEditPresenter @AssistedInject constructor( } } + ImpressionEffect { + analyticsHelper.logScreenView(RECORD_EDIT) + } + return RecordEditUiState( recordInfo = recordInfo, recordPageState = recordPageState, @@ -153,8 +167,4 @@ class RecordEditPresenter @AssistedInject constructor( navigator: Navigator, ): RecordEditPresenter } - - companion object { - const val MAX_PAGE = 4032 - } } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt index 744b12ab..5779a28e 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrPresenter.kt @@ -26,6 +26,10 @@ class OcrPresenter @AssistedInject constructor( private val analyticsHelper: AnalyticsHelper, ) : Presenter { + companion object { + private const val RECORD_OCR_SENTENCE = "record_OCR_sentence" + } + @Composable override fun present(): OcrUiState { var currentUi by rememberRetained { mutableStateOf(OcrUi.CAMERA) } @@ -82,6 +86,7 @@ class OcrPresenter @AssistedInject constructor( sentenceList = persistentListOf(*sentences.toTypedArray()) currentUi = OcrUi.RESULT + analyticsHelper.logScreenView(RECORD_OCR_SENTENCE) } } diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt index 0c877b3e..fcc739d8 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt @@ -43,6 +43,17 @@ class RecordRegisterPresenter @AssistedInject constructor( private val analyticsHelper: AnalyticsHelper, ) : Presenter { + companion object { + private const val MAX_PAGE = 4032 + private const val RECORD_INPUT_SENTENCE = "record_input_sentence" + private const val RECORD_SELECT_EMOTION = "record_select_emotion" + private const val RECORD_INPUT_OPINION = "record_input_opinion" + private const val RECORD_INPUT_HELP = "record_input_help" + private const val RECORD_COMPLETE = "record_complete" + private const val RECORD_DETAIL = "record_detail" + private const val ERROR_RECORD_SAVE = "error_record_save" + } + @Composable override fun present(): RecordRegisterUiState { val scope = rememberCoroutineScope() @@ -118,6 +129,7 @@ class RecordRegisterPresenter @AssistedInject constructor( emotionTags = emotionTags, review = impression, ).onSuccess { result -> + analyticsHelper.logEvent(RECORD_COMPLETE) savedRecordId = result.id isRecordSavedDialogVisible = true }.onFailure { exception -> @@ -126,6 +138,7 @@ class RecordRegisterPresenter @AssistedInject constructor( exception = exception, ) + analyticsHelper.logEvent(ERROR_RECORD_SAVE) val handleErrorMessage = { message: String -> Logger.e(message) sideEffect = RecordRegisterSideEffect.ShowToast(message) @@ -184,6 +197,7 @@ class RecordRegisterPresenter @AssistedInject constructor( } is RecordRegisterUiEvent.OnImpressionGuideButtonClick -> { + analyticsHelper.logScreenView(RECORD_INPUT_HELP) beforeSelectedImpressionGuide = selectedImpressionGuide if (impressionState.text.isEmpty()) { selectedImpressionGuide = "" @@ -247,6 +261,7 @@ class RecordRegisterPresenter @AssistedInject constructor( } is RecordRegisterUiEvent.OnRecordSavedDialogConfirm -> { + analyticsHelper.logScreenView(RECORD_DETAIL) isRecordSavedDialogVisible = false navigator.pop() navigator.goTo(RecordDetailScreen(event.recordId)) @@ -261,8 +276,13 @@ class RecordRegisterPresenter @AssistedInject constructor( } } - ImpressionEffect { - analyticsHelper.logScreenView(screen.name) + ImpressionEffect(currentStep) { + val screenName = when (currentStep) { + RecordStep.QUOTE -> RECORD_INPUT_SENTENCE + RecordStep.EMOTION -> RECORD_SELECT_EMOTION + RecordStep.IMPRESSION -> RECORD_INPUT_OPINION + } + analyticsHelper.logScreenView(screenName) } return RecordRegisterUiState( @@ -294,8 +314,4 @@ class RecordRegisterPresenter @AssistedInject constructor( navigator: Navigator, ): RecordRegisterPresenter } - - companion object { - const val MAX_PAGE = 4032 - } } diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt index ecb27d28..0d7682b7 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt @@ -3,6 +3,7 @@ package com.ninecraft.booket.feature.search.book import androidx.compose.foundation.text.input.clearText import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf @@ -27,7 +28,6 @@ import com.slack.circuit.retained.collectAsRetainedState import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter -import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -44,6 +44,13 @@ class BookSearchPresenter @AssistedInject constructor( ) : Presenter { companion object { private const val START_INDEX = 1 + private const val SEARCH_BOOK_INPUT = "search_book_input" + private const val SEARCH_BOOK_RESULT = "search_book_result" + private const val SEARCH_BOOK_NO_RESULT = "search_book_noresult" + private const val ERROR_SEARCH_LOADING = "error_search_loading" + private const val REGISTER_BOOK_OPTION = "register_book_option" + private const val REGISTER_BOOK_COMPLETE = "register_book_complete" + private const val ERROR_REGISTER_BOOK = "error_register_book" } @Composable @@ -89,9 +96,12 @@ class BookSearchPresenter @AssistedInject constructor( } else { footerState = if (isLastPage) FooterState.End else FooterState.Idle } + + analyticsHelper.logEvent(SEARCH_BOOK_RESULT) } .onFailure { exception -> Logger.d(exception) + analyticsHelper.logEvent(ERROR_SEARCH_LOADING) val errorMessage = exception.message ?: "알 수 없는 오류가 발생했습니다." if (startIndex == START_INDEX) { uiState = UiState.Error(exception) @@ -113,6 +123,7 @@ class BookSearchPresenter @AssistedInject constructor( } else book }.toPersistentList() + analyticsHelper.logEvent(REGISTER_BOOK_COMPLETE) selectedBookIsbn = "" selectedBookStatus = null isBookRegisterBottomSheetVisible = false @@ -124,6 +135,7 @@ class BookSearchPresenter @AssistedInject constructor( exception = exception, ) + analyticsHelper.logEvent(ERROR_REGISTER_BOOK) val handleErrorMessage = { message: String -> Logger.e(message) sideEffect = BookSearchSideEffect.ShowToast(message) @@ -163,6 +175,7 @@ class BookSearchPresenter @AssistedInject constructor( is BookSearchUiEvent.OnSearchClick -> { val query = event.query.trim() if (query.isNotEmpty()) { + analyticsHelper.logEvent(SEARCH_BOOK_INPUT) searchBooks(query = query, startIndex = START_INDEX) } } @@ -202,6 +215,7 @@ class BookSearchPresenter @AssistedInject constructor( } is BookSearchUiEvent.OnBookStatusSelect -> { + analyticsHelper.logEvent(REGISTER_BOOK_OPTION) selectedBookStatus = event.bookStatus } @@ -226,8 +240,10 @@ class BookSearchPresenter @AssistedInject constructor( } } - ImpressionEffect { - analyticsHelper.logScreenView(SearchScreen.name) + LaunchedEffect(recentSearches, uiState) { + if (recentSearches.isEmpty() && uiState is UiState.Idle) { + analyticsHelper.logEvent(SEARCH_BOOK_NO_RESULT) + } } return BookSearchUiState( diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt index c4176468..739ae305 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt @@ -31,6 +31,12 @@ class SettingsPresenter @AssistedInject constructor( private val analyticsHelper: AnalyticsHelper, ) : Presenter { + companion object { + private const val SETTINGS_LOGOUT_COMPLETE = "settings_logout_complete" + private const val SETTINGS_WITHDRAWAL_COMPLETE = "settings_withdrawal_warning" + private const val SETTINGS_WITHDRAWAL_WARNING = "settings_withdrawal_warning" + } + @Composable override fun present(): SettingsUiState { val scope = rememberCoroutineScope() @@ -65,6 +71,7 @@ class SettingsPresenter @AssistedInject constructor( } is SettingsUiEvent.OnWithdrawClick -> { + analyticsHelper.logEvent(SETTINGS_WITHDRAWAL_WARNING) isWithdrawBottomSheetVisible = true } @@ -84,6 +91,7 @@ class SettingsPresenter @AssistedInject constructor( isLoading = true authRepository.logout() .onSuccess { + analyticsHelper.logEvent(SETTINGS_LOGOUT_COMPLETE) navigator.resetRoot(LoginScreen) } .onFailure { exception -> @@ -113,6 +121,7 @@ class SettingsPresenter @AssistedInject constructor( isLoading = true authRepository.withdraw() .onSuccess { + analyticsHelper.logEvent(SETTINGS_WITHDRAWAL_COMPLETE) navigator.resetRoot(LoginScreen) } .onFailure { exception -> From 69f2ae6bcf8d195c229b58d0d4e3a516bf760ecf Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 23:23:19 +0900 Subject: [PATCH 091/107] =?UTF-8?q?[BOOK-274]=20feat:=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EB=82=B4=20=EC=84=A0=ED=83=9D=20=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=ED=8C=9D=EC=97=85=20=EC=97=B0?= =?UTF-8?q?=EB=8F=99=20=EB=B0=8F=20=EC=8A=A4=ED=86=A0=EC=96=B4=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=20=ED=94=8C=EB=A1=9C=EC=9A=B0=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/common/build.gradle.kts | 8 ++ .../DefaultRemoteConfigRepository.kt | 31 +----- .../settings/HandlingSettingsSideEffect.kt | 7 +- .../feature/settings/SettingsPresenter.kt | 14 +++ .../booket/feature/settings/SettingsUi.kt | 94 +++++++++---------- .../feature/settings/SettingsUiState.kt | 7 ++ .../feature/settings/component/SettingItem.kt | 64 +++++++++++++ .../settings/src/main/res/values/strings.xml | 3 + feature/splash/build.gradle.kts | 8 -- .../booket/splash/HandleSplashSideEffects.kt | 13 +-- .../splash/src/main/res/values/strings.xml | 4 +- 11 files changed, 152 insertions(+), 101 deletions(-) create mode 100644 feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/SettingItem.kt diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index 35666a1b..c5624301 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -9,6 +9,14 @@ plugins { android { namespace = "com.ninecraft.booket.core.common" + + buildFeatures { + buildConfig = true + } + + defaultConfig { + buildConfigField("String", "PACKAGE_NAME", "\"${libs.versions.packageName.get()}\"") + } } dependencies { diff --git a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt index ae7e8fc6..ea9733f6 100644 --- a/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt +++ b/core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultRemoteConfigRepository.kt @@ -2,6 +2,7 @@ package com.ninecraft.booket.core.data.impl.repository import com.google.firebase.remoteconfig.FirebaseRemoteConfig import com.google.firebase.remoteconfig.get +import com.ninecraft.booket.core.common.util.isUpdateRequired import com.ninecraft.booket.core.data.api.repository.RemoteConfigRepository import com.ninecraft.booket.core.data.impl.BuildConfig import com.orhanobut.logger.Logger @@ -30,7 +31,7 @@ class DefaultRemoteConfigRepository @Inject constructor( if (task.isSuccessful) { val minVersion = remoteConfig[KEY_MIN_VERSION].asString() val currentVersion = BuildConfig.APP_VERSION - continuation.resume(Result.success(checkMinVersion(currentVersion, minVersion))) + continuation.resume(Result.success(isUpdateRequired(currentVersion, minVersion))) } else { Logger.e(task.exception, "shouldUpdate: getMinVersion failed") continuation.resume(Result.failure(task.exception ?: Exception("Unknown error"))) @@ -38,34 +39,6 @@ class DefaultRemoteConfigRepository @Inject constructor( } } - /** - * 현재 앱 버전이 최소 요구 버전보다 낮은지 확인하는 함수 - * - * @param currentVersion 현재 앱의 버전 (예: "1.0.0") - * @param minVersion 최소 요구 버전 (Firebase Remote Config에서 가져온 값) - * @return true면 강제 업데이트 필요 (현재 버전 < 최소 요구 버전), false면 업데이트 불필요 - * - * 버전 형식: "메이저.마이너.패치" (예: 1.2.3) - * 비교 순서: 메이저 → 마이너 → 패치 버전 순으로 비교 - */ - private fun checkMinVersion(currentVersion: String, minVersion: String): Boolean { - Logger.d("checkMinVersion: current: $currentVersion, min: $minVersion") - if (!Regex("""^\d+\.\d+\.\d+$""").matches(currentVersion)) return false - if (!Regex("""^\d+\.\d+\.\d+$""").matches(minVersion)) return false - - val current = currentVersion.split('.').map { it.toInt() } - val min = minVersion.split('.').map { it.toInt() } - - // 메이저 버전 비교 - if (current[0] != min[0]) return current[0] < min[0] - - // 마이너 버전 비교 - if (current[1] != min[1]) return current[1] < min[1] - - // 패치 버전 비교 - return current[2] < min[2] - } - companion object { private const val KEY_LATEST_VERSION = "LatestVersion" private const val KEY_MIN_VERSION = "MinVersion" diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/HandlingSettingsSideEffect.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/HandlingSettingsSideEffect.kt index 298c720e..7b255355 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/HandlingSettingsSideEffect.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/HandlingSettingsSideEffect.kt @@ -3,6 +3,7 @@ package com.ninecraft.booket.feature.settings import android.widget.Toast import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext +import com.ninecraft.booket.core.common.extensions.openPlayStore import com.skydoves.compose.effects.RememberedEffect @Composable @@ -18,7 +19,11 @@ internal fun HandleSettingsSideEffects( Toast.makeText(context, state.sideEffect.message, Toast.LENGTH_SHORT).show() } - null -> {} + is SettingsSideEffect.NavigateToPlayStore -> { + context.openPlayStore() + } + + else -> {} } if (state.sideEffect != null) { diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt index b725dcc2..e7b37d22 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt @@ -39,6 +39,7 @@ class SettingsPresenter @AssistedInject constructor( var isWithdrawBottomSheetVisible by rememberRetained { mutableStateOf(false) } var isWithdrawConfirmed by rememberRetained { mutableStateOf(false) } var latestVersion by rememberRetained { mutableStateOf("") } + var isOptionalUpdateDialogVisible by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } fun logout() { @@ -173,6 +174,18 @@ class SettingsPresenter @AssistedInject constructor( is SettingsUiEvent.Withdraw -> { withdraw() } + + is SettingsUiEvent.OnVersionClick -> { + isOptionalUpdateDialogVisible = true + } + + is SettingsUiEvent.OnOptionalUpdateDialogDismiss -> { + isOptionalUpdateDialogVisible = false + } + + is SettingsUiEvent.OnUpdateButtonClick -> { + sideEffect = SettingsSideEffect.NavigateToPlayStore + } } } @@ -186,6 +199,7 @@ class SettingsPresenter @AssistedInject constructor( isWithdrawBottomSheetVisible = isWithdrawBottomSheetVisible, isWithdrawConfirmed = isWithdrawConfirmed, latestVersion = latestVersion, + isOptionalUpdateDialogVisible = isOptionalUpdateDialogVisible, sideEffect = sideEffect, eventSink = ::handleEvent, ) diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt index 5f7e6bd6..1862a34a 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt @@ -6,9 +6,9 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.CircularProgressIndicator @@ -26,7 +26,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource -import com.ninecraft.booket.core.common.extensions.clickableSingle +import com.ninecraft.booket.core.common.util.compareVersions import com.ninecraft.booket.core.designsystem.DevicePreview import com.ninecraft.booket.core.designsystem.component.ReedDivider import com.ninecraft.booket.core.designsystem.theme.ReedTheme @@ -35,10 +35,12 @@ import com.ninecraft.booket.core.ui.ReedScaffold import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar import com.ninecraft.booket.core.ui.component.ReedDialog import com.ninecraft.booket.feature.screens.SettingsScreen +import com.ninecraft.booket.feature.settings.component.SettingItem import com.ninecraft.booket.feature.settings.component.WithdrawConfirmationBottomSheet import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent import kotlinx.coroutines.launch +import com.ninecraft.booket.core.designsystem.R as designR @OptIn(ExperimentalMaterial3Api::class) @CircuitInject(SettingsScreen::class, ActivityRetainedComponent::class) @@ -62,6 +64,10 @@ internal fun SettingsUi( }.getOrNull() ?: "Unknown" } + val isUpdateAvailable = remember(appVersion, state.latestVersion) { + compareVersions(state.latestVersion, appVersion) > 0 + } + ReedScaffold( modifier = modifier .fillMaxSize() @@ -88,7 +94,7 @@ internal fun SettingsUi( }, action = { Icon( - imageVector = ImageVector.vectorResource(id = com.ninecraft.booket.core.designsystem.R.drawable.ic_chevron_right), + imageVector = ImageVector.vectorResource(id = designR.drawable.ic_chevron_right), contentDescription = "Right Chevron Icon", tint = Color.Unspecified, ) @@ -101,7 +107,7 @@ internal fun SettingsUi( }, action = { Icon( - imageVector = ImageVector.vectorResource(id = com.ninecraft.booket.core.designsystem.R.drawable.ic_chevron_right), + imageVector = ImageVector.vectorResource(id = designR.drawable.ic_chevron_right), contentDescription = "Right Chevron Icon", tint = Color.Unspecified, ) @@ -114,7 +120,7 @@ internal fun SettingsUi( }, action = { Icon( - imageVector = ImageVector.vectorResource(id = com.ninecraft.booket.core.designsystem.R.drawable.ic_chevron_right), + imageVector = ImageVector.vectorResource(id = designR.drawable.ic_chevron_right), contentDescription = "Right Chevron Icon", tint = Color.Unspecified, ) @@ -122,13 +128,28 @@ internal fun SettingsUi( ) SettingItem( title = stringResource(R.string.settings_app_version), - isClickable = false, + isClickable = isUpdateAvailable, + onItemClick = { + state.eventSink(SettingsUiEvent.OnVersionClick) + }, action = { - Text( - text = appVersion, - style = ReedTheme.typography.body1Medium, - color = ReedTheme.colors.contentBrand, - ) + Row( + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = appVersion, + style = ReedTheme.typography.body1Medium, + color = ReedTheme.colors.contentBrand, + ) + if (isUpdateAvailable) { + Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing2)) + Icon( + imageVector = ImageVector.vectorResource(id = designR.drawable.ic_chevron_right), + contentDescription = "Right Chevron Icon", + tint = Color.Unspecified, + ) + } + } }, description = { Text( @@ -199,46 +220,19 @@ internal fun SettingsUi( }, ) } - } -} - -@Composable -private fun SettingItem( - title: String, - modifier: Modifier = Modifier, - isClickable: Boolean = true, - onItemClick: () -> Unit = {}, - action: @Composable () -> Unit = {}, - description: @Composable () -> Unit = {}, -) { - val combinedModifier = if (isClickable) { - modifier - .fillMaxWidth() - .clickableSingle { onItemClick() } - } else { - modifier.fillMaxWidth() - } - Column { - Row( - modifier = combinedModifier - .padding( - horizontal = ReedTheme.spacing.spacing5, - vertical = ReedTheme.spacing.spacing4, - ), - verticalAlignment = Alignment.CenterVertically, - ) { - Column( - modifier = Modifier.weight(1f), - ) { - Text( - text = title, - style = ReedTheme.typography.body1Medium, - color = ReedTheme.colors.contentPrimary, - ) - description() - } - action() + if (state.isOptionalUpdateDialogVisible) { + ReedDialog( + onDismissRequest = { + state.eventSink(SettingsUiEvent.OnOptionalUpdateDialogDismiss) + }, + title = stringResource(R.string.settings_optional_update_title), + description = stringResource(R.string.settings_optional_update_message), + confirmButtonText = stringResource(R.string.settings_optional_update_button_text), + onConfirmRequest = { + state.eventSink(SettingsUiEvent.OnUpdateButtonClick) + }, + ) } } } diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt index b01bab6c..e318b370 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt @@ -11,6 +11,8 @@ data class SettingsUiState( val isWithdrawBottomSheetVisible: Boolean = false, val isWithdrawConfirmed: Boolean = false, val latestVersion: String = "", + val isUpdateAvailable: Boolean = false, + val isOptionalUpdateDialogVisible: Boolean = false, val sideEffect: SettingsSideEffect? = null, val eventSink: (SettingsUiEvent) -> Unit, ) : CircuitUiState @@ -21,6 +23,8 @@ sealed interface SettingsSideEffect { val message: String, private val key: String = UUID.randomUUID().toString(), ) : SettingsSideEffect + + data object NavigateToPlayStore : SettingsSideEffect } sealed interface SettingsUiEvent : CircuitUiEvent { @@ -35,4 +39,7 @@ sealed interface SettingsUiEvent : CircuitUiEvent { data object OnWithdrawConfirmationToggled : SettingsUiEvent data object Logout : SettingsUiEvent data object Withdraw : SettingsUiEvent + data object OnVersionClick : SettingsUiEvent + data object OnOptionalUpdateDialogDismiss : SettingsUiEvent + data object OnUpdateButtonClick : SettingsUiEvent } diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/SettingItem.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/SettingItem.kt new file mode 100644 index 00000000..d794bef3 --- /dev/null +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/SettingItem.kt @@ -0,0 +1,64 @@ +package com.ninecraft.booket.feature.settings.component + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import com.ninecraft.booket.core.common.extensions.clickableSingle +import com.ninecraft.booket.core.designsystem.ComponentPreview +import com.ninecraft.booket.core.designsystem.theme.ReedTheme + +@Composable +internal fun SettingItem( + title: String, + modifier: Modifier = Modifier, + isClickable: Boolean = true, + onItemClick: () -> Unit = {}, + action: @Composable () -> Unit = {}, + description: @Composable () -> Unit = {}, +) { + val combinedModifier = if (isClickable) { + modifier + .fillMaxWidth() + .clickableSingle { onItemClick() } + } else { + modifier.fillMaxWidth() + } + + Column { + Row( + modifier = combinedModifier + .padding( + horizontal = ReedTheme.spacing.spacing5, + vertical = ReedTheme.spacing.spacing4, + ), + verticalAlignment = Alignment.CenterVertically, + ) { + Column( + modifier = Modifier.weight(1f), + ) { + Text( + text = title, + style = ReedTheme.typography.body1Medium, + color = ReedTheme.colors.contentPrimary, + ) + description() + } + action() + } + } +} + +@ComponentPreview +@Composable +private fun SettingItemPreview() { + ReedTheme { + SettingItem( + title = "로그아웃", + ) + } +} diff --git a/feature/settings/src/main/res/values/strings.xml b/feature/settings/src/main/res/values/strings.xml index 58b66b1a..fa897943 100644 --- a/feature/settings/src/main/res/values/strings.xml +++ b/feature/settings/src/main/res/values/strings.xml @@ -15,4 +15,7 @@ 탈퇴하기 오픈소스 라이선스 최신 버전 %1$s + 최신 버전이 출시되었습니다. + 최적의 사용 환경을 위해 업데이트해주세요. + 업데이트하기 diff --git a/feature/splash/build.gradle.kts b/feature/splash/build.gradle.kts index 333d59e9..a758e787 100644 --- a/feature/splash/build.gradle.kts +++ b/feature/splash/build.gradle.kts @@ -6,14 +6,6 @@ plugins { android { namespace = "com.ninecraft.booket.feature.splash" - - buildFeatures { - buildConfig = true - } - - defaultConfig { - buildConfigField("String", "PACKAGE_NAME", "\"${libs.versions.packageName.get()}\"") - } } ksp { diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/HandleSplashSideEffects.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/HandleSplashSideEffects.kt index 7a6dfecf..736d6df6 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/HandleSplashSideEffects.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/HandleSplashSideEffects.kt @@ -1,11 +1,8 @@ package com.ninecraft.booket.splash -import android.content.Context -import android.content.Intent import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext -import androidx.core.net.toUri -import com.ninecraft.booket.feature.splash.BuildConfig +import com.ninecraft.booket.core.common.extensions.openPlayStore import com.skydoves.compose.effects.RememberedEffect @Composable @@ -18,7 +15,7 @@ internal fun HandleSplashSideEffects( RememberedEffect(state.sideEffect) { when (state.sideEffect) { is SplashSideEffect.NavigateToPlayStore -> { - openPlayStore(context) + context.openPlayStore() } null -> {} } @@ -28,9 +25,3 @@ internal fun HandleSplashSideEffects( } } } - -private fun openPlayStore(context: Context) { - // https://play.google.com/store/apps/details?id=com.ninecraft.booket - val intent = Intent(Intent.ACTION_VIEW, "market://details?id=${BuildConfig.PACKAGE_NAME}".toUri()) - context.startActivity(intent) -} diff --git a/feature/splash/src/main/res/values/strings.xml b/feature/splash/src/main/res/values/strings.xml index c4b7f99e..bde1e36c 100644 --- a/feature/splash/src/main/res/values/strings.xml +++ b/feature/splash/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ 책 덮기 전 한 문장을 기록해보세요 - 최신 버전이 출시 되었습니다. - 최적의 사용 환경을 위해 업데이트를 해주세요. + 최신 버전이 출시되었습니다. + 최적의 사용 환경을 위해 업데이트해주세요. 업데이트 하기 From 6451482331c379453f72189baeabf3d3f4a422fc Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 23:25:33 +0900 Subject: [PATCH 092/107] =?UTF-8?q?[BOOK-274]=20refactor:=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=EB=B9=84=EA=B5=90=20=EA=B4=80=EB=A0=A8=20Util=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EB=B0=8F=20PlayStore=20=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=20=EA=B4=80=EB=A0=A8=20Context=20=ED=99=95=EC=9E=A5=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 스플래시, 설정 화면간의 재사용을 위함 --- .../booket/core/common/extensions/Context.kt | 11 +++++ .../booket/core/common/util/VersionUtils.kt | 43 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt create mode 100644 core/common/src/main/kotlin/com/ninecraft/booket/core/common/util/VersionUtils.kt diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt new file mode 100644 index 00000000..42392d87 --- /dev/null +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt @@ -0,0 +1,11 @@ +package com.ninecraft.booket.core.common.extensions + +import android.content.Context +import android.content.Intent +import androidx.core.net.toUri +import com.ninecraft.booket.core.common.BuildConfig + +fun Context.openPlayStore() { + val intent = Intent(Intent.ACTION_VIEW, "market://details?id=${BuildConfig.PACKAGE_NAME}".toUri()) + startActivity(intent) +} diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/util/VersionUtils.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/util/VersionUtils.kt new file mode 100644 index 00000000..c91a6811 --- /dev/null +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/util/VersionUtils.kt @@ -0,0 +1,43 @@ +package com.ninecraft.booket.core.common.util + +import com.orhanobut.logger.Logger + +/** + * 두 버전을 비교하는 함수 + * + * @param version1 첫 번째 버전 (예: "1.2.3") + * @param version2 두 번째 버전 (예: "1.1.0") + * @return 양수면 version1 > version2, 음수면 version1 < version2, 0이면 같음 + * + * 버전 형식: "메이저.마이너.패치" (예: 1.2.3) + * 비교 순서: 메이저 → 마이너 → 패치 버전 순으로 비교 + */ +fun compareVersions(version1: String, version2: String): Int { + Logger.d("compareVersions: version1: $version1, version2: $version2") + + if (!Regex("""^\d+\.\d+\.\d+$""").matches(version1)) return 0 + if (!Regex("""^\d+\.\d+\.\d+$""").matches(version2)) return 0 + + val v1 = version1.split('.').map { it.toInt() } + val v2 = version2.split('.').map { it.toInt() } + + // 메이저 버전 비교 + if (v1[0] != v2[0]) return v1[0] - v2[0] + + // 마이너 버전 비교 + if (v1[1] != v2[1]) return v1[1] - v2[1] + + // 패치 버전 비교 + return v1[2] - v2[2] +} + +/** + * 현재 앱 버전이 최소 요구 버전보다 낮은지 확인하는 함수 + * + * @param currentVersion 현재 앱의 버전 (예: "1.0.0") + * @param minVersion 최소 요구 버전 (Firebase Remote Config에서 가져온 값) + * @return true면 강제 업데이트 필요 (현재 버전 < 최소 요구 버전), false면 업데이트 불필요 + */ +fun isUpdateRequired(currentVersion: String, minVersion: String): Boolean { + return compareVersions(currentVersion, minVersion) < 0 +} From 2e0bd372101c56259c2ca0d63ba18bf1915b3ed6 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Thu, 21 Aug 2025 23:57:45 +0900 Subject: [PATCH 093/107] =?UTF-8?q?[BOOK-256]=20fix:=20logScreenView=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EC=8A=A4=ED=8E=99=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EB=B0=8F=20screenView=20=EB=A1=9C=20=EC=9E=98=20=EB=AA=BB=20?= =?UTF-8?q?=EB=A7=A4=ED=95=91=EB=90=9C=20event=20=EB=B0=94=EB=A1=9C=20?= =?UTF-8?q?=EC=9E=A1=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ninecraft/booket/core/common/analytics/AnalyticsHelper.kt | 4 +++- .../booket/feature/detail/book/BookDetailPresenter.kt | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt index cf176c1a..fde333f1 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/analytics/AnalyticsHelper.kt @@ -13,7 +13,9 @@ class AnalyticsHelper @Inject constructor( fun logScreenView(screenName: String) { Logger.d("Analytics - Screen View: $screenName") - firebaseAnalytics.logEvent(screenName) {} + firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { + param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) + } } fun logEvent(eventName: String) { diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index f271b225..e8aa5ac5 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -326,7 +326,7 @@ class BookDetailPresenter @AssistedInject constructor( is BookDetailUiEvent.OnDeleteRecordClick -> { isRecordMenuBottomSheetVisible = false isRecordDeleteDialogVisible = true - analyticsHelper.logScreenView(BOOK_DELETE) + analyticsHelper.logEvent(BOOK_DELETE) } is BookDetailUiEvent.OnDeleteRecord -> { From 7ebfd451fd9e94db5c8c5661fb9773500bdeedc2 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Thu, 21 Aug 2025 23:58:16 +0900 Subject: [PATCH 094/107] =?UTF-8?q?[BOOK-273]=20fix:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20=EB=8F=84=EC=84=9C=20=EC=A0=9C=EB=AA=A9?= =?UTF-8?q?=20=EB=94=94=ED=85=8C=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/card/component/RecordCard.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt index bd8912ac..2f9b7bcc 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/component/RecordCard.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.sp import com.ninecraft.booket.core.designsystem.ComponentPreview import com.ninecraft.booket.core.designsystem.EmotionTag import com.ninecraft.booket.core.designsystem.theme.ReedTheme @@ -60,7 +61,13 @@ internal fun RecordCard( Text( text = "『$bookTitle』", color = ReedTheme.colors.contentPrimary, - style = ReedTheme.typography.quoteMedium, + overflow = TextOverflow.Ellipsis, + maxLines = 2, + style = ReedTheme.typography.quoteMedium.copy( + fontSize = 16.sp, + lineHeight = 16.sp * 1.5f, + letterSpacing = 16.sp * 0.02f, + ), ) } } From d6d399ddab05741d3b3c68ab47a331943ff22bed Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 22 Aug 2025 00:02:29 +0900 Subject: [PATCH 095/107] =?UTF-8?q?[BOOK-273]=20chore:=20=EB=8F=84?= =?UTF-8?q?=EC=84=9C=20=EA=B2=80=EC=83=89,=20=EB=8F=84=EC=84=9C=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D,=20=EA=B8=B0=EB=A1=9D=20=EB=93=B1=EB=A1=9D?= =?UTF-8?q?=20=EC=97=90=EB=9F=AC=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/detail/book/BookDetailPresenter.kt | 7 ------- .../feature/record/register/RecordRegisterPresenter.kt | 7 ------- .../booket/feature/search/book/BookSearchPresenter.kt | 7 ------- 3 files changed, 21 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt index 4b67edf7..e840b2e6 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailPresenter.kt @@ -8,9 +8,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import com.ninecraft.booket.core.common.constants.BookStatus -import com.ninecraft.booket.core.common.constants.ErrorScope import com.ninecraft.booket.core.common.utils.handleException -import com.ninecraft.booket.core.common.utils.postErrorDialog import com.ninecraft.booket.core.data.api.repository.BookRepository import com.ninecraft.booket.core.data.api.repository.RecordRepository import com.ninecraft.booket.core.model.BookDetailModel @@ -145,11 +143,6 @@ class BookDetailPresenter @AssistedInject constructor( isBookUpdateBottomSheetVisible = false } .onFailure { exception -> - postErrorDialog( - errorScope = ErrorScope.BOOK_REGISTER, - exception = exception, - ) - val handleErrorMessage = { message: String -> Logger.e(message) sideEffect = BookDetailSideEffect.ShowToast(message) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt index e7cace37..638f94dc 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterPresenter.kt @@ -10,9 +10,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.text.TextRange -import com.ninecraft.booket.core.common.constants.ErrorScope import com.ninecraft.booket.core.common.utils.handleException -import com.ninecraft.booket.core.common.utils.postErrorDialog import com.ninecraft.booket.core.data.api.repository.RecordRepository import com.ninecraft.booket.core.designsystem.EmotionTag import com.ninecraft.booket.core.designsystem.RecordStep @@ -123,11 +121,6 @@ class RecordRegisterPresenter @AssistedInject constructor( savedRecordId = result.id isRecordSavedDialogVisible = true }.onFailure { exception -> - postErrorDialog( - errorScope = ErrorScope.RECORD_REGISTER, - exception = exception, - ) - val handleErrorMessage = { message: String -> Logger.e(message) sideEffect = RecordRegisterSideEffect.ShowToast(message) diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt index 715fe601..c00a64b0 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt @@ -9,9 +9,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import com.ninecraft.booket.core.common.constants.BookStatus -import com.ninecraft.booket.core.common.constants.ErrorScope import com.ninecraft.booket.core.common.utils.handleException -import com.ninecraft.booket.core.common.utils.postErrorDialog import com.ninecraft.booket.core.data.api.repository.BookRepository import com.ninecraft.booket.core.model.BookSearchModel import com.ninecraft.booket.core.model.BookSummaryModel @@ -116,11 +114,6 @@ class BookSearchPresenter @AssistedInject constructor( isBookRegisterSuccessBottomSheetVisible = true } .onFailure { exception -> - postErrorDialog( - errorScope = ErrorScope.BOOK_REGISTER, - exception = exception, - ) - val handleErrorMessage = { message: String -> Logger.e(message) sideEffect = BookSearchSideEffect.ShowToast(message) From 6335da8a93f3aca9af8ec4f484487e1cf994cefa Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 22 Aug 2025 00:07:21 +0900 Subject: [PATCH 096/107] =?UTF-8?q?[BOOK-273]=20chore:=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/core/common/extensions/Context.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt index 1b27823d..a922695c 100644 --- a/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt +++ b/core/common/src/main/kotlin/com/ninecraft/booket/core/common/extensions/Context.kt @@ -31,7 +31,7 @@ fun Context.externalShareForBitmap(bitmap: ImageBitmap) { @Suppress("TooGenericExceptionCaught") fun Context.saveImageToGallery(bitmap: ImageBitmap) { try { - val fileName = "bandalart_${System.currentTimeMillis()}.png" + val fileName = "reed_record_${System.currentTimeMillis()}.png" val contentValues = ContentValues().apply { put(MediaStore.Images.Media.DISPLAY_NAME, fileName) put(MediaStore.Images.Media.MIME_TYPE, "image/png") From 992ff4fe86819b222723dc6810866d05377798db Mon Sep 17 00:00:00 2001 From: easyhooon Date: Fri, 22 Aug 2025 00:57:09 +0900 Subject: [PATCH 097/107] =?UTF-8?q?[BOOK-256]=20fix:=20=ED=86=A0=EB=81=BC?= =?UTF-8?q?=20=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/search/book/BookSearchPresenter.kt | 10 +++------- .../booket/feature/settings/SettingsPresenter.kt | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt index 0d7682b7..4afa3343 100644 --- a/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt +++ b/feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/book/BookSearchPresenter.kt @@ -3,7 +3,6 @@ package com.ninecraft.booket.feature.search.book import androidx.compose.foundation.text.input.clearText import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf @@ -98,6 +97,9 @@ class BookSearchPresenter @AssistedInject constructor( } analyticsHelper.logEvent(SEARCH_BOOK_RESULT) + if (startIndex == START_INDEX && result.books.isEmpty()) { + analyticsHelper.logEvent(SEARCH_BOOK_NO_RESULT) + } } .onFailure { exception -> Logger.d(exception) @@ -240,12 +242,6 @@ class BookSearchPresenter @AssistedInject constructor( } } - LaunchedEffect(recentSearches, uiState) { - if (recentSearches.isEmpty() && uiState is UiState.Idle) { - analyticsHelper.logEvent(SEARCH_BOOK_NO_RESULT) - } - } - return BookSearchUiState( uiState = uiState, footerState = footerState, diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt index 739ae305..25814e36 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt @@ -33,7 +33,7 @@ class SettingsPresenter @AssistedInject constructor( companion object { private const val SETTINGS_LOGOUT_COMPLETE = "settings_logout_complete" - private const val SETTINGS_WITHDRAWAL_COMPLETE = "settings_withdrawal_warning" + private const val SETTINGS_WITHDRAWAL_COMPLETE = "settings_withdrawal_complete" private const val SETTINGS_WITHDRAWAL_WARNING = "settings_withdrawal_warning" } From f0c98dcbd0a4e483e13c9c3897630d692e0c7418 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 22 Aug 2025 01:03:03 +0900 Subject: [PATCH 098/107] =?UTF-8?q?[BOOK-273]=20fix:=20=EB=AC=B8=EC=9E=A5?= =?UTF-8?q?=20=EC=8A=A4=EC=BA=94,=20=EA=B0=90=EC=83=81=ED=8F=89=20?= =?UTF-8?q?=EA=B0=80=EC=9D=B4=EB=93=9C=20=ED=82=A4=EB=B3=B4=EB=93=9C?= =?UTF-8?q?=EC=97=90=20=EA=B0=80=EB=A0=A4=EC=A7=80=EB=8A=94=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/record/step/ImpressionStep.kt | 34 ++++++++++++------- .../booket/feature/record/step/QuoteStep.kt | 25 +++++++++----- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt index 604b45db..ca548aa2 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt @@ -2,7 +2,6 @@ package com.ninecraft.booket.feature.record.step import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -11,6 +10,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.relocation.BringIntoViewRequester +import androidx.compose.foundation.relocation.bringIntoViewRequester import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll @@ -51,6 +52,7 @@ import com.ninecraft.booket.feature.record.component.CustomTooltipBox import com.ninecraft.booket.feature.record.component.ImpressionGuideBottomSheet import com.ninecraft.booket.feature.record.register.RecordRegisterUiEvent import com.ninecraft.booket.feature.record.register.RecordRegisterUiState +import kotlinx.coroutines.delay import kotlinx.coroutines.launch import tech.thdev.compose.extensions.keyboard.state.foundation.rememberKeyboardVisible import com.ninecraft.booket.core.designsystem.R as designR @@ -66,12 +68,14 @@ fun ImpressionStep( val focusRequester = remember { FocusRequester() } val keyboardController = LocalSoftwareKeyboardController.current val scrollState = rememberScrollState() + val bringIntoViewRequester = remember { BringIntoViewRequester() } val keyboardState by rememberKeyboardVisible() - var isSentenceTextFieldFocused by remember { mutableStateOf(false) } + var isImpressionTextFieldFocused by remember { mutableStateOf(false) } - LaunchedEffect(keyboardState, isSentenceTextFieldFocused) { - if (keyboardState && isSentenceTextFieldFocused) { - scrollState.animateScrollTo(scrollState.maxValue) + LaunchedEffect(keyboardState, isImpressionTextFieldFocused) { + if (keyboardState && isImpressionTextFieldFocused) { + delay(100) + bringIntoViewRequester.bringIntoView() } } @@ -82,7 +86,7 @@ fun ImpressionStep( } } - Box( + Column( modifier = modifier .fillMaxSize() .background(White) @@ -90,9 +94,10 @@ fun ImpressionStep( ) { Column( modifier = Modifier - .fillMaxSize() + .fillMaxWidth() + .weight(1f) .padding(horizontal = ReedTheme.spacing.spacing5) - .padding(bottom = 80.dp) + .padding(bottom = 12.dp) .verticalScroll(scrollState), ) { Text( @@ -115,7 +120,7 @@ fun ImpressionStep( .focusRequester(focusRequester) .height(140.dp) .onFocusChanged { focusState -> - isSentenceTextFieldFocused = focusState.isFocused + isImpressionTextFieldFocused = focusState.isFocused }, keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Text, @@ -124,7 +129,9 @@ fun ImpressionStep( ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing3)) Row( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .fillMaxWidth() + .bringIntoViewRequester(bringIntoViewRequester), horizontalArrangement = Arrangement.End, verticalAlignment = Alignment.CenterVertically, ) { @@ -159,9 +166,10 @@ fun ImpressionStep( sizeStyle = largeButtonStyle, modifier = Modifier .fillMaxWidth() - .align(Alignment.BottomCenter) - .padding(horizontal = ReedTheme.spacing.spacing5) - .padding(bottom = ReedTheme.spacing.spacing4), + .padding( + horizontal = ReedTheme.spacing.spacing5, + vertical = ReedTheme.spacing.spacing4, + ), enabled = state.isNextButtonEnabled, text = stringResource(R.string.record_next_button), multipleEventsCutterEnabled = state.currentStep == RecordStep.IMPRESSION, diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt index 023be3ae..ecdd2a26 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/QuoteStep.kt @@ -2,7 +2,6 @@ package com.ninecraft.booket.feature.record.step import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -11,6 +10,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.relocation.BringIntoViewRequester +import androidx.compose.foundation.relocation.bringIntoViewRequester import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.input.TextFieldLineLimits @@ -48,6 +49,7 @@ import com.ninecraft.booket.feature.record.R import com.ninecraft.booket.feature.record.component.CustomTooltipBox import com.ninecraft.booket.feature.record.register.RecordRegisterUiEvent import com.ninecraft.booket.feature.record.register.RecordRegisterUiState +import kotlinx.coroutines.delay import tech.thdev.compose.extensions.keyboard.state.foundation.rememberKeyboardVisible import com.ninecraft.booket.core.designsystem.R as designR @@ -58,16 +60,18 @@ internal fun QuoteStep( ) { val focusManager = LocalFocusManager.current val scrollState = rememberScrollState() + val bringIntoViewRequester = remember { BringIntoViewRequester() } val keyboardState by rememberKeyboardVisible() var isSentenceTextFieldFocused by remember { mutableStateOf(false) } LaunchedEffect(keyboardState, isSentenceTextFieldFocused) { if (keyboardState && isSentenceTextFieldFocused) { - scrollState.animateScrollTo(scrollState.maxValue) + delay(100) + bringIntoViewRequester.bringIntoView() } } - Box( + Column( modifier = modifier .fillMaxSize() .background(White) @@ -75,9 +79,9 @@ internal fun QuoteStep( ) { Column( modifier = Modifier - .fillMaxSize() + .fillMaxWidth() + .weight(1f) .padding(horizontal = ReedTheme.spacing.spacing5) - .padding(bottom = 80.dp) .verticalScroll(scrollState), ) { Text( @@ -133,7 +137,9 @@ internal fun QuoteStep( ) Spacer(modifier = Modifier.height(ReedTheme.spacing.spacing3)) Row( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .fillMaxWidth() + .bringIntoViewRequester(bringIntoViewRequester), horizontalArrangement = Arrangement.End, verticalAlignment = Alignment.CenterVertically, ) { @@ -166,9 +172,10 @@ internal fun QuoteStep( sizeStyle = largeButtonStyle, modifier = Modifier .fillMaxWidth() - .align(Alignment.BottomCenter) - .padding(horizontal = ReedTheme.spacing.spacing5) - .padding(bottom = ReedTheme.spacing.spacing4), + .padding( + horizontal = ReedTheme.spacing.spacing5, + vertical = ReedTheme.spacing.spacing4, + ), enabled = state.isNextButtonEnabled, text = stringResource(R.string.record_next_button), multipleEventsCutterEnabled = state.currentStep == RecordStep.IMPRESSION, From 89997a3054d2143af60911b61d7f0d60d6e51f24 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 22 Aug 2025 01:40:10 +0900 Subject: [PATCH 099/107] [BOOK-275] chore: code style check success --- .../main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt index 3cd71029..1cdee8da 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt @@ -69,7 +69,6 @@ import com.ninecraft.booket.feature.record.R import com.ninecraft.booket.feature.record.ocr.component.CameraFrame import com.ninecraft.booket.feature.record.ocr.component.SentenceBox import com.ninecraft.booket.feature.screens.OcrScreen -import com.orhanobut.logger.Logger import com.slack.circuit.codegen.annotations.CircuitInject import dagger.hilt.android.components.ActivityRetainedComponent import tech.thdev.compose.exteions.system.ui.controller.rememberSystemUiController From 9594e5e5942d6a66b1b240d081176d129067ee35 Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 22 Aug 2025 03:00:46 +0900 Subject: [PATCH 100/107] =?UTF-8?q?[BOOK-288]=20fix:=20=EA=B0=90=EC=83=81?= =?UTF-8?q?=ED=8F=89=20=EA=B0=80=EC=9D=B4=EB=93=9C=20=EB=B2=84=ED=8A=BC?= =?UTF-8?q?=EC=9D=B4=20=ED=82=A4=EB=B3=B4=EB=93=9C=EC=97=90=20=EA=B0=80?= =?UTF-8?q?=EB=A0=A4=EC=A7=80=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booket/feature/record/step/ImpressionStep.kt | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt index ca548aa2..e87b1f11 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt @@ -74,18 +74,11 @@ fun ImpressionStep( LaunchedEffect(keyboardState, isImpressionTextFieldFocused) { if (keyboardState && isImpressionTextFieldFocused) { - delay(100) + delay(150) bringIntoViewRequester.bringIntoView() } } - LaunchedEffect(Unit) { - if (state.impressionState.text.isEmpty()) { - focusRequester.requestFocus() - keyboardController?.show() - } - } - Column( modifier = modifier .fillMaxSize() @@ -97,7 +90,7 @@ fun ImpressionStep( .fillMaxWidth() .weight(1f) .padding(horizontal = ReedTheme.spacing.spacing5) - .padding(bottom = 12.dp) + .padding(bottom = 16.dp) .verticalScroll(scrollState), ) { Text( From cd59711b225e64461b603eb9e33a445ac4b3cb2d Mon Sep 17 00:00:00 2001 From: seoyoon Date: Fri, 22 Aug 2025 03:02:02 +0900 Subject: [PATCH 101/107] =?UTF-8?q?[BOOK-288]=20chore:=20=EB=AF=B8?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20=EB=B3=80=EC=88=98=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/feature/record/step/ImpressionStep.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt index e87b1f11..346e51b8 100644 --- a/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt +++ b/feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/step/ImpressionStep.kt @@ -32,7 +32,6 @@ import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.input.ImeAction @@ -66,7 +65,6 @@ fun ImpressionStep( val coroutineScope = rememberCoroutineScope() val impressionGuideBottomSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) val focusRequester = remember { FocusRequester() } - val keyboardController = LocalSoftwareKeyboardController.current val scrollState = rememberScrollState() val bringIntoViewRequester = remember { BringIntoViewRequester() } val keyboardState by rememberKeyboardVisible() From 2c27921423b6a063413d24278b0dd16f61a3e94d Mon Sep 17 00:00:00 2001 From: easyhooon Date: Fri, 22 Aug 2025 03:02:39 +0900 Subject: [PATCH 102/107] =?UTF-8?q?[BOOK-256]=20fix:=20merge=20=EC=9D=B4?= =?UTF-8?q?=ED=9B=84=20=EC=82=AC=EB=9D=BC=EC=A7=84=20GA=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EB=B3=B5=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ninecraft/booket/feature/settings/SettingsPresenter.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt index 081cf6a0..a50dc524 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt @@ -57,6 +57,7 @@ class SettingsPresenter @AssistedInject constructor( isLoading = true authRepository.logout() .onSuccess { + analyticsHelper.logEvent(SETTINGS_LOGOUT_COMPLETE) navigator.resetRoot(LoginScreen) } .onFailure { exception -> @@ -86,6 +87,7 @@ class SettingsPresenter @AssistedInject constructor( isLoading = true authRepository.withdraw() .onSuccess { + analyticsHelper.logEvent(SETTINGS_WITHDRAWAL_COMPLETE) navigator.resetRoot(LoginScreen) } .onFailure { exception -> @@ -163,6 +165,7 @@ class SettingsPresenter @AssistedInject constructor( } is SettingsUiEvent.OnWithdrawClick -> { + analyticsHelper.logEvent(SETTINGS_WITHDRAWAL_WARNING) isWithdrawBottomSheetVisible = true } From c91acf6e0b938e69a95404c4663c6561cda1e62c Mon Sep 17 00:00:00 2001 From: easyhooon Date: Fri, 22 Aug 2025 03:08:51 +0900 Subject: [PATCH 103/107] =?UTF-8?q?[BOOK-256]=20fix:=20merge=20=EC=9D=B4?= =?UTF-8?q?=ED=9B=84=20=EC=82=AC=EB=9D=BC=EC=A7=84=20GA=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EB=B3=B5=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/ninecraft/booket/splash/SplashPresenter.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt index b1a1a143..a039dc62 100644 --- a/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt +++ b/feature/splash/src/main/kotlin/com/ninecraft/booket/splash/SplashPresenter.kt @@ -46,7 +46,6 @@ class SplashPresenter @AssistedInject constructor( val scope = rememberCoroutineScope() val onboardingState by userRepository.onboardingState.collectAsRetainedState(initial = OnboardingState.IDLE) val autoLoginState by authRepository.autoLoginState.collectAsRetainedState(initial = AutoLoginState.IDLE) - var isSplashTimeCompleted by rememberRetained { mutableStateOf(false) } var isForceUpdateDialogVisible by rememberRetained { mutableStateOf(false) } var sideEffect by rememberRetained { mutableStateOf(null) } @@ -138,6 +137,10 @@ class SplashPresenter @AssistedInject constructor( checkForceUpdate() } + ImpressionEffect { + analyticsHelper.logScreenView(SplashScreen.name) + } + return SplashUiState( isForceUpdateDialogVisible = isForceUpdateDialogVisible, sideEffect = sideEffect, From 31052723c8b6e84b2e31e9cb57b16b672c0e905f Mon Sep 17 00:00:00 2001 From: easyhooon Date: Fri, 22 Aug 2025 03:09:14 +0900 Subject: [PATCH 104/107] =?UTF-8?q?[BOOK-256]=20fix:=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=20=ED=99=94=EB=A9=B4=20=EC=B5=9C=EC=A2=85=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=20=EC=82=AC=ED=95=AD=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/settings/SettingsPresenter.kt | 8 ------- .../booket/feature/settings/SettingsUi.kt | 23 ------------------- .../feature/settings/SettingsUiState.kt | 2 -- 3 files changed, 33 deletions(-) diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt index a50dc524..fefe62d2 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt @@ -188,14 +188,6 @@ class SettingsPresenter @AssistedInject constructor( } is SettingsUiEvent.OnVersionClick -> { - isOptionalUpdateDialogVisible = true - } - - is SettingsUiEvent.OnOptionalUpdateDialogDismiss -> { - isOptionalUpdateDialogVisible = false - } - - is SettingsUiEvent.OnUpdateButtonClick -> { sideEffect = SettingsSideEffect.NavigateToPlayStore } } diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt index 33595b10..37a60a3a 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUi.kt @@ -7,7 +7,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api @@ -140,14 +139,6 @@ internal fun SettingsUi( style = ReedTheme.typography.body1Medium, color = ReedTheme.colors.contentBrand, ) - if (isUpdateAvailable) { - Spacer(modifier = Modifier.width(ReedTheme.spacing.spacing2)) - Icon( - imageVector = ImageVector.vectorResource(id = designR.drawable.ic_chevron_right), - contentDescription = "Right Chevron Icon", - tint = Color.Unspecified, - ) - } } }, description = { @@ -212,20 +203,6 @@ internal fun SettingsUi( }, ) } - - if (state.isOptionalUpdateDialogVisible) { - ReedDialog( - onDismissRequest = { - state.eventSink(SettingsUiEvent.OnOptionalUpdateDialogDismiss) - }, - title = stringResource(R.string.settings_optional_update_title), - description = stringResource(R.string.settings_optional_update_message), - confirmButtonText = stringResource(R.string.settings_optional_update_button_text), - onConfirmRequest = { - state.eventSink(SettingsUiEvent.OnUpdateButtonClick) - }, - ) - } } } diff --git a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt index e318b370..fb7961e5 100644 --- a/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt +++ b/feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt @@ -40,6 +40,4 @@ sealed interface SettingsUiEvent : CircuitUiEvent { data object Logout : SettingsUiEvent data object Withdraw : SettingsUiEvent data object OnVersionClick : SettingsUiEvent - data object OnOptionalUpdateDialogDismiss : SettingsUiEvent - data object OnUpdateButtonClick : SettingsUiEvent } From 3ae750804ae02e0a7e48ae7afc44a5a3481ea972 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Fri, 22 Aug 2025 03:10:23 +0900 Subject: [PATCH 105/107] [BOOK-256] chore: app version update versionName: 1.0.0 -> 1.1.0 versionCode: 3 -> 4 --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b0cf731a..12530d9b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -79,8 +79,8 @@ firebase-crashlytics = "3.0.4" minSdk = "28" targetSdk = "35" compileSdk = "35" -versionName = "1.0.0" -versionCode = "3" +versionName = "1.1.0" +versionCode = "4" packageName = "com.ninecraft.booket" [libraries] From cb634d01e72d829357aa8660591400a87f92637b Mon Sep 17 00:00:00 2001 From: easyhooon Date: Fri, 22 Aug 2025 03:29:31 +0900 Subject: [PATCH 106/107] =?UTF-8?q?[BOOK-256]=20feat:=20=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20GA=20=EB=A1=9C=EA=B7=B8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20=EC=98=A8=EB=B3=B4=EB=94=A9=20GA=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20=EB=B3=80=EA=B2=BD=20=EC=82=AC=ED=95=AD=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/detail/card/RecordCardPresenter.kt | 15 +++++++++++++++ .../booket/feature/screens/ScreenNames.kt | 3 ++- .../ninecraft/booket/feature/screens/Screens.kt | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt index e3df57f7..19958164 100644 --- a/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt +++ b/feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardPresenter.kt @@ -4,11 +4,13 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue +import com.ninecraft.booket.core.common.analytics.AnalyticsHelper import com.ninecraft.booket.feature.screens.RecordCardScreen import com.slack.circuit.codegen.annotations.CircuitInject import com.slack.circuit.retained.rememberRetained import com.slack.circuit.runtime.Navigator import com.slack.circuit.runtime.presenter.Presenter +import com.slack.circuitx.effects.ImpressionEffect import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -17,7 +19,14 @@ import dagger.hilt.android.components.ActivityRetainedComponent class RecordCardPresenter @AssistedInject constructor( @Assisted private val screen: RecordCardScreen, @Assisted private val navigator: Navigator, + private val analyticsHelper: AnalyticsHelper, ) : Presenter { + + companion object { + private const val RECORD_CARD_SAVE = "record_card_save" + private const val RECORD_CARD_SHARE = "record_card_share" + } + @Composable override fun present(): RecordCardUiState { var isLoading by rememberRetained { mutableStateOf(false) } @@ -45,16 +54,22 @@ class RecordCardPresenter @AssistedInject constructor( is RecordCardUiEvent.SaveRecordCard -> { isCapturing = false + analyticsHelper.logEvent(RECORD_CARD_SAVE) sideEffect = RecordCardSideEffect.SaveImage(event.bitmap) } is RecordCardUiEvent.ShareRecordCard -> { isSharing = false + analyticsHelper.logEvent(RECORD_CARD_SHARE) sideEffect = RecordCardSideEffect.ShareImage(event.bitmap) } } } + ImpressionEffect { + analyticsHelper.logScreenView(screen.name) + } + return RecordCardUiState( isLoading = isLoading, quote = screen.quote, diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/ScreenNames.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/ScreenNames.kt index 631cfc67..1c31c461 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/ScreenNames.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/ScreenNames.kt @@ -13,5 +13,6 @@ object ScreenNames { const val OCR = "record_OCR_camera" const val RECORD_DETAIL = "record_detail" const val BOOK_DETAIL = "library_book_detail" - const val ONBOARDING = "onboarding_1_search" + const val ONBOARDING = "onboarding" + const val RECORD_CARD = "record_view_card" } diff --git a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt index 0dd86a0c..f7f1ae61 100644 --- a/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt +++ b/feature/screens/src/main/kotlin/com/ninecraft/booket/feature/screens/Screens.kt @@ -77,4 +77,4 @@ data class RecordCardScreen( val quote: String, val bookTitle: String, val emotionTag: String, -) : ReedScreen(name = "RecordCard()") +) : ReedScreen(name = ScreenNames.RECORD_CARD) From a1894ce02ce585adb8896985b17d8677bfb79d02 Mon Sep 17 00:00:00 2001 From: easyhooon Date: Fri, 22 Aug 2025 09:51:10 +0900 Subject: [PATCH 107/107] =?UTF-8?q?fix:=20cd=20flow=20=EB=82=B4=EC=97=90?= =?UTF-8?q?=20versionName=20=EC=B6=94=EC=B6=9C=20=EB=B0=A9=EC=8B=9D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build-logic ApplicationConstants -> libs.version.toml --- .github/workflows/android-cd.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/android-cd.yml b/.github/workflows/android-cd.yml index 9ecb0f95..e82c41fd 100644 --- a/.github/workflows/android-cd.yml +++ b/.github/workflows/android-cd.yml @@ -38,16 +38,16 @@ jobs: - name: Generate google-services.json run: echo '${{ secrets.GOOGLE_SERVICES }}' | base64 -d > ./app/google-services.json - - name: Extract Version Name from ApplicationConstants.kt + - name: Extract Version Name from libs.versions.toml run: | set -euo pipefail - VERSION=$(grep "VERSION_NAME" build-logic/src/main/kotlin/com/ninecraft/booket/convention/ApplicationConstants.kt | sed -E 's/.*VERSION_NAME\s*=\s*"([^"]+)".*/\1/') + VERSION=$(grep "versionName" gradle/libs.versions.toml | sed -E 's/.*versionName\s*=\s*"([^"]+)".*/\1/') if [[ -z "$VERSION" ]]; then - echo "Error: ApplicationConstants.kt에서 VERSION_NAME 값을 추출하지 못했습니다." >&2 + echo "Error: toml에서 versionName 값을 추출하지 못했습니다." >&2 exit 1 fi echo "version=v${VERSION}" >> "$GITHUB_OUTPUT" - echo "Version extracted from ApplicationConstants.kt: v${VERSION}" + echo "Version extracted from toml: v${VERSION}" id: extract_version - name: Generate Firebase Release Note