Skip to content

Commit 9250b31

Browse files
committed
Merge branch 'develop' into BOOK-225-feature/#111
# Conflicts: # core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/AuthRepository.kt # core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultAuthRepository.kt # core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt # feature/home/build.gradle.kts # feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt # feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt # feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUiState.kt # feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginUi.kt # feature/login/src/main/kotlin/com/ninecraft/booket/feature/termsagreement/TermsAgreementPresenter.kt # feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/ocr/OcrUi.kt # feature/record/src/main/kotlin/com/ninecraft/booket/feature/record/register/RecordRegisterUi.kt
2 parents 8954f0c + 838870e commit 9250b31

52 files changed

Lines changed: 910 additions & 806 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

core/data/api/src/main/kotlin/com/ninecraft/booket/core/data/api/repository/AuthRepository.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,7 @@ interface AuthRepository {
88

99
suspend fun logout(): Result<Unit>
1010

11+
suspend fun withdraw(): Result<Unit>
12+
1113
val autoLoginState: Flow<AutoLoginState>
1214
}

core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultAuthRepository.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ internal class DefaultAuthRepository @Inject constructor(
3030
clearTokens()
3131
}
3232

33+
override suspend fun withdraw() = runSuspendCatching {
34+
service.withdraw()
35+
clearTokens()
36+
}
37+
3338
private suspend fun saveTokens(accessToken: String, refreshToken: String) {
3439
tokenDataSource.apply {
3540
setAccessToken(accessToken)

core/designsystem/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ dependencies {
1313
implementations(
1414
projects.core.common,
1515

16+
libs.androidx.splash,
17+
1618
libs.coil.compose,
1719
libs.logger,
1820

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="108dp"
3+
android:height="108dp"
4+
android:viewportWidth="192"
5+
android:viewportHeight="192">
6+
7+
<path
8+
android:fillColor="@color/green_500"
9+
android:pathData="M0,0h192v192h-192z" />
10+
11+
</vector>

core/designsystem/src/main/res/values/colors.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
<color name="teal_700">#FF018786</color>
88
<color name="black">#FF000000</color>
99
<color name="white">#FFFFFFFF</color>
10+
<color name="green_500">#FF2F9647</color>
1011
</resources>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
4+
<style name="Theme.Booket.Splash" parent="Theme.SplashScreen">
5+
<item name="windowSplashScreenBackground">#FF2F9647</item>
6+
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_dummy_splash</item>
7+
<item name="postSplashScreenTheme">@style/Theme.Booket</item>
8+
</style>
9+
10+
</resources>

core/network/src/main/kotlin/com/ninecraft/booket/core/network/service/ReedService.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.ninecraft.booket.core.network.response.RefreshTokenResponse
1717
import com.ninecraft.booket.core.network.response.TermsAgreementResponse
1818
import com.ninecraft.booket.core.network.response.UserProfileResponse
1919
import retrofit2.http.Body
20+
import retrofit2.http.DELETE
2021
import retrofit2.http.GET
2122
import retrofit2.http.POST
2223
import retrofit2.http.PUT
@@ -35,7 +36,10 @@ interface ReedService {
3536
@POST("api/v1/auth/signout")
3637
suspend fun logout()
3738

38-
// Users endpoints (auth required)
39+
@DELETE("api/v1/auth/withdraw")
40+
suspend fun withdraw()
41+
42+
// User endpoints (auth required)
3943
@PUT("api/v1/users/me/terms-agreement")
4044
suspend fun agreeTerms(@Body termsAgreementRequest: TermsAgreementRequest): TermsAgreementResponse
4145

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.ninecraft.booket.feature.detail.book
22

33
import androidx.compose.foundation.layout.Column
4+
import androidx.compose.foundation.layout.PaddingValues
45
import androidx.compose.foundation.layout.Row
56
import androidx.compose.foundation.layout.Spacer
67
import androidx.compose.foundation.layout.fillMaxSize
@@ -36,8 +37,8 @@ import com.ninecraft.booket.core.designsystem.component.button.ReedButton
3637
import com.ninecraft.booket.core.designsystem.component.button.ReedButtonColorStyle
3738
import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle
3839
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
40+
import com.ninecraft.booket.core.ui.ReedScaffold
3941
import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar
40-
import com.ninecraft.booket.core.ui.component.ReedFullScreen
4142
import com.ninecraft.booket.feature.detail.book.component.BookUpdateBottomSheet
4243
import com.ninecraft.booket.feature.detail.book.component.CollectedSeed
4344
import com.ninecraft.booket.feature.detail.book.component.RecordSortBottomSheet
@@ -65,14 +66,13 @@ internal fun BookDetailUi(
6566
eventSink = state.eventSink,
6667
)
6768

68-
ReedFullScreen(modifier = modifier) {
69-
ReedBackTopAppBar(
70-
title = "",
71-
onBackClick = {
72-
state.eventSink(BookDetailUiEvent.OnBackClick)
73-
},
69+
ReedScaffold(
70+
modifier = modifier.fillMaxSize(),
71+
) { innerPadding ->
72+
BookDetailContent(
73+
state = state,
74+
innerPadding = innerPadding,
7475
)
75-
BookDetailContent(state = state)
7676
}
7777

7878
if (state.isBookUpdateBottomSheetVisible) {
@@ -122,13 +122,21 @@ internal fun BookDetailUi(
122122
@Composable
123123
internal fun BookDetailContent(
124124
state: BookDetailUiState,
125+
innerPadding: PaddingValues,
125126
modifier: Modifier = Modifier,
126127
) {
127128
Column(
128129
modifier = modifier
129130
.fillMaxSize()
131+
.padding(innerPadding)
130132
.verticalScroll(rememberScrollState()),
131133
) {
134+
ReedBackTopAppBar(
135+
title = "",
136+
onBackClick = {
137+
state.eventSink(BookDetailUiEvent.OnBackClick)
138+
},
139+
)
132140
Row(
133141
modifier = modifier
134142
.fillMaxWidth()

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.ninecraft.booket.feature.detail.record
22

3-
import androidx.compose.foundation.background
43
import androidx.compose.foundation.layout.BoxWithConstraints
54
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.PaddingValues
66
import androidx.compose.foundation.layout.Row
77
import androidx.compose.foundation.layout.Spacer
88
import androidx.compose.foundation.layout.fillMaxSize
@@ -28,7 +28,7 @@ import com.ninecraft.booket.core.designsystem.component.ReedDivider
2828
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
2929
import com.ninecraft.booket.core.designsystem.theme.White
3030
import com.ninecraft.booket.core.model.RecordDetailModel
31-
import com.ninecraft.booket.core.ui.component.ReedFullScreen
31+
import com.ninecraft.booket.core.ui.ReedScaffold
3232
import com.ninecraft.booket.core.ui.component.ReedTopAppBar
3333
import com.ninecraft.booket.feature.detail.R
3434
import com.ninecraft.booket.feature.detail.record.component.QuoteBox
@@ -48,26 +48,36 @@ internal fun RecordDetailUi(
4848
state = state,
4949
)
5050

51-
ReedFullScreen(modifier = modifier) {
52-
ReedTopAppBar(
53-
title = stringResource(R.string.review_detail_title),
54-
startIconRes = designR.drawable.ic_close,
55-
startIconDescription = "Close Icon",
56-
startIconOnClick = {
57-
state.eventSink(RecordDetailUiEvent.OnCloseClicked)
58-
},
51+
ReedScaffold(
52+
modifier = modifier.fillMaxSize(),
53+
containerColor = White,
54+
) { innerPadding ->
55+
ReviewDetailContent(
56+
state = state,
57+
innerPadding = innerPadding,
5958
)
60-
ReviewDetailContent(state = state, modifier = modifier)
6159
}
6260
}
6361

6462
@Composable
65-
private fun ReviewDetailContent(state: RecordDetailUiState, modifier: Modifier = Modifier) {
63+
private fun ReviewDetailContent(
64+
state: RecordDetailUiState,
65+
innerPadding: PaddingValues,
66+
modifier: Modifier = Modifier,
67+
) {
6668
Column(
67-
modifier = Modifier
69+
modifier = modifier
6870
.fillMaxSize()
69-
.background(White),
71+
.padding(innerPadding),
7072
) {
73+
ReedTopAppBar(
74+
title = stringResource(R.string.review_detail_title),
75+
startIconRes = designR.drawable.ic_close,
76+
startIconDescription = "Close Icon",
77+
startIconOnClick = {
78+
state.eventSink(RecordDetailUiEvent.OnCloseClicked)
79+
},
80+
)
7181
Row(
7282
modifier = modifier
7383
.fillMaxWidth()

feature/home/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,5 @@ ksp {
1717
dependencies {
1818
implementations(
1919
libs.logger,
20-
21-
libs.compose.system.ui.controller,
22-
libs.lottie.compose,
2320
)
2421
}

0 commit comments

Comments
 (0)