Commit Graph

544 Commits

Author SHA1 Message Date
4510d2bb28 fix(location): add orderBy to positions query to show latest position 2026-04-27 18:09:30 +02:00
f54bf24417 feat(videocall): handle device response via WebSocket and show ringing state 2026-04-27 14:12:39 +02:00
b5d12f31a1 chore(ui): replace loading gif with birds animation and add loading text 2026-04-27 01:14:59 +02:00
74f470219a feat(friends): add friends list screen with delete support 2026-04-27 01:14:48 +02:00
24ddbf34e4 fix(videocall): fix SDK re-entry lifecycle and add logout on session clear
- Skip login when SDK client is already logged in (early return with isSdkReady)
- Set isSdkReady immediately when login() returns true instead of waiting for async callback
- Add ref.mounted check after userInfo future to prevent state updates on disposed provider
- Logout VideocallClient on session clear to prevent stale SDK sessions
- Use getActiveCallItem() in onCallItemUpdate for fresh call state (matches JC demo app)
2026-04-27 00:22:48 +02:00
69297f826e fix: regenerate freezed files with system and imei fields 2026-04-26 23:28:46 +02:00
390f2501b4 merge: sync feature/videocall-sdk-integration with fusion-app 2026-04-26 22:03:00 +02:00
555a668481 feat(videocall): complete signaling integration, group call support, and UI polish
- Wire VIDEO_CALL_REQUEST/CANCEL/REFUSE/ROOM_COUNT commands via CommandsRepository
- Add VideocallChatType enum (single/multi) with chatType stored in state
- Implement auto-login to Juphoon SDK using sanitized email + user UUID
- Add runtime camera/microphone permissions before call start
- Add RetryInterceptor for transient TLS/socket errors in Dio
- Migrate VideocallItem to Freezed with isTalking extension
- Implement startGroupCall/leaveGroupCall using ChannelService with participant grid
- Add PopScope to intercept back navigation during active calls
- Redesign idle screen with device option cards and group call button
- Redesign active call UI with video overlay, PiP local view, and new controls layout
- Clean up SDK wrapper: remove unused streams, merge destroy+dispose into shutdown
- Add i18n keys for videocall UI across 6 locales
2026-04-26 21:53:32 +02:00
5aa0c0acc7 fix(videocall): apply PR review fixes and add i18n translations
- Replace setState with FutureBuilder in VideoViewWidget
- Remove comments from datasource impl
- Replace GetIt.I with ref.read(provider) in controllers
- Fix state comparison using isTalking getter
- Add hangUp/stopAudio/stopCamera cleanup on dispose
- Remove duplicate SafeArea from IncomingCallOverlay
- Add missedCall error event to enum
- Replace Colors.white70 with theme colorScheme
- Move VIDEOCALL_INTEGRATION.md to apps/mobile_app/docs/
- Gitignore config JSON files with app keys
- Add 28 i18n keys in 6 locales for all videocall strings
- Map error events to specific i18n messages
2026-04-26 21:53:32 +02:00
57f0f64d08 refactor(videocall): migrate to @riverpod controller pattern and add device config
- Rename ViewModel → Controller, ViewState → State with @riverpod codegen
- Move state/ → providers/ folder for consistency
- Add post-init device configuration (camera, speaker, maxCallNum, mediaConfig)
- Use MediaConfig.generateByMode based on device capabilities.system (rtos/android)
- Add CallParam.ticket for smartwatch wake-up protocol
- Start audio/camera before call, stop on hangup
- Granular video management based on uploadVideoStreamSelf/Other flags
- Build watch userId from device.imei (w_ prefix)
- Add imei field to DeviceEntity
- Add system field to DeviceCapabilitiesEntity with isRtos/isAndroid helpers
2026-04-26 21:53:32 +02:00
9f23ecb42e feat(videocall): integrate videocall feature with architecture refactor
Merges videocall stash, resolves conflicts with installed_apps routes,
and refactors UI to match current legacy patterns:
- Replace themePortProvider with context.sfColors and Theme.of(context)
- Replace showTopSnackbar with feedback dialogs
- Replace hardcoded colors with theme-aware colorScheme
- Wrap test login button in kDebugMode
- Rename error enum values to be more descriptive
2026-04-26 21:53:32 +02:00
8ff94a1e92 feat(legacy): add connection status indicator to device banners 2026-04-26 21:53:05 +02:00
a87c7e8732 refactor(heartbeat): refresh devices every 2min instead of pinging /auth/me 2026-04-26 21:53:05 +02:00
4be46f71c7 fix(control-panel): use iso_sf.png in map preview banner 2026-04-26 21:53:05 +02:00
105211e334 fix(control-panel): prevent device name from overlapping header logo 2026-04-26 21:53:05 +02:00
6d2d16d8cb fix 2026-04-26 21:53:05 +02:00
424f2af0cc fix(tests): update feedback_dialogs test for queue implementation 2026-04-26 21:53:05 +02:00
41f1797dcf test(device-entity): add queueCommands and isDisconnected tests (11 cases) 2026-04-26 21:53:05 +02:00
cf6a9dd6df test(do-not-disturb): add enabled field and toggle tests (4 new cases) 2026-04-26 21:53:04 +02:00
0d677afd32 test(app-usage-schedules): add controller and editor unit tests (6 cases) 2026-04-26 21:53:04 +02:00
323d28bb17 test(installed-apps): add InstalledAppsController unit tests (3 cases) 2026-04-26 21:53:04 +02:00
92f6035b84 chore(i18n): add GPS functions, history and delete confirmation keys 2026-04-26 21:53:04 +02:00
c5c85c4fda fix(settings): capitalize language names in selector 2026-04-26 21:53:04 +02:00
4cfee8ced3 fix(legacy): replace hardcoded colors for dark mode contrast 2026-04-26 21:53:04 +02:00
376e6bc13a fix(legacy): add dark mode support for pickers and dialogs 2026-04-26 21:53:04 +02:00
4422f93903 fix(feedback-dialogs): add queue system to prevent dialog stacking 2026-04-26 21:53:03 +02:00
a9a34fbbc5 test(location): add LocationMapController unit tests (22 cases) 2026-04-26 21:53:03 +02:00
04b8d1609c feat(location): add history playback, GPS functions dialog and UX improvements 2026-04-26 21:53:03 +02:00
e901b22981 feat(location): redesign device banner to match reference UI 2026-04-26 21:53:03 +02:00
2d87cd5aee fix(location): add refresh success feedback and fix queueCommands null crash 2026-04-26 21:53:03 +02:00
bef87262b1 chore(i18n): improve positionUpdated message text 2026-04-26 21:53:03 +02:00
3f28aa95bc chore(i18n): add positionUpdated key in 6 locales 2026-04-26 21:53:03 +02:00
dd8faa9f35 feat(device): add queueCommands to DeviceEntity and command guard 2026-04-26 21:53:03 +02:00
bc946cfc39 refactor(legacy): replace showTopSnackbar with feedback dialogs 2026-04-26 21:53:03 +02:00
c4bdf707e1 chore: regenerate health controller codegen 2026-04-26 21:53:03 +02:00
17d931ffda chore(i18n): add localization keys for new features and fixes 2026-04-26 21:53:03 +02:00
a21a8af9b1 fix(tracking): shorten event names to fit Firebase 40-char limit 2026-04-26 21:53:03 +02:00
05c96bc10e fix(call-history): sort calls by most recent first 2026-04-26 21:53:03 +02:00
bbdaa25e12 feat(navigation): add routes for installed apps and app usage schedules 2026-04-26 21:53:03 +02:00
440adcdf8d feat(device-management): add app usage schedules feature 2026-04-26 21:53:02 +02:00
6193c97802 feat(device-management): add installed apps enable/disable feature 2026-04-26 21:53:02 +02:00
a985ced85c feat(do-not-disturb): add enabled toggle, redesign UI and duplicate validation 2026-04-26 21:53:02 +02:00
51901cc639 fix(contacts): validate duplicate phone numbers before adding 2026-04-26 21:53:02 +02:00
c7fefe2a8b feat(remote-camera): add delete, share, download and redesign photo viewer 2026-04-26 21:53:02 +02:00
cb897a3243 feat(location): add manual frequency option and optimize position loading 2026-04-26 21:53:02 +02:00
3325df94f7 refactor(legacy-auth): simplify device setup to single carrier name field 2026-04-26 21:53:02 +02:00
0aefed0163 feat(legacy-auth): improve 2FA sheet UX and signup layout 2026-04-26 21:53:02 +02:00
516197b819 fix(splash): distinguish network errors from auth errors in session check 2026-04-26 21:53:02 +02:00
d9465996d7 feat(legacy-ui): add animated transitions for dialogs and navigation 2026-04-26 21:53:02 +02:00
309c7b1d87 fix payments 2026-04-26 21:53:01 +02:00