Commit Graph
76 Commits
Author SHA1 Message Date
Agzamus 57e5bd9af8 feat: department display 2026-10-08 02:10:26 +03:00
Agzamus c7298c0c84 fix: wrong parsed teacher schedule 2026-10-08 01:42:26 +03:00
Agzamus ae0fea1ea6 fix: ssl error & offline teacher schedule 2026-10-07 21:55:53 +03:00
Agzamus 4f191e9f2f ui: group display istead of teacher in teacher schedule 2026-09-20 15:30:10 +03:00
Agzamus e16454a196 fix(teacher): group day slots by real lesson start time
slotIndex is a per-department index of non-empty intervals, not a time.
Merging all departments of a period by slotIndex and deriving the slot
time from the first inserted lesson produced shifted times (e.g. Meltsov
10:00 shown at 11:45) depending on sync order. Group by lesson start
minute instead so each department's real times are kept.

Add debug logging for teacher schedule sync/build and debounce teacher
search in picker.
2026-09-20 15:13:27 +03:00
Agzamus ef81659521 chore(http): log failed requests only
Per-request GET success logs (39 long URLs per teacher sync) flood the
2MB logcat buffer together with system ZeroHung spam, drowning the real
kill reason (am_proc_died / lowmemorykiller). Log only non-2xx responses.
2026-09-20 03:08:33 +03:00
Agzamus 6189540acf perf(teacher): lower sync memory footprint
- Reduce sync parallelism 5 -> 2 to cap peak heap while bulk-fetching
  all departments for a period
- Replace per-write rows (insert schedule/days/lessons separately) with a
  single @Transaction replaceSchedule() so Room invalidates observers once
  per department instead of ~4x each, cutting main-thread recompositions
  and intermediate allocations during the 38-department sync
2026-09-20 02:43:54 +03:00
Agzamus 1d55e84e96 fix(teacher): register migration, containment period queries, concurrency guards
- Register AppDatabase.MIGRATION_3_4 so v3 databases upgrade without data loss
- Query teacher schedule periods by containment (weekStart<=x AND weekEnd>=x)
  instead of exact weekStart, matching 2-week catalog windows
- Clip buildTeacherSchedule days to the requested week range
- Add weeksFor() to enumerate weeks of a catalog window for the UI selector
- Serialize syncPeriod body with a Mutex to protect the unique index
- Rethrow CancellationException before generic catch; version loadRevision
  checks so stale observers/loads are cancelled
