Digital PCT265 story MVAPCT-48 - code fixes for cache optimizations
This commit is contained in:
parent
8c32dbbd7d
commit
84f4a1ac46
@ -383,13 +383,27 @@
|
|||||||
if (requestParameters.backgroundRequest) {
|
if (requestParameters.backgroundRequest) {
|
||||||
return [self loadBackgroundRequest:requestParameters dataForPage:dataForPage delegateObject:delegateObject];
|
return [self loadBackgroundRequest:requestParameters dataForPage:dataForPage delegateObject:delegateObject];
|
||||||
} else {
|
} else {
|
||||||
if (!requestParameters.noloadingOverlay) {
|
BOOL loadingOverlay = NO;
|
||||||
|
if (!requestParameters.noloadingOverlay && [self.blockingLoadQueue.operations indexOfObjectPassingTest:^BOOL(__kindof NSOperation * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||||
|
if (!obj.isExecuting) {
|
||||||
|
[MVMCoreLoggingHandler logDebugMessageWithDelegate:[NSString stringWithFormat:@"CACHEDFEED: T No executor"]];
|
||||||
|
return NO; }
|
||||||
|
if (![obj isKindOfClass:[MVMCoreLoadRequestOperation class]]) {
|
||||||
|
[MVMCoreLoggingHandler logDebugMessageWithDelegate:[NSString stringWithFormat:@"CACHEDFEED: T Not load request"]];
|
||||||
|
return NO; }
|
||||||
|
[MVMCoreLoggingHandler logDebugMessageWithDelegate:[NSString stringWithFormat:@"CACHEDFEED: T %@ %i",((MVMCoreLoadRequestOperation *)obj).loadObject.requestParameters.pageType,((MVMCoreLoadRequestOperation *)obj).loadObject.requestParameters.noloadingOverlay]];
|
||||||
|
return ((MVMCoreLoadRequestOperation *)obj).requestParameters.noloadingOverlay;
|
||||||
|
}] != NSNotFound) {
|
||||||
|
loadingOverlay = YES;
|
||||||
|
[MVMCoreLoggingHandler logDebugMessageWithDelegate:[NSString stringWithFormat:@"CACHEDFEED: We need a loading indicator"]];
|
||||||
[[MVMCoreLoadingOverlayHandler sharedLoadingOverlay] startLoading];
|
[[MVMCoreLoadingOverlayHandler sharedLoadingOverlay] startLoading];
|
||||||
}
|
}
|
||||||
MVMCoreLoadRequestOperation *loadOperation = [[MVMCoreLoadRequestOperation alloc] initWithRequestParameters:requestParameters dataForPage:dataForPage delegateObject:delegateObject backgroundLoad:NO];
|
MVMCoreLoadRequestOperation *loadOperation = [[MVMCoreLoadRequestOperation alloc] initWithRequestParameters:requestParameters dataForPage:dataForPage delegateObject:delegateObject backgroundLoad:NO];
|
||||||
loadOperation.identifier = requestParameters.identifier;
|
loadOperation.identifier = requestParameters.identifier;
|
||||||
[loadOperation setCompletionBlock:^{
|
[loadOperation setCompletionBlock:^{
|
||||||
[[MVMCoreLoadingOverlayHandler sharedLoadingOverlay] stopLoading:YES];
|
if (loadingOverlay) {
|
||||||
|
[[MVMCoreLoadingOverlayHandler sharedLoadingOverlay] stopLoading:YES];
|
||||||
|
}
|
||||||
}];
|
}];
|
||||||
[self.blockingLoadQueue addOperation:loadOperation];
|
[self.blockingLoadQueue addOperation:loadOperation];
|
||||||
return loadOperation;
|
return loadOperation;
|
||||||
|
|||||||
@ -47,9 +47,13 @@ public extension MVMCoreLoadRequestOperation {
|
|||||||
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Controller shouldn't be replaced.")
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Controller shouldn't be replaced.")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
let newVC = MVMCoreViewControllerMappingObject.shared()?.createMFViewController(ofTemplate: loadObject.pageJSON?.optionalStringForKey("template"), pageType: pageType)
|
guard let newVC = MVMCoreViewControllerMappingObject.shared()?.createMFViewController(ofTemplate: loadObject.pageJSON?.optionalStringForKey("template"), pageType: pageType) else {
|
||||||
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Failed to create a new controller")
|
||||||
|
return true
|
||||||
|
}
|
||||||
guard let index = NavigationHandler.shared().navigationController?.viewControllers.firstIndex(where: { controller in
|
guard let index = NavigationHandler.shared().navigationController?.viewControllers.firstIndex(where: { controller in
|
||||||
(controller as? MVMCoreViewControllerProtocol)?.pageType == pageType && type(of: controller) == type(of: newVC)
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: Compare controller pageType:\(pageType) controllerPageType:\((controller as? MVMCoreViewControllerProtocol)?.pageType) type:\(type(of: controller)) newType:\(type(of: newVC))")
|
||||||
|
return (controller as? MVMCoreViewControllerProtocol)?.pageType == pageType && type(of: controller) == type(of: newVC)
|
||||||
}) else {
|
}) else {
|
||||||
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: No matching controller found.")
|
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "CACHEDFEED: No matching controller found.")
|
||||||
return true
|
return true
|
||||||
|
|||||||
@ -132,7 +132,7 @@
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
// No provided load object, check the cache for data first..
|
// No provided load object, check the cache for data first..
|
||||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
||||||
|
|
||||||
[MVMCoreLoadRequestOperation checkCacheForDataForRequest:self.requestParameters completionHandler:^(NSDictionary *pageFromCache, NSDictionary *modulesFromCache) {
|
[MVMCoreLoadRequestOperation checkCacheForDataForRequest:self.requestParameters completionHandler:^(NSDictionary *pageFromCache, NSDictionary *modulesFromCache) {
|
||||||
|
|
||||||
@ -199,7 +199,7 @@
|
|||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user