nomadcode/apps/mobile/push-notification-todo.md
toki 663919c8b0 refactor: organize roadmap phases and update mobile app structure
- Reorganize roadmap archives into phase-based directory structure
- Add PHASE.md files for each roadmap phase
- Update mobile app: remove Mattermost-specific push notification code
- Update mobile app: migrate to workspace-based authentication
- Update pubspec.yaml and platform configs for nomadcode app
2026-05-25 13:59:24 +09:00

2.1 KiB

Push Notification Integration Handoff & Migration Notes

Important

This document is preserved for historical reference only. As of the mattermost-push-plugin-extraction milestone, all native FCM services, Room DB structures, JJWT signature verification, inline reply/dismiss receivers, notification builders, and ACK request handling have been successfully extracted into the local Flutter plugin repository: ../mattermost-push-plugin.

Do NOT edit native push files directly inside this host app repository (apps/mobile/android). All native push logic and platform services now reside in and must be maintained within the plugin repository.

Current Responsibilities in Host App (apps/mobile)

The host application acts strictly as a consumer of the mattermost_push_plugin package. What remains in apps/mobile regarding push notifications are:

  1. Firebase Manifest & Metadata:
    • google-services.json inside apps/mobile/android/app/
    • Initializing Firebase inside lib/main.dart
  2. Credential / Secret Plumbing:
    • Storing session authorization tokens via MattermostPushPlugin.instance.setAuthToken() on login and clearing them on logout.
    • Registering Mattermost server public signing keys via MattermostPushPlugin.instance.setSigningKey().
  3. App Navigation Routings:
    • Handling user taps on notifications by implementing onNavigateToChannel and onNavigateToThread routing callbacks on MattermostPushPlugin.instance.

Legacy Work Documentation (Reference)

All native Kotlin/Java files, Room DB configurations, and broadcast receivers documented below are now managed within the mattermost_push_plugin repository:

  • MattermostFirebaseMessagingService.kt
  • NotificationReplyBroadcastReceiver.java
  • NotificationDismissService.java
  • ReceiptDelivery.java
  • PushNotificationDataHelper.kt
  • helpers/db/MattermostDatabase.kt & GlobalDatabase.kt

For local modifications, testing guidelines, and detailed API specs, please refer to the plugin's README: See ../mattermost-push-plugin/README.md from the NomadCode repository root.