- Sync job tracking in PickerViewModel; keep loading true while empty
- Drop dead selectTeacher helper
2026-09-19 23:32:09 +03:00
Agzamus 39e4f5a04f fix(remote): replace unsupported (?U)\b regex for Android runtime 2026-09-19 20:44:22 +03:00
Agzamus e1b2f05548 feat(ui): integrate teacher mode into AppRoot and Home 2026-09-19 20:28:13 +03:00
Agzamus f5696fbbd6 feat(ui): add combined group/teacher picker with segments 2026-09-19 20:16:41 +03:00
Agzamus b9b3a18f0c feat(di): wire teacher repositories into AppContainer 2026-09-19 19:37:56 +03:00
Agzamus 2dd8b8c469 feat(ui): add teacher schedule screen and view model 2026-09-19 19:12:19 +03:00
Agzamus 6c06892d9a feat(data): add TeacherScheduleRepositoryImpl with bulk period sync 2026-09-19 19:12:19 +03:00
Agzamus 9dce30931b feat(data): add TeacherRepositoryImpl 2026-09-19 15:59:25 +03:00
Agzamus 32c2b60afa feat(remote): add jsoup TeacherScheduleParser 2026-09-19 14:47:55 +03:00
Agzamus 458e4c4e69 feat(remote): add streaming TeachersParser 2026-09-19 14:47:46 +03:00
Agzamus 1a4bff73d0 feat(db): add teacher schedule tables and Room v4 migration 2026-09-19 14:47:35 +03:00
Agzamus a5ea516713 refactor(ui): extract shared schedule composables 2026-09-19 01:47:29 +03:00
Agzamus 17d437aace feat(domain): add teacher models and repository interfaces 2026-09-19 01:43:17 +03:00
Agzamus a55fb0461c ci: debug build name 2026-09-18 02:30:56 +03:00
Agzamus e789729c76 ui: removed version info from buildings screen 2026-09-18 02:16:46 +03:00
Agzamus 7e23895f0d fix: version check 2026-09-18 02:16:29 +03:00
Agzamus 708ad11dca ci: release same tag & version 2026-09-18 01:28:48 +03:00
Agzamus b1418f79da fix: immediately scrolling 2026-09-18 01:25:00 +03:00
Agzamus d17c70e871 feat: schedule swiping 2026-09-18 01:20:47 +03:00
Agzamus 6cd211f744 fix: no more group prefix 2026-09-11 02:34:30 +03:00
Agzamus 019cf5da21 feat: also refresh groups list in schedule 2026-09-11 02:05:43 +03:00
Agzamus a24748ec04 ci: "debug" if no APP_VERSION 2026-09-11 02:04:36 +03:00
Agzamus caf3debb3f feat: 2-week select 2026-09-11 01:55:52 +03:00
Agzamus 1c5140d751 fix: streaming parsing to prevent crashes on low-end phones 2026-09-11 01:34:05 +03:00
Agzamus 65bb6cc7db fix: loading instead error screen 2026-09-11 00:18:23 +03:00
Agzamus 99e05e8232 ui: surfaceContainer background 2026-09-10 01:36:24 +03:00
Agzamus c4ecc43597 ui: canged colors 2026-09-10 01:01:57 +03:00
Agzamus 9a96bd3dac ci: installing from /github.com/adoptium 2026-09-10 00:47:38 +03:00
Agzamus c4345f9dbe ci: bullseye repo archive mirror 2026-09-10 00:44:18 +03:00
Agzamus 4797811097 ci: ignore jdk Check-Valid-Until 2026-09-10 00:31:17 +03:00
Agzamus 2dfef426a7 ui: schedule striped copyable rows 2026-09-10 00:23:28 +03:00
Agzamus 97c19647cc ui: LessonSlot separator 2026-09-09 22:25:55 +03:00
Agzamus dea27bc8f1 ci: fixed workflow old apt jdk17 repo 2026-09-07 00:35:50 +03:00
Agzamus bafebfd253 fix: no auto download if updated disabled 2026-09-07 00:31:34 +03:00
Agzamus f19d65abb5 feat: update request when need 2026-09-06 17:23:55 +03:00
Agzamus 889c57bbba feat: autoupdater 2026-09-06 12:38:00 +03:00
Agzamus ec6a7174e8 feat: icon & name 2026-09-06 02:47:40 +03:00
Agzamus 014896aaea ui: no more empty lines in schedule 2026-09-05 00:21:39 +03:00
Agzamus 9f6cf3ef30 fix: #1 - text blocks by words 2026-09-05 00:13:38 +03:00
Agzamus d1923d3296 ci: auto version_name 2026-09-04 04:43:43 +03:00
Agzamus 686976347e feat: better parsing & display 2026-09-04 04:40:29 +03:00
Agzamus 699bcd81f5 ui: header group display 2026-09-04 02:05:52 +03:00
Agzamus 050f835a33 ui: reduced maket padding 2026-09-04 01:22:35 +03:00
Agzamus 5fee57d93a ui: better week select l&f 2026-09-04 01:07:09 +03:00
Agzamus 36711d1bf3 ui: smaller week select 2026-09-03 23:34:45 +03:00
Agzamus c2a9cfb7e7 refactor: weeks select -> combobox 2026-09-03 23:16:57 +03:00
Agzamus 467c1a735f fix: Key "XXX" was already used. 2026-09-03 23:01:05 +03:00
Agzamus 28965e6aed Merge branch 'database-refactor' 2026-09-03 22:54:49 +03:00
Agzamus 181f8b2f2a Merge branch 'database-refactor' 2026-09-03 22:53:26 +03:00
Agzamus 1fc43bb8fc refactor: clenup 2026-09-03 20:54:44 +03:00
Agzamus 32f93197ab feat: week select 2026-09-03 20:53:17 +03:00
Agzamus 32d0cec8ce feat: removed auto sync 2026-09-03 20:46:11 +03:00
Agzamus 72e63addb2 fix: FOREIGN KEY constraint failed 2026-09-03 20:41:03 +03:00
Agzamus 84ae97b906 feat: group display on schedule screen 2026-09-03 19:59:21 +03:00
Agzamus 2069ec811a ci: removed "Upload APK as artifact" action step 2026-09-03 19:47:06 +03:00
Agzamus ebe1c3c4a3 refactor: database multi-period schedule storage 2026-09-03 19:41:26 +03:00
Agzamus 47ca253d6a ci: use gitea-release-action 2026-09-03 01:52:41 +03:00
Agzamus 766b37321d ci: install correct Android SDK 36.1 in CI 2026-09-03 01:21:46 +03:00
Agzamus 83a3ee68a8 ci: added JAVA_HOME 2026-09-03 01:12:34 +03:00
Agzamus 0c8eb783a5 ci: added upload step 2026-09-03 00:57:26 +03:00
Agzamus 91ea47f63a ci: base64 key generating 2026-09-03 00:39:40 +03:00
Agzamus 8f4ab2783e ci: autorelease 2026-09-03 00:06:07 +03:00
Agzamus 72838d3448 chore: add .idea to gitignore 2026-09-02 23:52:55 +03:00
Agzamus fdb8d712e8 init 2026-09-02 23:47:26 +03:00
Agzamus a8830bcd91 init 2026-09-02 23:47:00 +03:00
Agzamus b4d0b0c8e9 chore: fixed build & release ignoring 2026-09-02 23:26:02 +03:00
Agzamus 173267f856 chore: gitignored /release 2026-09-02 23:24:15 +03:00
Agzamus 2aa41134e0 chore: added /build to gitignore 2026-09-02 23:21:28 +03:00
Agzamus 22a939f74d cl: added gitignore 2026-09-02 23:14:50 +03:00