feat: Add skeleton loading UI components for various screens

- Implemented `Skeleton.kt` for loading placeholders in the app, including lesson cards, schedule, overview, and subjects.
- Introduced `Undo.kt` to manage undo actions with a snackbar interface.
- Created `WeekWidget.kt` for a widget displaying the week's schedule, including dynamic updates based on the current timetable.
- Added various splash animations in the `animator` directory for a smooth launch experience.
- Designed drawable resources for the widget and splash screen, including icons for city and room moves.
- Defined XML resources for widget configuration and photo paths.
This commit is contained in:
2026-10-23 21:56:07 +03:00
parent a3df53713f
commit b9c1f63301
59 changed files with 194390 additions and 178421 deletions

View File

@@ -15,7 +15,11 @@ export const lessonLine = (l) =>
// The town only when the cell names one or the day's note puts the lesson there.
[l.room, l.place].filter(Boolean).join(", "),
l.teacher,
[...l.groups, ...l.subgroups.map((s) => `${s.group}/${s.label.replace("Подгруппа ", "п")}`)].join(","),
[...l.groups, ...l.subgroups.map((s) => `${s.group}/${s.label.replace("Подгруппа ", "п")}`)].join(",") +
// "Немецкий язык" or "Французский язык": a part of the group takes one of them.
(l.option ? " · на выбор" : "") +
// Russian for foreign students while the others have physical education.
(l.audience === "foreign" ? " · иностранцам" : l.audience === "local" ? " · кроме иностранцев" : ""),
]
.map((part) => String(part ?? "").replace(/\s+/g, " ").trim())
.join(" | ");