performCheck method

Runs the compatibility check. Should only be called after loadImage succeeds.

Implementation

Future<NanoloadersCheckOutcome> performCheck() async {
  // Check cached status first
  final cachedOutcome = await _getCachedOutcome();
  if (cachedOutcome != null) {
    return cachedOutcome;
  }

  // No cache — collect device info and check server
  try {
    final outcome = await _performServerCheck();
    await _cacheOutcome(outcome);
    return outcome;
  } catch (e) {
    // server check failed
    return const NanoloadersCheckOutcome(
      result: NanoloadersCheckResult.error,
    );
  }
}