// // FLEXManager+Networking.m // FLEX // // Created by Tanner on 2/1/20. // Copyright © 2020 Flipboard. All rights reserved. // #import "FLEXManager+Networking.h" #import "FLEXManager+Private.h" #import "FLEXNetworkObserver.h" #import "FLEXNetworkRecorder.h" #import "FLEXObjectExplorerFactory.h" @implementation FLEXManager (Networking) + (void)load { // Register array/dictionary viewer for JSON responses [self.sharedManager setCustomViewerForContentType:@"application/json" viewControllerFutureBlock:^UIViewController *(NSData *data) { id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; if (jsonObject) { return [FLEXObjectExplorerFactory explorerViewControllerForObject:jsonObject]; } return nil; } ]; } - (BOOL)isNetworkDebuggingEnabled { return FLEXNetworkObserver.isEnabled; } - (void)setNetworkDebuggingEnabled:(BOOL)networkDebuggingEnabled { FLEXNetworkObserver.enabled = networkDebuggingEnabled; } - (NSUInteger)networkResponseCacheByteLimit { return FLEXNetworkRecorder.defaultRecorder.responseCacheByteLimit; } - (void)setNetworkResponseCacheByteLimit:(NSUInteger)networkResponseCacheByteLimit { FLEXNetworkRecorder.defaultRecorder.responseCacheByteLimit = networkResponseCacheByteLimit; } - (NSMutableArray *)networkRequestHostBlacklist { return FLEXNetworkRecorder.defaultRecorder.hostBlacklist; } - (void)setNetworkRequestHostBlacklist:(NSMutableArray *)networkRequestHostBlacklist { FLEXNetworkRecorder.defaultRecorder.hostBlacklist = networkRequestHostBlacklist; } - (void)setCustomViewerForContentType:(NSString *)contentType viewControllerFutureBlock:(FLEXCustomContentViewerFuture)viewControllerFutureBlock { NSParameterAssert(contentType.length); NSParameterAssert(viewControllerFutureBlock); NSAssert(NSThread.isMainThread, @"This method must be called from the main thread."); self.customContentTypeViewers[contentType.lowercaseString] = viewControllerFutureBlock; } @end