getNtut8021xAssistantData method
Implementation
Future<Ntut8021xAssistantData> getNtut8021xAssistantData() async {
final capabilities = await _getCapabilities();
final storedState = await _stateStore.read();
final lastProvisioningMode = _provisioningModeFromStored(
storedState.lastProvisioningMode,
);
final pendingPromptReason =
_pendingPromptReasonFromStored(storedState.pendingCompatPromptReason) ??
_deriveImplicitPendingReason(
capabilities: capabilities,
lastProvisioningMode: lastProvisioningMode,
);
if (!capabilities.isSupported) {
return Ntut8021xAssistantData(
status: Ntut8021xAssistantStatus.unsupportedPlatform,
capabilities: capabilities,
screenMode: Ntut8021xScreenMode.manualOnly,
lastProvisioningMode: lastProvisioningMode,
pendingPromptReason: pendingPromptReason,
showImmediatePromptCandidate: storedState.pendingImmediatePrompt,
);
}
final user = await _authRepository.getLocalUser();
if (user == null) {
return Ntut8021xAssistantData(
status: Ntut8021xAssistantStatus.notLoggedIn,
capabilities: capabilities,
screenMode: Ntut8021xScreenMode.normal,
lastProvisioningMode: lastProvisioningMode,
pendingPromptReason: pendingPromptReason,
showImmediatePromptCandidate: storedState.pendingImmediatePrompt,
);
}
final credentials = await _authRepository.getStoredCredentials();
final status = credentials == null
? Ntut8021xAssistantStatus.credentialsMissing
: Ntut8021xAssistantStatus.ready;
return Ntut8021xAssistantData(
status: status,
capabilities: capabilities,
screenMode: _deriveScreenMode(
status: status,
capabilities: capabilities,
pendingPromptReason: pendingPromptReason,
),
lastProvisioningMode: lastProvisioningMode,
pendingPromptReason: pendingPromptReason,
showImmediatePromptCandidate: storedState.pendingImmediatePrompt,
identity: credentials?.username ?? user.studentId,
password: credentials?.password,
);
}