Commit Graph

460 Commits

Author SHA1 Message Date
32d8481217 firka_wear: put the "..." in the correct place 2026-03-02 19:18:22 +01:00
d0c3938510 firka_wear: extract home body to part, add vertical scrollable PageView with placeholders 2026-03-02 19:17:40 +01:00
636c2ea68d firka_wear: fix overflow if the lesson's room name or name is long 2026-03-02 18:22:55 +01:00
b986d8b660 firka_wear: centralize app state, add logging, remove unused routes, add Bloc for sync state 2026-03-02 15:48:11 +01:00
613db488b1 firka_wear: pass model number to phone when pairing 2026-03-02 15:07:51 +01:00
5d5c3c4c6f fix wearos pairing and syncing 2026-03-02 14:54:00 +01:00
9f36569d2a firka_wear: refactor lib folder structure to match firka 2026-03-01 15:13:51 +01:00
9fc73e3c5c firka_wear: use kreta_api for API models 2026-03-01 14:57:24 +01:00
bd53ba6c9b firka: use kreta_api for API models and types 2026-03-01 14:56:09 +01:00
8d95c71fae chore: add kreta_api shared package 2026-03-01 14:52:54 +01:00
befaa45cdf firka(android): use app icon for Wear sync foreground service notification 2026-03-01 14:39:27 +01:00
5570f73cb4 firka: extract startWearSyncServiceWithFreshCache for Wear OS 2026-03-01 14:31:23 +01:00
59b470a64c firka_wear: local sync store, 1h rule, remove KretaClient; data from phone only 2026-03-01 14:31:23 +01:00
4811519ced firka_wear: sync API models from firka (Lesson, Grade, Subject, generic) 2026-03-01 14:31:23 +01:00
3580dc2ef8 firka(android): Wear sync foreground service, getLocalizedString, no Android strings 2026-03-01 14:31:23 +01:00
eb1312398d firka: add Wear sync cache, payload, helper and background entrypoint 2026-03-01 14:31:23 +01:00
a70457528b firka(android): add Wear OS support toggle in settings 2026-03-01 14:31:23 +01:00
6bbdbadac4 firka: update l10n 2026-03-01 14:31:22 +01:00
911a1970e4 firka_wear: make it buildable again 2026-03-01 10:59:05 +01:00
65ab5caa69 firka: update l10n 2026-03-01 10:18:09 +01:00
a9624df915 firka: unify grade widget 2026-02-28 23:32:55 +01:00
52f6ebcfd3 firka: add grade summary bar with dropdown under subjects chart 2026-02-28 23:12:24 +01:00
635fdd5497 firka(android): lesson/room badge sizing, centered text, uniform room width 2026-02-28 22:31:46 +01:00
a11f118861 firka(android): timetable widget responsive layout, resize handling, centered lessons 2026-02-28 22:05:30 +01:00
5c205a9844 firka(android): widget refresh via broadcast + updateAll, Glance IO off main thread 2026-02-28 17:55:14 +01:00
f620bfe76c firka(android): fix widget refresh via GlanceAppWidget.updateAll 2026-02-28 16:04:29 +01:00
b99051dbfc firka: add Generate widget state for date to developer options 2026-02-28 15:51:05 +01:00
c58f34f499 firka: rewrite Android widget and fix refresh 2026-02-28 15:45:04 +01:00
1e7dceb995 firka: fix logout button to refresh app like login 2026-02-28 13:42:34 +01:00
022915378e firka: pop login sheet and navigate to home after OAuth 2026-02-28 13:26:16 +01:00
589e722310 firka: fix login webview not receiving touches 2026-02-28 12:59:51 +01:00
12cce27e9d firka: highlight current value on grade chart left axis 2026-02-28 12:06:18 +01:00
826312b503 firka: give chart higher gesture priority over page swipe 2026-02-28 11:18:24 +01:00
e071fc15d1 firka: stream home items in progressively, keep spinner until all fetch 2026-02-28 11:12:25 +01:00
94b819ffbd firka: add debug button to clear all cache 2026-02-28 11:04:06 +01:00
299a769f74 firka: migrate state management to Bloc
- Add flutter_bloc dependency
- Create ThemeCubit, SettingsCubit, ProfilePictureCubit, ReauthCubit, HomeRefreshCubit
- Replace UpdateNotifier/ValueNotifier with Bloc across app
- Remove update_notifier.dart and FirkaState globalUpdate listener
- Provide cubits via MultiBlocProvider at app root
2026-02-28 10:46:11 +01:00
4abf995fde firka: add haptic feedback to bottom nav icons 2026-02-28 10:04:04 +01:00
e261f73c30 switch to go_router 2026-02-28 09:03:01 +01:00
fc9907f33d firka: refactor file structure 2026-02-28 07:47:33 +01:00
2d2c2fbef9 chore: dart format + remove unused imports 2026-02-27 23:23:56 +01:00
Horváth Gergely
d5c3d02dfa Remove onAppOpened and related LiveActivity state
Remove the _lastActivityRecreation field and the onAppOpened(...) method from LiveActivityService, which previously handled ending/creating activities, refreshing push tokens, fetching the week's timetable and scheduling background fetch. Update home_screen to call LiveActivityService.checkAndUpdateTimetable(...) instead of onAppOpened, and tweak related log messages to clarify the behavior. This simplifies LiveActivity lifecycle on app resume and stops forced activity recreation/token refresh performed by the removed method.
2026-02-27 23:23:56 +01:00
Horváth Gergely
40a1e8f459 Improve Watch sync, token, and live activity handling
Multiple fixes and improvements for watch <> phone sync, token recovery, and live activity behavior:

