tryDeployment method
Verifies whether the master device is ready for deployment and in case it is, deploy the study previously added.
If useCached
is true (default), a previously cached deployment will be
retrieved from the phone locally.
If useCached
is false, the deployment will be retrieved from the
deploymentService, based on the study.
In case already deployed, nothing happens.
Implementation
@override
Future<StudyStatus> tryDeployment({bool useCached = true}) async {
assert(
study != null && device != null,
'Cannot deploy without a valid study deployment id and device role name. '
"Call 'initialize()' first.");
// check cache
if (useCached) {
// restore the deployment and app task queue
bool success = await restoreDeployment();
await AppTaskController().restoreQueue();
if (success) {
status = StudyStatus.Deployed;
return status;
}
}
// if no cache, get the deployment from the deployment service
// and save a local cache
status = await super.tryDeployment();
if (status == StudyStatus.Deployed) deployment!.deployed = DateTime.now();
await saveDeployment();
return status;
}