registerAirflexNotification method

Future<void> registerAirflexNotification({
  1. required String userId,
})

Implementation

Future<void> registerAirflexNotification({required String userId}) async {
  _currentUserId = userId;
  _fcmTokenRefreshSubscription?.cancel();
  _fcmTokenRefreshSubscription = _fcmInterface.onTokenRefresh.listen((token) {
    FlutterLinkIdMmpPlatform.instance.pushFCMToken(userId: userId, token: token);
  });
  final fcmToken = await _fcmInterface.getFCMToken();
  if (fcmToken == null) {
    debugPrint("===== FCM Token is null =====");
    return;
  }
  FlutterLinkIdMmpPlatform.instance.pushFCMToken(userId: userId, token: fcmToken);

  final initMessage = await _getInitMessageData();
  if (initMessage != null && !_pushTrackedInitMessageData) {
    final notiId = initMessage['id'] as String?;
    if (notiId != null) {
      FlutterLinkIdMmpPlatform.instance.trackNotiClick(userId: userId, notificationId: notiId);
      _pushTrackedInitMessageData = true;
    }
  }

  _notiClickTrackSubscription?.cancel();
  _notiClickTrackSubscription = _onOpenMessageData().listen((data) {
    final notiId = data['id'] as String?;
    if (notiId != null) {
      FlutterLinkIdMmpPlatform.instance.trackNotiClick(userId: userId, notificationId: notiId);
    }
  });
}