Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/android-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,18 @@ jobs:

- name: Run build
run: ./gradlew buildDebug --stacktrace

stability_check:
name: Compose Stability Check
runs-on: macos-latest
needs: build
steps:
- name: Check out code
uses: actions/checkout@v5.0.0
- name: Set up JDK
uses: actions/setup-java@v5.0.0
with:
distribution: 'zulu'
java-version: 21
- name: compose stability check
run: ./gradlew stabilityCheck
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,12 @@ 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
import com.skydoves.compose.stability.runtime.TraceRecomposition

// 기기에서 평균적으로 한 화면에 보이는 아이템 개수
private const val LIMIT_COUNT = 6

@TraceRecomposition
@Composable
fun InfinityLazyColumn(
modifier: Modifier = Modifier,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,14 @@ 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.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent
import kotlinx.collections.immutable.toImmutableList
import kotlinx.coroutines.launch
import com.ninecraft.booket.core.designsystem.R as designR

@TraceRecomposition
@OptIn(ExperimentalMaterial3Api::class)
@CircuitInject(BookDetailScreen::class, ActivityRetainedComponent::class)
@Composable
Expand Down Expand Up @@ -195,6 +197,7 @@ internal fun BookDetailUi(
}
}

@TraceRecomposition
@Composable
internal fun BookDetailContent(
state: BookDetailUiState,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,12 @@ import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle
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.skydoves.compose.stability.runtime.TraceRecomposition
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList
import com.ninecraft.booket.core.designsystem.R as designR

@TraceRecomposition
@OptIn(ExperimentalMaterial3Api::class)
@Composable
internal fun BookUpdateBottomSheet(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,14 @@ 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 com.ninecraft.booket.core.designsystem.ComponentPreview
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
import com.ninecraft.booket.feature.detail.R
import com.ninecraft.booket.feature.detail.book.RecordSort
import com.skydoves.compose.stability.runtime.TraceRecomposition
import com.ninecraft.booket.core.designsystem.R as designR

@TraceRecomposition
@Composable
internal fun ReadingRecordsHeader(
totalCount: Int,
Expand Down Expand Up @@ -62,3 +65,15 @@ internal fun ReadingRecordsHeader(
}
}
}

@ComponentPreview
@Composable
private fun ReadingRecordsHeaderPreview() {
ReedTheme {
ReadingRecordsHeader(
totalCount = 4,
currentRecordSort = RecordSort.PAGE_NUMBER_ASC,
onReadingRecordClick = {},
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,12 @@ 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.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent
import com.ninecraft.booket.core.designsystem.R as designR

@TraceRecomposition
@CircuitInject(RecordCardScreen::class, ActivityRetainedComponent::class)
@Composable
internal fun RecordCardUi(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,13 @@ 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.ReviewItem
import com.ninecraft.booket.feature.screens.RecordDetailScreen
import com.skydoves.compose.stability.runtime.TraceRecomposition
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

@TraceRecomposition
@OptIn(ExperimentalMaterial3Api::class)
@CircuitInject(RecordDetailScreen::class, ActivityRetainedComponent::class)
@Composable
Expand Down Expand Up @@ -116,6 +118,7 @@ internal fun RecordDetailUi(
}
}

@TraceRecomposition
@Composable
private fun RecordDetailContent(
state: RecordDetailUiState,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,12 @@ 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.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent
import kotlinx.collections.immutable.toPersistentList

@TraceRecomposition
@CircuitInject(EmotionEditScreen::class, ActivityRetainedComponent::class)
@Composable
internal fun EmotionEditUi(
Expand All @@ -65,6 +67,7 @@ internal fun EmotionEditUi(
}
}

@TraceRecomposition
@Composable
private fun EmotionEditContent(
state: EmotionEditUiState,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@ 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.WindowInsets
import androidx.compose.foundation.layout.exclude
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
Expand All @@ -21,6 +20,7 @@ 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.ScaffoldDefaults
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
Expand All @@ -45,10 +45,12 @@ 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.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent
import com.ninecraft.booket.core.designsystem.R as designR

@TraceRecomposition
@CircuitInject(RecordEditScreen::class, ActivityRetainedComponent::class)
@Composable
internal fun RecordEditUi(
Expand Down Expand Up @@ -83,6 +85,7 @@ internal fun RecordEditUi(
}
}

@TraceRecomposition
@Composable
private fun ColumnScope.RecordEditContent(state: RecordEditUiState) {
Column(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,12 @@ import com.ninecraft.booket.feature.home.component.HomeHeader
import com.ninecraft.booket.feature.screens.HomeScreen
import com.ninecraft.booket.feature.screens.component.MainBottomBar
import com.ninecraft.booket.feature.screens.component.MainTab
import com.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent
import kotlinx.collections.immutable.toImmutableList

@TraceRecomposition
@CircuitInject(HomeScreen::class, ActivityRetainedComponent::class)
@Composable
internal fun HomeUi(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@ import com.ninecraft.booket.core.designsystem.ComponentPreview
import com.ninecraft.booket.core.designsystem.theme.HomeBg
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
import com.ninecraft.booket.feature.home.R
import com.skydoves.compose.stability.runtime.TraceRecomposition
import com.ninecraft.booket.core.designsystem.R as designR

@TraceRecomposition
@Composable
fun HomeBanner(
onBookRegisterClick: () -> Unit,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import com.ninecraft.booket.core.designsystem.ComponentPreview
import com.ninecraft.booket.core.designsystem.R as designR
import com.ninecraft.booket.core.designsystem.theme.HomeBg
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
import com.ninecraft.booket.feature.home.R
import com.ninecraft.booket.core.designsystem.R as designR

@Composable
fun HomeHeader(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,13 @@ import com.ninecraft.booket.feature.library.component.LibraryHeader
import com.ninecraft.booket.feature.screens.LibraryScreen
import com.ninecraft.booket.feature.screens.component.MainBottomBar
import com.ninecraft.booket.feature.screens.component.MainTab
import com.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent
import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.toImmutableList

@TraceRecomposition
@CircuitInject(LibraryScreen::class, ActivityRetainedComponent::class)
@Composable
internal fun LibraryUi(
Expand Down Expand Up @@ -84,6 +86,7 @@ internal fun LibraryUi(
}
}

@TraceRecomposition
@Composable
internal fun LibraryContent(
state: LibraryUiState,
Expand Down Expand Up @@ -187,6 +190,7 @@ internal fun LibraryContent(
}
}

@TraceRecomposition
@Composable
private fun EmptyResult() {
Box(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ import com.ninecraft.booket.core.designsystem.ComponentPreview
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
import com.ninecraft.booket.core.designsystem.theme.White
import com.ninecraft.booket.feature.library.LibraryFilterOption
import com.skydoves.compose.stability.runtime.TraceRecomposition

@TraceRecomposition
@Composable
fun FilterChip(
option: LibraryFilterOption,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ import com.ninecraft.booket.core.designsystem.ComponentPreview
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
import com.ninecraft.booket.feature.library.LibraryFilterChip
import com.ninecraft.booket.feature.library.LibraryFilterOption
import com.skydoves.compose.stability.runtime.TraceRecomposition
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toPersistentList

@TraceRecomposition
@Composable
fun FilterChipGroup(
filterList: ImmutableList<LibraryFilterChip>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,11 @@ import com.ninecraft.booket.core.ui.ReedScaffold
import com.ninecraft.booket.core.ui.component.ReedCloseTopAppBar
import com.ninecraft.booket.core.ui.component.ReedLoadingIndicator
import com.ninecraft.booket.feature.screens.LoginScreen
import com.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent

@TraceRecomposition
@CircuitInject(LoginScreen::class, ActivityRetainedComponent::class)
@Composable
internal fun LoginUi(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,12 @@ import com.ninecraft.booket.core.ui.ReedScaffold
import com.ninecraft.booket.feature.login.R
import com.ninecraft.booket.feature.screens.TermsAgreementScreen
import com.ninecraft.booket.feature.termsagreement.component.TermItem
import com.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent
import kotlinx.collections.immutable.persistentListOf

@TraceRecomposition
@CircuitInject(TermsAgreementScreen::class, ActivityRetainedComponent::class)
@Composable
internal fun TermsAgreementUi(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ import com.ninecraft.booket.core.common.extensions.noRippleClickable
import com.ninecraft.booket.core.designsystem.ComponentPreview
import com.ninecraft.booket.core.designsystem.component.checkbox.TickOnlyCheckBox
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
import com.skydoves.compose.stability.runtime.TraceRecomposition
import com.ninecraft.booket.core.designsystem.R as designR

@TraceRecomposition
@Composable
internal fun TermItem(
title: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ import com.ninecraft.booket.core.ui.ReedScaffold
import com.ninecraft.booket.feature.onboarding.component.OnboardingPage
import com.ninecraft.booket.feature.onboarding.component.PagerIndicator
import com.ninecraft.booket.feature.screens.OnboardingScreen
import com.skydoves.compose.stability.runtime.TraceRecomposition
import com.slack.circuit.codegen.annotations.CircuitInject
import dagger.hilt.android.components.ActivityRetainedComponent

@TraceRecomposition
@CircuitInject(OnboardingScreen::class, ActivityRetainedComponent::class)
@Composable
internal fun OnboardingUi(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.unit.dp
import com.ninecraft.booket.core.designsystem.ComponentPreview
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
import com.skydoves.compose.stability.runtime.TraceRecomposition

@TraceRecomposition
@Composable
internal fun PagerIndicator(
pageCount: Int,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@ import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
import com.ninecraft.booket.core.ui.component.ReedBottomSheet
import com.ninecraft.booket.feature.record.R
import com.skydoves.compose.stability.runtime.TraceRecomposition
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toPersistentList
import com.ninecraft.booket.core.designsystem.R as designR

@TraceRecomposition
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ImpressionGuideBottomSheet(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ import com.ninecraft.booket.core.designsystem.theme.Blank
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.skydoves.compose.stability.runtime.TraceRecomposition

@TraceRecomposition
@Composable
fun ImpressionGuideBox(
onClick: () -> Unit,
Expand Down
Loading