- WatchSessionManager: add mergeApplicationContext to avoid clobbering app context, add thread-safe pending auth queue and flush, add sendMessageToWatch API, ensure message handling runs on main thread, add reply-timeout logic for language requests, support fire-and-forget messages, and improve enqueue/flush logic.
- WatchConnectivityManager & SettingsView: publish shared session state on force-logout/logout and improve account-switch/token handling; clear DataStore error and reset recovery state after token updates.
- DataStore & WatchL10n: add recovery-in-progress guard to avoid duplicate recovery runs, reset language version tracking on account switch, make WatchL10n.setLanguage main-thread safe.
- TokenManager & SharedKeychainManager: remove old keychain observer plumbing and instead publish shared session state when active token changes or is deleted.
- UI tweaks: reduce icon/text sizes and spacing in pairing view; only show sync button when paired; Settings logout now also publishes shared state.
- Watch sync wiring in Flutter: replace direct watch_connectivity usage with a MethodChannel-backed WatchSyncHelper.sendMessageToWatch and onWatchMessage callback; main and pairing UI updated accordingly.
- Kreta client: replace simple boolean mutex with a Completer-based mutex and timeout handling to avoid busy-waiting.
- LiveActivityService: throttle/avoid frequent activity recreation (cache last recreation time), skip placeholder creation when called from background, and minor cache-clearing adjustments.
- HomeScreen: add WidgetsBindingObserver to manage lifecycle, prevent prefetch while backgrounded, debounce prefetch, ensure LiveActivity registration runs once and refresh on resume after first prefetch.

These changes increase robustness of token sync and account switching, reduce race conditions and duplicate work, and avoid conflicts between WCSession and Flutter plugin delegates.
2026-02-27 23:23:56 +01:00
0c4bc4cd40 firka(android): fix splash screen 2026-02-27 23:23:56 +01:00
28fb054571 fix warnings, reformat files 2026-02-27 23:23:56 +01:00
b0c8f1f4b3 firka(android): optimize build time 2026-02-27 23:23:56 +01:00
2ea0549258 add codegen script 2026-02-27 23:23:56 +01:00
c0ea4fde7a update lib/l10n 2026-02-27 23:23:56 +01:00
d56422ba0d update pubspec and rebuild isar files 2026-02-27 23:23:56 +01:00
3fa00fa6b6 grafikon javítgatás? 2026-02-27 23:23:56 +01:00
ef14b9dc0e HW fix 2026-02-27 23:23:56 +01:00