wip: group highlight
This commit is contained in:
@@ -44,6 +44,7 @@ import androidx.compose.ui.zIndex
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import kotlinx.coroutines.delay
|
||||
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.GroupsNameText
|
||||
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.LecturerRank
|
||||
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 splitties.init.appCtx
|
||||
import splitties.resources.appStr
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalDateTime
|
||||
@@ -113,6 +117,9 @@ fun ScheduleDay(modifier: Modifier = Modifier, viewModel: ScheduleViewModel) {
|
||||
|
||||
@Composable
|
||||
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 {
|
||||
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()
|
||||
@@ -202,7 +209,9 @@ fun ScheduleItem(modifier: Modifier = Modifier, unit: ScheduleUnit, expanded: Bo
|
||||
AnimatedVisibility (expanded) {
|
||||
GroupsNameText(
|
||||
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(
|
||||
text: String,
|
||||
modifier: Modifier = Modifier,
|
||||
highlightColor: Color = MaterialTheme.colorScheme.secondaryContainer,
|
||||
highlightColor: Color = MaterialTheme.colorScheme.tertiaryContainer,
|
||||
highlightPadding: PaddingValues = PaddingValues(horizontal = 6.dp, vertical = 2.dp),
|
||||
highlightShape: Shape = MaterialTheme.shapes.small,
|
||||
currentGroupName: String? = null,
|
||||
currentGroupColor: Color = MaterialTheme.colorScheme.secondaryContainer,
|
||||
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
|
||||
) {
|
||||
val suffix = if (text.endsWith("-В-OUP")) "-В-OUP" else null
|
||||
@@ -47,7 +49,10 @@ fun GroupsNameText(
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(end = 2.dp)
|
||||
.background(highlightColor, highlightShape)
|
||||
.background(
|
||||
if (currentGroupName == block) currentGroupColor
|
||||
else highlightColor, highlightShape
|
||||
)
|
||||
.padding(highlightPadding)
|
||||
) {
|
||||
Text(text = block)
|
||||
|
||||
@@ -46,17 +46,17 @@ open class User(
|
||||
|
||||
companion object {
|
||||
fun fromProfile(json: JSONObject): User {
|
||||
val user = json.getJSONObject("user")
|
||||
return User(
|
||||
user.getInt("id"),
|
||||
val userField = json.getJSONObject("user")
|
||||
val user = User(
|
||||
userField.getInt("id"),
|
||||
when (json.getString("type")) {
|
||||
"student" -> Type.Student
|
||||
else -> Type.Employee
|
||||
},
|
||||
user.getString("email"),
|
||||
user.getString("fullname"),
|
||||
user.getString("fullname_en"),
|
||||
user.getJSONObject("photo").let {
|
||||
userField.getString("email"),
|
||||
userField.getString("fullname"),
|
||||
userField.getString("fullname_en"),
|
||||
userField.getJSONObject("photo").let {
|
||||
AvatarSet(
|
||||
it.getString("orig"),
|
||||
it.getString("thumbnail"),
|
||||
@@ -64,6 +64,11 @@ open class User(
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
if (user.type == Type.Student)
|
||||
user = Student()
|
||||
|
||||
return user
|
||||
}
|
||||
|
||||
fun getPlaceholder() = User(
|
||||
|
||||
Reference in New Issue
Block a user