initShield static method

Future<void> initShield(
  1. ShieldConfig config
)

Implementation

static Future<void> initShield(ShieldConfig config) async {
  try {
    if (config.shieldCallback != null) {
      _channel.setMethodCallHandler(_methodHandler);
      _shieldCallback = config.shieldCallback;
    }

    if (config.siteID.isEmpty || config.key.isEmpty) {
      const shieldError = ShieldError(
        "SHIELD_ERROR",
        "Missing siteID or key",
      );

      latestError = shieldError;
      _shieldCallback?.onError(shieldError);
      return;
    }

    final environment = _serializeEnvironment(config.environment);
    final logLevel = _serializeLogLevel(config.logLevel);

    unawaited(setCrossPlatformParameters());

    final dialogMap = config.defaultBlockedDialog != null
        ? {
      "title": config.defaultBlockedDialog!.title,
      "body": config.defaultBlockedDialog!.body,
    }
        : null;

    final args = <String, dynamic>{
      "siteID": config.siteID,
      "key": config.key,
      "registerCallback": config.shieldCallback != null,
      "partnerId": config.partnerId,
      "environment": environment,
      "logLevel": logLevel,
      "defaultBlockedDialog": dialogMap,
    };

    if (Platform.isAndroid) {
      args["needBackgroundListener"] = config.enableBackgroundListener;
      args["blockScreenRecording"] = config.blockScreenRecording;
    }

    await _channel.invokeMethod("initShieldFraud", args);
    latestError = null;
  } on PlatformException catch (e, s) {
    _internalLog("initShield failed", e, s);

    final shieldError = ShieldError(
      e.code,
      e.message ?? e.details?.toString() ?? "Unknown error",
      exception: e.details?.toString(),
    );

    latestError = shieldError;
    _shieldCallback?.onError(shieldError);
  } catch (e, s) {
    _internalLog("initShield failed", e, s);

    final shieldError = ShieldError(
      "0",
      e.toString().isNotEmpty
          ? e.toString()
          : (s.toString().isNotEmpty ? s.toString() : "Unknown error"),
    );

    latestError = shieldError;
    _shieldCallback?.onError(shieldError);
  }
}