14 Commits

Author SHA1 Message Date
robonen 802d32e9a0 feat: implement Live Activity registration service and enhance notifications handling 2026-05-24 23:53:40 +07:00
robonen d991d06f17 refactor: add color assets and update UI components 2026-03-16 16:36:21 +07:00
robonen 37b87ececd refactor: notifications and settings view models; enhance login and registration UI 2026-03-15 21:40:20 +07:00
robonen 0947c048c1 feat: enhance notification handling with improved data structure and API integration 2026-03-15 06:13:22 +07:00
robonen 7675f66488 refactor: update Notification and Live Activity Views for Improved UI Consistency 2026-03-14 21:03:16 +07:00
robonen 8a15572fb9 featL add localization for various UI strings and error messages 2026-03-14 17:46:00 +07:00
robonen 758f5ec05f feat: enhance models and services with Sendable conformance, add preview data for debugging 2026-03-14 07:18:35 +07:00
robonen a4b475b13f Merge pull request #1 from robonen/copilot/add-push-notifications-support
Add complete Mayday iOS app: auth, push notifications, and Live Activity
2026-03-14 06:33:40 +07:00
copilot-swe-agent[bot] 597787a6c9 fix: address all PR review comments
- HTTPClient: replace isRefreshing bool with shared Task to safely
  coalesce concurrent 401 refresh attempts; surface JSON serialization
  error instead of silently dropping request body
- AuthService.logout: always clear Keychain tokens via defer, even when
  refresh token is absent, preventing stale access token
- NotificationsAPIService: remove updateAppBadge (UIKit call moved to
  @MainActor NotificationsViewModel); drop unused UIKit import
- NotificationsViewModel: guard startPolling() against duplicate tasks;
  update badge directly on @MainActor instead of hopping to actor
- VerifyEmailView: replace Timer (never invalidated) with async Task
  cancelled in .onDisappear
- NotificationsView: use Text(date, style: .relative) — auto-updates
  without custom formatter; remove duplicate Date extension
- SettingsView: handle logoutAll errors explicitly with alert instead of
  silently proceeding with local logout
- MaydayLiveActivity/Info.plist: add NSExtensionPrincipalClass so the
  widget extension is discoverable by the system
- Live Activity widget: replace frozen duration(from:) with
  Text(date, style: .timer); replace frozen relativeFormatted with
  Text(date, style: .relative); localize status badge to Russian

Co-authored-by: robonen <26167508+robonen@users.noreply.github.com>
2026-03-13 23:29:19 +00:00
copilot-swe-agent[bot] 9259a3693a perf: cache RelativeDateTimeFormatter; add .DS_Store to .gitignore
Co-authored-by: robonen <26167508+robonen@users.noreply.github.com>
2026-03-13 23:08:08 +00:00
copilot-swe-agent[bot] d642bffcaa fix: address code review feedback
- SettingsView: replace broken Toggle+constant with a Button that directly
  opens system notification settings (Toggle was bound to .constant(true)
  and onChange never fired)
- HTTPClient: append query parameters to URL for GET requests instead of
  putting them in the request body (body is ignored for GET)
- PushNotificationService: document why info-severity alerts skip Live Activities
- NotificationsViewModel: document polling page-reset behavior

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-13 23:05:53 +00:00
copilot-swe-agent[bot] 1eb21c71ce feat: add complete Mayday iOS Xcode project
- Swift 6, SwiftUI, MVVM + async/await architecture
- iOS 17.0 minimum deployment target
- Two targets: Mayday app + MaydayLiveActivity widget extension
- Models: UserResponse, TokenPair, AppNotification, SessionResponse, AlertAttributes
- Services: HTTPClient (actor), AuthService, KeychainService, NotificationsAPIService, PushNotificationService
- ViewModels: AuthViewModel, NotificationsViewModel, SettingsViewModel
- Views: Login/Register/VerifyEmail, NotificationsList/Detail, Settings/ChangePassword/Sessions
- APNs push notifications with UIApplicationDelegate
- ActivityKit Live Activities for Dynamic Island + Lock Screen
- Keychain (Security framework) token storage
- 30-second polling with pagination for notifications
- Xcode project file (project.pbxproj) with correct build phases for both targets

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-13 23:04:35 +00:00
copilot-swe-agent[bot] 0bb4d89a09 Initial plan 2026-03-13 22:53:52 +00:00
robonen 966c17bd90 Initial commit 2026-03-14 05:53:49 +07:00