create static method

Future<ElginStyle> create({
  1. required MethodChannel channel,
  2. required String licenceKey,
})

Factory assíncrono com validação da licença

Implementation

static Future<ElginStyle> create({
  required MethodChannel channel,
  required String licenceKey,
}) async {
  // Se já existe instância e licença validada, retorna ela diretamente
  if (_instance != null && _isLicenceValidated) {
    return _instance!;
  }

  final style = ElginStyle._(
    channel: channel,
    licenceKey: licenceKey,
  );

  _isLicenceValidated = await style._checkLicence();
  if (!_isLicenceValidated) {
    _instance = null; // Reseta a instância se a licença for inválida
    _isLicenceValidated = false; // Reseta o estado de licença válida
    throw Exception('Invalid licence key. Please check your licence key.');
  }
  _instance = style; // Armazena a instância criada
  _isLicenceValidated = true; // Marca a licença como válida

  return style;
}