Merge branch 'database-refactor'
This commit is contained in:
@@ -41,5 +41,5 @@ private class SimpleFactory<T : ViewModel>(private val create: () -> T) : ViewMo
|
|||||||
override fun <T : ViewModel> create(modelClass: Class<T>): T = create() as T
|
override fun <T : ViewModel> create(modelClass: Class<T>): T = create() as T
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun scheduleFactory(c: AppContainer): ViewModelProvider.Factory = SimpleFactory { ScheduleViewModel(c.scheduleRepository, c.preferencesRepository, c.groupRepository) }
|
private fun scheduleFactory(c: AppContainer): ViewModelProvider.Factory = SimpleFactory { ScheduleViewModel(c.scheduleRepository, c.preferencesRepository) }
|
||||||
private fun groupPickerFactory(c: AppContainer): ViewModelProvider.Factory = SimpleFactory { GroupPickerViewModel(c.groupRepository) }
|
private fun groupPickerFactory(c: AppContainer): ViewModelProvider.Factory = SimpleFactory { GroupPickerViewModel(c.groupRepository) }
|
||||||
|
|||||||
@@ -23,9 +23,6 @@ class GroupRepositoryImpl(
|
|||||||
override suspend fun getGroups(): List<Group> =
|
override suspend fun getGroups(): List<Group> =
|
||||||
groupDao.observeAll().first().map { it.toDomain() }
|
groupDao.observeAll().first().map { it.toDomain() }
|
||||||
|
|
||||||
override suspend fun getGroup(id: String): Group? =
|
|
||||||
groupDao.getById(id)?.toDomain()
|
|
||||||
|
|
||||||
override suspend fun getFaculties(): List<String> = groupDao.getFaculties()
|
override suspend fun getFaculties(): List<String> = groupDao.getFaculties()
|
||||||
|
|
||||||
override suspend fun refreshIfStale(): Boolean {
|
override suspend fun refreshIfStale(): Boolean {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import kotlinx.coroutines.flow.Flow
|
|||||||
interface GroupRepository {
|
interface GroupRepository {
|
||||||
fun observeGroups(): Flow<List<Group>>
|
fun observeGroups(): Flow<List<Group>>
|
||||||
suspend fun getGroups(): List<Group>
|
suspend fun getGroups(): List<Group>
|
||||||
suspend fun getGroup(id: String): Group?
|
|
||||||
suspend fun getFaculties(): List<String>
|
suspend fun getFaculties(): List<String>
|
||||||
suspend fun refreshIfStale(): Boolean
|
suspend fun refreshIfStale(): Boolean
|
||||||
suspend fun forceRefresh(): Boolean
|
suspend fun forceRefresh(): Boolean
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ fun ScheduleScreen(viewModel: ScheduleViewModel, onSwitchGroup: () -> Unit) {
|
|||||||
|
|
||||||
Column(Modifier.fillMaxSize()) {
|
Column(Modifier.fillMaxSize()) {
|
||||||
TopAppBar(
|
TopAppBar(
|
||||||
title = { Text(state.groupName ?: "Расписание", style = MaterialTheme.typography.titleMedium) },
|
title = { Text("Расписание") },
|
||||||
actions = {
|
actions = {
|
||||||
TextButton(onClick = { onSwitchGroup() }) {
|
TextButton(onClick = { onSwitchGroup() }) {
|
||||||
Text("Сменить группу")
|
Text("Сменить группу")
|
||||||
@@ -56,7 +56,7 @@ fun ScheduleScreen(viewModel: ScheduleViewModel, onSwitchGroup: () -> Unit) {
|
|||||||
Icon(Icons.Default.Refresh, contentDescription = "Обновить")
|
Icon(Icons.Default.Refresh, contentDescription = "Обновить")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
windowInsets = WindowInsets(0.dp)
|
windowInsets = WindowInsets.systemBars.only(androidx.compose.foundation.layout.WindowInsetsSides.Top)
|
||||||
)
|
)
|
||||||
Column(Modifier.fillMaxSize().padding(horizontal = 16.dp, vertical = 0.dp)) {
|
Column(Modifier.fillMaxSize().padding(horizontal = 16.dp, vertical = 0.dp)) {
|
||||||
when {
|
when {
|
||||||
|
|||||||
Reference in New Issue
Block a user