diff --git a/app/src/main/java/org/nsh07/pomodoro/MainActivity.kt b/app/src/main/java/org/nsh07/pomodoro/MainActivity.kt index a753952..9e10f0f 100644 --- a/app/src/main/java/org/nsh07/pomodoro/MainActivity.kt +++ b/app/src/main/java/org/nsh07/pomodoro/MainActivity.kt @@ -8,19 +8,21 @@ import androidx.activity.viewModels import org.nsh07.pomodoro.ui.AppScreen import org.nsh07.pomodoro.ui.NavItem import org.nsh07.pomodoro.ui.Screen +import org.nsh07.pomodoro.ui.statsScreen.viewModel.StatsViewModel import org.nsh07.pomodoro.ui.theme.TomatoTheme import org.nsh07.pomodoro.ui.timerScreen.viewModel.TimerViewModel class MainActivity : ComponentActivity() { - private val viewModel: TimerViewModel by viewModels(factoryProducer = { TimerViewModel.Factory }) + private val timerViewModel: TimerViewModel by viewModels(factoryProducer = { TimerViewModel.Factory }) + private val statsViewModel: StatsViewModel by viewModels(factoryProducer = { StatsViewModel.Factory }) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { TomatoTheme { - AppScreen(viewModel = viewModel) + AppScreen(timerViewModel = timerViewModel, statsViewModel = statsViewModel) } } } diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/AppScreen.kt b/app/src/main/java/org/nsh07/pomodoro/ui/AppScreen.kt index 072cb66..6a61814 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/AppScreen.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/AppScreen.kt @@ -46,6 +46,7 @@ import androidx.window.core.layout.WindowSizeClass import org.nsh07.pomodoro.MainActivity.Companion.screens import org.nsh07.pomodoro.ui.settingsScreen.SettingsScreenRoot import org.nsh07.pomodoro.ui.statsScreen.StatsScreenRoot +import org.nsh07.pomodoro.ui.statsScreen.viewModel.StatsViewModel import org.nsh07.pomodoro.ui.timerScreen.TimerScreen import org.nsh07.pomodoro.ui.timerScreen.viewModel.TimerViewModel @@ -53,10 +54,11 @@ import org.nsh07.pomodoro.ui.timerScreen.viewModel.TimerViewModel @Composable fun AppScreen( modifier: Modifier = Modifier, - viewModel: TimerViewModel = viewModel(factory = TimerViewModel.Factory) + timerViewModel: TimerViewModel = viewModel(factory = TimerViewModel.Factory), + statsViewModel: StatsViewModel = viewModel(factory = StatsViewModel.Factory) ) { - val uiState by viewModel.timerState.collectAsStateWithLifecycle() - val remainingTime by viewModel.time.collectAsStateWithLifecycle() + val uiState by timerViewModel.timerState.collectAsStateWithLifecycle() + val remainingTime by timerViewModel.time.collectAsStateWithLifecycle() val progress by rememberUpdatedState((uiState.totalTime.toFloat() - remainingTime) / uiState.totalTime) @@ -137,7 +139,7 @@ fun AppScreen( TimerScreen( timerState = uiState, progress = { progress }, - onAction = viewModel::onAction, + onAction = timerViewModel::onAction, modifier = modifier.padding( start = contentPadding.calculateStartPadding(layoutDirection), end = contentPadding.calculateEndPadding(layoutDirection), @@ -158,6 +160,7 @@ fun AppScreen( entry { StatsScreenRoot( + viewModel = statsViewModel, modifier = modifier.padding( start = contentPadding.calculateStartPadding(layoutDirection), end = contentPadding.calculateEndPadding(layoutDirection), diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/StatsScreen.kt b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/StatsScreen.kt index 768d1ac..be71237 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/StatsScreen.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/StatsScreen.kt @@ -68,10 +68,10 @@ fun StatsScreenRoot( ) { val todayStat by viewModel.todayStat.collectAsState(null) StatsScreen( - lastWeekSummaryChartData = viewModel.lastWeekSummaryChartData, - lastWeekSummaryAnalysisModelProducer = viewModel.lastWeekSummaryAnalysisModelProducer, - lastMonthSummaryChartData = viewModel.lastMonthSummaryChartData, - lastMonthSummaryAnalysisModelProducer = viewModel.lastMonthSummaryAnalysisModelProducer, + lastWeekSummaryChartData = remember { viewModel.lastWeekSummaryChartData }, + lastWeekSummaryAnalysisModelProducer = remember { viewModel.lastWeekSummaryAnalysisModelProducer }, + lastMonthSummaryChartData = remember { viewModel.lastMonthSummaryChartData }, + lastMonthSummaryAnalysisModelProducer = remember { viewModel.lastMonthSummaryAnalysisModelProducer }, todayStat = todayStat, modifier = modifier ) diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeColumnChart.kt b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeColumnChart.kt index 36c8f41..a085850 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeColumnChart.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/TimeColumnChart.kt @@ -111,7 +111,6 @@ internal fun TimeColumnChart( minZoom = Zoom.min(Zoom.Content, Zoom.fixed()) ), animationSpec = animationSpec, - animateIn = false, modifier = modifier, ) }