downloadAndInstall method
Future<void>
downloadAndInstall(
)
Implementation
Future<void> downloadAndInstall() async {
final update = _state.update;
if (!installationEnabled ||
(_state.installed?.platformVersion ?? 0) < 24 ||
update == null ||
_installOperationActive ||
_preservesInstallerState) {
return;
}
_installOperationActive = true;
_evaluationGeneration++;
_setState(
_state.copyWith(
status: NAppUpdateStatus.downloading,
clearProgress: true,
clearError: true,
),
);
try {
final result = await installer.downloadAndInstall(update.asset);
_setState(
_state.copyWith(
status: switch (result) {
UpdateInstallResult.permissionRequired =>
NAppUpdateStatus.permissionRequired,
UpdateInstallResult.awaitingUserAction =>
NAppUpdateStatus.awaitingUserAction,
UpdateInstallResult.cancelled => NAppUpdateStatus.cancelled,
},
clearProgress: true,
),
);
} catch (error) {
_fail(error);
} finally {
_installOperationActive = false;
}
}