Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e94a67a85
|
||
|
|
b7183805c2
|
||
|
|
ad64fdf4c5
|
||
|
|
d66ffaae7b
|
||
|
|
e9151f281b | ||
|
|
05ec933b15 | ||
|
|
bf530b6214
|
||
|
|
b7647d7267
|
||
|
|
5b76f55cb7
|
||
|
|
d5194c2e6f
|
||
|
|
008ec3030b
|
@@ -44,7 +44,6 @@ 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
|
||||||
@@ -54,10 +53,7 @@ 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
|
||||||
@@ -117,9 +113,6 @@ 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()
|
||||||
@@ -209,9 +202,7 @@ 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,11 +20,9 @@ import androidx.compose.ui.unit.dp
|
|||||||
fun GroupsNameText(
|
fun GroupsNameText(
|
||||||
text: String,
|
text: String,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
highlightColor: Color = MaterialTheme.colorScheme.tertiaryContainer,
|
highlightColor: Color = MaterialTheme.colorScheme.secondaryContainer,
|
||||||
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
|
||||||
@@ -49,10 +47,7 @@ fun GroupsNameText(
|
|||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(end = 2.dp)
|
.padding(end = 2.dp)
|
||||||
.background(
|
.background(highlightColor, highlightShape)
|
||||||
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 userField = json.getJSONObject("user")
|
val user = json.getJSONObject("user")
|
||||||
val user = User(
|
return User(
|
||||||
userField.getInt("id"),
|
user.getInt("id"),
|
||||||
when (json.getString("type")) {
|
when (json.getString("type")) {
|
||||||
"student" -> Type.Student
|
"student" -> Type.Student
|
||||||
else -> Type.Employee
|
else -> Type.Employee
|
||||||
},
|
},
|
||||||
userField.getString("email"),
|
user.getString("email"),
|
||||||
userField.getString("fullname"),
|
user.getString("fullname"),
|
||||||
userField.getString("fullname_en"),
|
user.getString("fullname_en"),
|
||||||
userField.getJSONObject("photo").let {
|
user.getJSONObject("photo").let {
|
||||||
AvatarSet(
|
AvatarSet(
|
||||||
it.getString("orig"),
|
it.getString("orig"),
|
||||||
it.getString("thumbnail"),
|
it.getString("thumbnail"),
|
||||||
@@ -64,11 +64,6 @@ 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