initialize method

Future<void> initialize(
  1. DigiaConfig config
)

Implementation

Future<void> initialize(DigiaConfig config) async {
  if (_initialized) {
    debugPrint('[Digia] initialize() called more than once — ignored.');
    return;
  }
  _config = config;
  _initialized = true;

  WidgetsBinding.instance.addObserver(this);

  // ── Wire the real src services ────────────────────────────────────────
  // DigiaUI.initialize() sets up PreferencesStore, NetworkClient, and
  // loads the DSL config (app_config / functions) from the server or
  // local assets depending on the chosen Flavor.
  final digiaUI = await DigiaUI.initialize(config.toOptions());
  // Initialize the Digia UI manager with the provided configuration
  DigiaUIManager().initialize(digiaUI);

  // Initialize global app state with configuration from DSL
  DUIAppState().init(digiaUI.dslConfig.appState ?? []);

  // Set up the UI factory with custom resources and providers
  DUIFactory().initialize(
      // pageConfigProvider: pageConfigProvider,
      // icons: icons,
      // images: {
      //   ...(DigiaUIManager().assetImages.asMap().map((k, v) => MapEntry(
      //       v.assetData.localPath,
      //       NetworkImage(
      //           '${v.assetData.image?.baseUrl}${v.assetData.image?.path}')))),
      //   ...?images
      // },
      // fontFactory: fontFactory,
      );

  // Apply environment variables from DigiaUIApp if provided
  // if (widget.environmentVariables != null) {
  //   DUIFactory().setEnvironmentVariables(widget.environmentVariables!);
  // }

  // Wire the event callback — when DigiaHost reports a user interaction,
  // route it to the active plugin.
  _controller.onEvent = (event, payload) {
    _activePlugin?.notifyEvent(event, payload);
  };

  // Wire the same callback for inline campaigns reported by DigiaSlot.
  inlineController.onEvent = (event, payload) {
    _activePlugin?.notifyEvent(event, payload);
  };

  _logIfVerbose('Digia initialized with apiKey=${config.apiKey}, '
      'environment=${config.environment.name}');
}