provision method
- required String identity,
- required String password,
- required CampusWifiCapabilities capabilities,
override
Implementation
@override
Future<Ntut8021xProvisioningResult> provision({
required String identity,
required String password,
required CampusWifiCapabilities capabilities,
}) async {
if (!capabilities.isSupported || !capabilities.canProvisionAutomatically) {
return const Ntut8021xProvisioningResult.unsupported();
}
final provisioning = await _platform.provisionNtut8021x(
identity: identity,
password: password,
);
final suggestionResult = _provisioningResultFromDto(
provisioning,
defaultMode: Ntut8021xProvisioningMode.suggestion,
);
if (_isSuggestionSuccess(suggestionResult.status) &&
provisioning.suggestionPermissionState != 'disallowed') {
await _stateStore.markProvisioned(
mode: Ntut8021xStoredProvisioningMode.suggestion,
);
return suggestionResult;
}
if (suggestionResult.status ==
Ntut8021xProvisioningStatus.approvalRejected ||
suggestionResult.status ==
Ntut8021xProvisioningStatus.approvalPending ||
provisioning.suggestionPermissionState == 'disallowed') {
await _clearSuggestionFallbackPrompt();
return suggestionResult;
}
if (capabilities.isAndroid11OrNewer &&
capabilities.canProvisionNtut8021xCompat) {
await _stateStore.setPendingCompatPrompt(
reason: Ntut8021xStoredPendingPromptReason.suggestionFallbackRequired,
immediate: false,
);
return _copyResult(
suggestionResult,
pendingPromptReason:
Ntut8021xPendingPromptReason.suggestionFallbackRequired,
);
}
return suggestionResult;
}