lifecycleHooksListener static method

Future<void> Function() lifecycleHooksListener({
  1. dynamic onAuth(
    1. String appId
    )?,
  2. dynamic onLaunch(
    1. String appId
    )?,
  3. dynamic onResume(
    1. String appId
    )?,
  4. dynamic onPause(
    1. String appId
    )?,
  5. dynamic onClose(
    1. String appId
    )?,
  6. dynamic onError(
    1. String appId,
    2. String? error
    )?,
  7. dynamic onUserInteraction(
    1. String appId
    )?,
})

Implementation

static Future<void> Function() lifecycleHooksListener(
    {Function(String appId)? onAuth,
    Function(String appId)? onLaunch,
    Function(String appId)? onResume,
    Function(String appId)? onPause,
    Function(String appId)? onClose,
    Function(String appId, String? error)? onError,
    Function(String appId)? onUserInteraction}) {
  StreamSubscription<LifecycleHook> subscription = _lifecycleEventChannel
      .receiveBroadcastStream()
      .map((event) => LifecycleHook.fromJson(event))
      .listen((hook) {
    switch (hook.lifecycle) {
      case MiniappLifecycleHooks.OnAuth:
        onAuth?.call(hook.appId);
        break;
      case MiniappLifecycleHooks.OnLaunch:
        onLaunch?.call(hook.appId);
        break;
      case MiniappLifecycleHooks.OnResume:
        onResume?.call(hook.appId);
        break;
      case MiniappLifecycleHooks.OnPause:
        onPause?.call(hook.appId);
        break;
      case MiniappLifecycleHooks.OnClose:
        onClose?.call(hook.appId);
        break;
      case MiniappLifecycleHooks.OnError:
        onError?.call(hook.appId, hook.error);
        break;
      case MiniappLifecycleHooks.OnUserInteraction:
        onUserInteraction?.call(hook.appId);
        break;
    }
  });

  return () => subscription.cancel();
}