summaryrefslogtreecommitdiffstats
path: root/common/resourcefacade.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/resourcefacade.cpp')
-rw-r--r--common/resourcefacade.cpp35
1 files changed, 14 insertions, 21 deletions
diff --git a/common/resourcefacade.cpp b/common/resourcefacade.cpp
index c702777..dee0711 100644
--- a/common/resourcefacade.cpp
+++ b/common/resourcefacade.cpp
@@ -351,7 +351,7 @@ QPair<KAsync::Job<void>, typename Sink::ResultEmitter<typename ApplicationDomain
351 const auto resources = Store::read<ApplicationDomain::SinkResource>(query); 351 const auto resources = Store::read<ApplicationDomain::SinkResource>(query);
352 SinkTraceCtx(ctx) << "Found resource belonging to the account " << account.identifier() << " : " << resources; 352 SinkTraceCtx(ctx) << "Found resource belonging to the account " << account.identifier() << " : " << resources;
353 auto accountIdentifier = account.identifier(); 353 auto accountIdentifier = account.identifier();
354 ApplicationDomain::Status status = ApplicationDomain::ConnectedStatus; 354 QList<int> states;
355 for (const auto &resource : resources) { 355 for (const auto &resource : resources) {
356 auto resourceAccess = ResourceAccessFactory::instance().getAccess(resource.identifier(), ResourceConfig::getResourceType(resource.identifier())); 356 auto resourceAccess = ResourceAccessFactory::instance().getAccess(resource.identifier(), ResourceConfig::getResourceType(resource.identifier()));
357 if (!monitoredResources->contains(resource.identifier())) { 357 if (!monitoredResources->contains(resource.identifier())) {
@@ -364,27 +364,20 @@ QPair<KAsync::Job<void>, typename Sink::ResultEmitter<typename ApplicationDomain
364 Q_ASSERT(ret); 364 Q_ASSERT(ret);
365 monitoredResources->insert(resource.identifier()); 365 monitoredResources->insert(resource.identifier());
366 } 366 }
367 367 states << resourceAccess->getResourceStatus();
368 //Figure out overall status
369 auto s = resourceAccess->getResourceStatus();
370 switch (s) {
371 case ApplicationDomain::ErrorStatus:
372 status = ApplicationDomain::ErrorStatus;
373 break;
374 case ApplicationDomain::OfflineStatus:
375 if (status == ApplicationDomain::ConnectedStatus) {
376 status = ApplicationDomain::OfflineStatus;
377 }
378 break;
379 case ApplicationDomain::ConnectedStatus:
380 break;
381 case ApplicationDomain::BusyStatus:
382 if (status != ApplicationDomain::ErrorStatus) {
383 status = ApplicationDomain::BusyStatus;
384 }
385 break;
386 }
387 } 368 }
369 const auto status = [&] {
370 if (states.contains(ApplicationDomain::ErrorStatus)) {
371 return ApplicationDomain::ErrorStatus;
372 }
373 if (states.contains(ApplicationDomain::BusyStatus)) {
374 return ApplicationDomain::BusyStatus;
375 }
376 if (states.contains(ApplicationDomain::ConnectedStatus)) {
377 return ApplicationDomain::ConnectedStatus;
378 }
379 return ApplicationDomain::OfflineStatus;
380 }();
388 account.setStatusStatus(status); 381 account.setStatusStatus(status);
389 }); 382 });
390 return qMakePair(KAsync::null<void>(), runner->emitter()); 383 return qMakePair(KAsync::null<void>(), runner->emitter());