registerIfNeeded method

Future<void> registerIfNeeded()

Register device with backend if not already registered

Implementation

Future<void> registerIfNeeded() async {
  if (!_isRegistered) {
    _logger.warning('Device callbacks not registered');
    return;
  }

  try {
    final lib = PlatformLoader.loadCommons();
    final registerFn = lib.lookupFunction<
        Int32 Function(Int32, Pointer<Utf8>),
        int Function(
            int, Pointer<Utf8>)>('rac_device_manager_register_if_needed');

    final envValue = _environmentToInt(_environment);
    final buildTokenPtr = nullptr; // Build token not used in Flutter

    final result = registerFn(envValue, buildTokenPtr.cast<Utf8>());
    if (result != RacResultCode.success) {
      _logger.debug('Device registration returned: $result');
    }
  } catch (e) {
    _logger.debug('rac_device_manager_register_if_needed not available: $e');
  }
}