feat: group display on schedule screen

This commit is contained in:
2026-09-03 19:59:21 +03:00
parent 2069ec811a
commit 84ae97b906
5 changed files with 13 additions and 5 deletions
@@ -44,7 +44,7 @@ fun ScheduleScreen(viewModel: ScheduleViewModel, onSwitchGroup: () -> Unit) {
Column(Modifier.fillMaxSize()) {
TopAppBar(
title = { Text("Расписание") },
title = { Text(state.groupName ?: "Расписание", style = MaterialTheme.typography.titleMedium) },
actions = {
TextButton(onClick = { onSwitchGroup() }) {
Text("Сменить группу")
@@ -53,7 +53,7 @@ fun ScheduleScreen(viewModel: ScheduleViewModel, onSwitchGroup: () -> Unit) {
Icon(Icons.Default.Refresh, contentDescription = "Обновить")
}
},
windowInsets = WindowInsets.systemBars.only(androidx.compose.foundation.layout.WindowInsetsSides.Top)
windowInsets = WindowInsets(0.dp)
)
Column(Modifier.fillMaxSize().padding(horizontal = 16.dp, vertical = 0.dp)) {
when {
@@ -3,6 +3,7 @@ package agzam.vyatsu.ui.schedule
import agzam.vyatsu.domain.ScheduleDates
import agzam.vyatsu.domain.model.Day
import agzam.vyatsu.domain.model.Schedule
import agzam.vyatsu.domain.repository.GroupRepository
import agzam.vyatsu.domain.repository.PreferencesRepository
import agzam.vyatsu.domain.repository.ScheduleRepository
import androidx.lifecycle.ViewModel
@@ -14,7 +15,8 @@ import kotlinx.coroutines.launch
class ScheduleViewModel(
private val scheduleRepository: ScheduleRepository,
private val preferencesRepository: PreferencesRepository
private val preferencesRepository: PreferencesRepository,
private val groupRepository: GroupRepository
) : ViewModel() {
private val _uiState = MutableStateFlow(ScheduleUiState())
@@ -37,7 +39,8 @@ class ScheduleViewModel(
currentGroupId = groupId
viewModelScope.launch {
preferencesRepository.setSelectedGroup(groupId)
_uiState.value = _uiState.value.copy(noGroup = false)
val groupName = groupRepository.getGroup(groupId)?.name
_uiState.value = _uiState.value.copy(noGroup = false, groupName = groupName)
launch {
scheduleRepository.observeSchedule(groupId).collect { schedule ->
@@ -124,6 +127,7 @@ data class ScheduleUiState(
val noGroup: Boolean = false,
val isRefreshing: Boolean = false,
val isSyncing: Boolean = false,
val groupName: String? = null,
val schedule: Schedule? = null,
val todayIndex: Int = 0,
val selectedIndex: Int = 0