Commit Graph

553 Commits

Author SHA1 Message Date
bd7c47351f chore: ignore flutter auto-generated files
These files are regenerated by flutter pub get and contain machine-
specific paths (FLUTTER_ROOT, FLUTTER_APPLICATION_PATH). They should
not be tracked — the file header itself states "do not check into
version control".

- Update .gitignore: prepend **/ to .flutter-plugins-dependencies so
  it matches in sub-packages, add Generated.xcconfig and
  flutter_export_environment.sh patterns.
- git rm --cached the 4 files that were already tracked (keeps them
  on disk for local builds but removes from repo).
2026-04-26 21:52:50 +02:00
6cf994cd5d refactor(legacy): extract shared device state into legacy_device_state package
- New package legacy_device_state hosts shared device/position state
  consumed by both control_panel and location screens. ControlPanel*
  classes renamed to LegacyDevice* in 8 moved files.
- Move PositionEntity + AddressEntity + NetworkEntity +
  LatestPositionsResponseModel + BatteryUtils + DateFormatUtils from
  control_panel to legacy_shared (shared domain entities).
- Remove anti-pattern re-export of sf_infrastructure/dio_error_mapper
  from legacy_shared barrel. Update consumers to import
  sf_infrastructure directly.
- Clean 14 unused legacy_shared imports across view models in
  account, device_management, legacy_auth and settings modules.

Eliminates cross-module dependency location -> control_panel.
0 errors, 0 warnings in flutter analyze across 11 packages/modules.
2026-04-26 21:52:50 +02:00
fa3d7aa1fd fix(location): keep map visible on transient network errors
Show snackbar instead of replacing the entire map with an error state
when a reload fails. Only show RefreshableErrorState on first load failure.
2026-04-26 21:52:50 +02:00
5b4d31e2f1 fix(location): guard frequency timer minimum and filter zero options
Prevent position polling timer from firing with frequency < 60s (protects
against 0s values that saturate the API). Also filter out 0 from location
capability options in the frequency selector.
2026-04-26 21:52:50 +02:00
2e6769f18f feat(legacy): add connection status indicator to device banners 2026-04-26 09:05:09 +02:00
7d20b56583 refactor(heartbeat): refresh devices every 2min instead of pinging /auth/me 2026-04-26 09:01:26 +02:00
40d55b0b43 fix(control-panel): use iso_sf.png in map preview banner 2026-04-26 08:53:49 +02:00
5aa45b3d01 fix(control-panel): prevent device name from overlapping header logo 2026-04-26 08:52:13 +02:00
ecfb4cc7d2 fix 2026-04-26 08:39:26 +02:00
6b1e571341 fix(tests): update feedback_dialogs test for queue implementation 2026-04-26 08:38:18 +02:00
f6ff53bcd7 test(device-entity): add queueCommands and isDisconnected tests (11 cases) 2026-04-26 08:29:17 +02:00
d84edc11a9 test(do-not-disturb): add enabled field and toggle tests (4 new cases) 2026-04-26 08:29:17 +02:00
45b2842e5a test(app-usage-schedules): add controller and editor unit tests (6 cases) 2026-04-26 08:29:17 +02:00
a4f57f780b test(installed-apps): add InstalledAppsController unit tests (3 cases) 2026-04-26 08:29:16 +02:00
e130f4a037 chore(i18n): add GPS functions, history and delete confirmation keys 2026-04-26 08:25:55 +02:00
5c30dd9224 fix(settings): capitalize language names in selector 2026-04-26 08:25:47 +02:00
836aea707a fix(legacy): replace hardcoded colors for dark mode contrast 2026-04-26 08:25:41 +02:00
e0e7815ad8 fix(legacy): add dark mode support for pickers and dialogs 2026-04-26 08:25:33 +02:00
e0dde50eba fix(feedback-dialogs): add queue system to prevent dialog stacking 2026-04-26 08:25:24 +02:00
54ddf68c22 test(location): add LocationMapController unit tests (22 cases) 2026-04-26 08:25:18 +02:00
b5bba037f1 feat(location): add history playback, GPS functions dialog and UX improvements 2026-04-26 08:25:05 +02:00
6ed36dba75 feat(location): redesign device banner to match reference UI 2026-04-26 05:52:27 +02:00
4deb263c7e fix(location): add refresh success feedback and fix queueCommands null crash 2026-04-26 05:41:21 +02:00
82786b3577 chore(i18n): improve positionUpdated message text 2026-04-26 05:29:38 +02:00
ff48b873e9 chore(i18n): add positionUpdated key in 6 locales 2026-04-26 05:27:29 +02:00
35948998f6 feat(device): add queueCommands to DeviceEntity and command guard 2026-04-26 05:27:23 +02:00
c034d781af refactor(legacy): replace showTopSnackbar with feedback dialogs 2026-04-26 05:27:17 +02:00
5bebe110fc chore: regenerate health controller codegen 2026-04-26 05:13:42 +02:00
107a4ec593 chore(i18n): add localization keys for new features and fixes 2026-04-26 05:13:19 +02:00
03effaed13 fix(tracking): shorten event names to fit Firebase 40-char limit 2026-04-26 05:13:10 +02:00
32eb4e0d52 fix(call-history): sort calls by most recent first 2026-04-26 05:13:05 +02:00
6f5855e2fd feat(navigation): add routes for installed apps and app usage schedules 2026-04-26 05:13:01 +02:00
412cb96888 feat(device-management): add app usage schedules feature 2026-04-26 05:12:52 +02:00
853b6f20a3 feat(device-management): add installed apps enable/disable feature 2026-04-26 05:12:42 +02:00
01cb4c9427 feat(do-not-disturb): add enabled toggle, redesign UI and duplicate validation 2026-04-26 05:12:34 +02:00
82123a6d5f fix(contacts): validate duplicate phone numbers before adding 2026-04-26 05:12:23 +02:00
3956a87862 feat(remote-camera): add delete, share, download and redesign photo viewer 2026-04-26 05:12:18 +02:00
7251349e1d feat(location): add manual frequency option and optimize position loading 2026-04-26 05:12:10 +02:00
cf2dbbeb63 refactor(legacy-auth): simplify device setup to single carrier name field 2026-04-26 05:12:05 +02:00
e9cceae485 feat(legacy-auth): improve 2FA sheet UX and signup layout 2026-04-26 05:11:55 +02:00
6de01b62ae fix(splash): distinguish network errors from auth errors in session check 2026-04-26 05:11:48 +02:00
7c7ffb8f3d feat(legacy-ui): add animated transitions for dialogs and navigation 2026-04-26 05:11:42 +02:00
80f95bae5a fix payments 2026-04-24 15:06:30 +02:00
63547b0f37 removede shadow and blurs 2026-04-23 15:02:25 +02:00
9ab78ac965 feat(legacy): replace CircularProgressIndicator with animated GIF loading
Add LegacyLoadingIndicator widget using a transparent GIF animation
for all full-page loading states across legacy modules. Also fix
HealthController crash by deferring provider mutation during build.
2026-04-23 14:54:38 +02:00
375e613caf test(location): add LocationController unit tests (15 cases, 25% coverage) 2026-04-23 05:09:37 +02:00
9b253dd545 todo 2026-04-23 03:49:36 +02:00
3f3fb3d5d0 refactor(settings): rename alerts_* data layer to notifications_* 2026-04-23 03:38:02 +02:00
e48dec979c refactor(legacy): move notifications feature from control_panel to settings 2026-04-23 03:33:44 +02:00
1c30318e06 chore(legacy_dashboard_shell): remove dead control_panel dependency 2026-04-23 03:16:03 +02:00