saveToSystem method
- required String identity,
- required String password,
- required CampusWifiCapabilities capabilities,
- required Ntut8021xPendingPromptReason? pendingPromptReason,
override
Implementation
@override
Future<Ntut8021xProvisioningResult> saveToSystem({
required String identity,
required String password,
required CampusWifiCapabilities capabilities,
required Ntut8021xPendingPromptReason? pendingPromptReason,
}) async {
if (!capabilities.isSupported || !capabilities.canSaveToSystem) {
return const Ntut8021xProvisioningResult.unsupported();
}
final provisioning = await _platform.saveNtut8021xToSystem(
identity: identity,
password: password,
);
final compatResult = _provisioningResultFromDto(
provisioning,
defaultMode: Ntut8021xProvisioningMode.compat,
);
if (compatResult.status == Ntut8021xProvisioningStatus.compatSuccess) {
await _stateStore.markProvisioned(
mode: Ntut8021xStoredProvisioningMode.compat,
);
return compatResult;
}
final storedState = await _stateStore.read();
final nextPendingPromptReason =
pendingPromptReason ??
switch (storedState.pendingCompatPromptReason) {
Ntut8021xStoredPendingPromptReason.credentialChanged =>
Ntut8021xPendingPromptReason.credentialChanged,
_ => Ntut8021xPendingPromptReason.suggestionFallbackRequired,
};
await _stateStore.setPendingCompatPrompt(
reason: switch (nextPendingPromptReason) {
Ntut8021xPendingPromptReason.credentialChanged =>
Ntut8021xStoredPendingPromptReason.credentialChanged,
Ntut8021xPendingPromptReason.suggestionFallbackRequired =>
Ntut8021xStoredPendingPromptReason.suggestionFallbackRequired,
},
immediate: false,
);
return _copyResult(
compatResult,
pendingPromptReason: nextPendingPromptReason,
);
}