Compare commits
2
Commits
9e94a67a85
..
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb97371309 | ||
|
|
44b0edf721
|
@@ -44,6 +44,7 @@ import androidx.compose.ui.zIndex
|
|||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import ru.sweetbread.unn.R
|
import ru.sweetbread.unn.R
|
||||||
|
import ru.sweetbread.unn.app.UNNApp
|
||||||
import ru.sweetbread.unn.feature.schedule.components.BoundedWeekPicker
|
import ru.sweetbread.unn.feature.schedule.components.BoundedWeekPicker
|
||||||
import ru.sweetbread.unn.feature.schedule.components.GroupsNameText
|
import ru.sweetbread.unn.feature.schedule.components.GroupsNameText
|
||||||
import ru.sweetbread.unn.model.Auditorium
|
import ru.sweetbread.unn.model.Auditorium
|
||||||
@@ -53,7 +54,10 @@ import ru.sweetbread.unn.model.KindOfWork
|
|||||||
import ru.sweetbread.unn.model.Lecturer
|
import ru.sweetbread.unn.model.Lecturer
|
||||||
import ru.sweetbread.unn.model.LecturerRank
|
import ru.sweetbread.unn.model.LecturerRank
|
||||||
import ru.sweetbread.unn.model.ScheduleUnit
|
import ru.sweetbread.unn.model.ScheduleUnit
|
||||||
|
import ru.sweetbread.unn.model.Student
|
||||||
|
import ru.sweetbread.unn.model.Type
|
||||||
import ru.sweetbread.unn.ui.theme.UNNTheme
|
import ru.sweetbread.unn.ui.theme.UNNTheme
|
||||||
|
import splitties.init.appCtx
|
||||||
import splitties.resources.appStr
|
import splitties.resources.appStr
|
||||||
import java.time.LocalDate
|
import java.time.LocalDate
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
@@ -113,6 +117,9 @@ fun ScheduleDay(modifier: Modifier = Modifier, viewModel: ScheduleViewModel) {
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ScheduleItem(modifier: Modifier = Modifier, unit: ScheduleUnit, expanded: Boolean = false) {
|
fun ScheduleItem(modifier: Modifier = Modifier, unit: ScheduleUnit, expanded: Boolean = false) {
|
||||||
|
val me = (appCtx as UNNApp).container.sessionManager.user.collectAsState().value
|
||||||
|
val currentGroup = if (me?.type == Type.Student) (me as Student).group else null
|
||||||
|
|
||||||
fun getRatio(): Float {
|
fun getRatio(): Float {
|
||||||
val begin = LocalDateTime.of(unit.date, unit.begin).atZone(ZoneId.of("Europe/Moscow")).toEpochSecond()
|
val begin = LocalDateTime.of(unit.date, unit.begin).atZone(ZoneId.of("Europe/Moscow")).toEpochSecond()
|
||||||
val end = LocalDateTime.of(unit.date, unit.end).atZone(ZoneId.of("Europe/Moscow")).toEpochSecond()
|
val end = LocalDateTime.of(unit.date, unit.end).atZone(ZoneId.of("Europe/Moscow")).toEpochSecond()
|
||||||
@@ -202,7 +209,9 @@ fun ScheduleItem(modifier: Modifier = Modifier, unit: ScheduleUnit, expanded: Bo
|
|||||||
AnimatedVisibility (expanded) {
|
AnimatedVisibility (expanded) {
|
||||||
GroupsNameText(
|
GroupsNameText(
|
||||||
unit.stream,
|
unit.stream,
|
||||||
highlightColor = MaterialTheme.colorScheme.inversePrimary
|
highlightColor = MaterialTheme.colorScheme.inversePrimary,
|
||||||
|
currentGroupName = currentGroup,
|
||||||
|
currentGroupColor = MaterialTheme.colorScheme.inverseSurface
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,9 +20,11 @@ import androidx.compose.ui.unit.dp
|
|||||||
fun GroupsNameText(
|
fun GroupsNameText(
|
||||||
text: String,
|
text: String,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
highlightColor: Color = MaterialTheme.colorScheme.secondaryContainer,
|
highlightColor: Color = MaterialTheme.colorScheme.tertiaryContainer,
|
||||||
highlightPadding: PaddingValues = PaddingValues(horizontal = 6.dp, vertical = 2.dp),
|
highlightPadding: PaddingValues = PaddingValues(horizontal = 6.dp, vertical = 2.dp),
|
||||||
highlightShape: Shape = MaterialTheme.shapes.small,
|
highlightShape: Shape = MaterialTheme.shapes.small,
|
||||||
|
currentGroupName: String? = null,
|
||||||
|
currentGroupColor: Color = MaterialTheme.colorScheme.secondaryContainer,
|
||||||
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
|
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
|
||||||
) {
|
) {
|
||||||
val suffix = if (text.endsWith("-В-OUP")) "-В-OUP" else null
|
val suffix = if (text.endsWith("-В-OUP")) "-В-OUP" else null
|
||||||
@@ -47,7 +49,10 @@ fun GroupsNameText(
|
|||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(end = 2.dp)
|
.padding(end = 2.dp)
|
||||||
.background(highlightColor, highlightShape)
|
.background(
|
||||||
|
if (currentGroupName == block) currentGroupColor
|
||||||
|
else highlightColor, highlightShape
|
||||||
|
)
|
||||||
.padding(highlightPadding)
|
.padding(highlightPadding)
|
||||||
) {
|
) {
|
||||||
Text(text = block)
|
Text(text = block)
|
||||||
|
|||||||
@@ -46,17 +46,17 @@ open class User(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun fromProfile(json: JSONObject): User {
|
fun fromProfile(json: JSONObject): User {
|
||||||
val user = json.getJSONObject("user")
|
val userField = json.getJSONObject("user")
|
||||||
return User(
|
val user = User(
|
||||||
user.getInt("id"),
|
userField.getInt("id"),
|
||||||
when (json.getString("type")) {
|
when (json.getString("type")) {
|
||||||
"student" -> Type.Student
|
"student" -> Type.Student
|
||||||
else -> Type.Employee
|
else -> Type.Employee
|
||||||
},
|
},
|
||||||
user.getString("email"),
|
userField.getString("email"),
|
||||||
user.getString("fullname"),
|
userField.getString("fullname"),
|
||||||
user.getString("fullname_en"),
|
userField.getString("fullname_en"),
|
||||||
user.getJSONObject("photo").let {
|
userField.getJSONObject("photo").let {
|
||||||
AvatarSet(
|
AvatarSet(
|
||||||
it.getString("orig"),
|
it.getString("orig"),
|
||||||
it.getString("thumbnail"),
|
it.getString("thumbnail"),
|
||||||
@@ -64,6 +64,11 @@ open class User(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (user.type == Type.Student)
|
||||||
|
user = Student()
|
||||||
|
|
||||||
|
return user
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPlaceholder() = User(
|
fun getPlaceholder() = User(
|
||||||
|
|||||||
Reference in New Issue
Block a user