You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
5.3 KiB
91 lines
5.3 KiB
//
|
|
// FLEXManager.h
|
|
// Flipboard
|
|
//
|
|
// Created by Ryan Olson on 4/4/14.
|
|
// Copyright (c) 2014 Flipboard. All rights reserved.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import <UIKit/UIKit.h>
|
|
|
|
typedef UIViewController *(^FLEXCustomContentViewerFuture)(NSData *data);
|
|
|
|
@interface FLEXManager : NSObject
|
|
|
|
+ (instancetype)sharedManager;
|
|
|
|
@property (nonatomic, readonly) BOOL isHidden;
|
|
|
|
- (void)showExplorer;
|
|
- (void)hideExplorer;
|
|
- (void)toggleExplorer;
|
|
|
|
#pragma mark - Network Debugging
|
|
|
|
/// If this property is set to YES, FLEX will swizzle NSURLConnection*Delegate and NSURLSession*Delegate methods
|
|
/// on classes that conform to the protocols. This allows you to view network activity history from the main FLEX menu.
|
|
/// Full responses are kept temporarily in a size-limited cache and may be pruned under memory pressure.
|
|
@property (nonatomic, assign, getter=isNetworkDebuggingEnabled) BOOL networkDebuggingEnabled;
|
|
|
|
/// Defaults to 25 MB if never set. Values set here are presisted across launches of the app.
|
|
/// The response cache uses an NSCache, so it may purge prior to hitting the limit when the app is under memory pressure.
|
|
@property (nonatomic, assign) NSUInteger networkResponseCacheByteLimit;
|
|
|
|
/// Requests whose host ends with one of the blacklisted entries in this array will be not be recorded (eg. google.com).
|
|
/// Wildcard or subdomain entries are not required (eg. google.com will match any subdomain under google.com).
|
|
/// Useful to remove requests that are typically noisy, such as analytics requests that you aren't interested in tracking.
|
|
@property (nonatomic, copy) NSArray<NSString *> *networkRequestHostBlacklist;
|
|
|
|
|
|
#pragma mark - Keyboard Shortcuts
|
|
|
|
/// Simulator keyboard shortcuts are enabled by default.
|
|
/// The shortcuts will not fire when there is an active text field, text view, or other responder accepting key input.
|
|
/// You can disable keyboard shortcuts if you have existing keyboard shortcuts that conflict with FLEX, or if you like doing things the hard way ;)
|
|
/// Keyboard shortcuts are always disabled (and support is compiled out) in non-simulator builds
|
|
@property (nonatomic, assign) BOOL simulatorShortcutsEnabled;
|
|
|
|
/// Adds an action to run when the specified key & modifier combination is pressed
|
|
/// @param key A single character string matching a key on the keyboard
|
|
/// @param modifiers Modifier keys such as shift, command, or alt/option
|
|
/// @param action The block to run on the main thread when the key & modifier combination is recognized.
|
|
/// @param description Shown the the keyboard shortcut help menu, which is accessed via the '?' key.
|
|
/// @note The action block will be retained for the duration of the application. You may want to use weak references.
|
|
/// @note FLEX registers several default keyboard shortcuts. Use the '?' key to see a list of shortcuts.
|
|
- (void)registerSimulatorShortcutWithKey:(NSString *)key modifiers:(UIKeyModifierFlags)modifiers action:(dispatch_block_t)action description:(NSString *)description;
|
|
|
|
#pragma mark - Extensions
|
|
|
|
/// Default database password is @c nil by default.
|
|
/// Set this to the password you want the databases to open with.
|
|
@property (copy, nonatomic) NSString *defaultSqliteDatabasePassword;
|
|
|
|
/// Adds an entry at the bottom of the list of Global State items. Call this method before this view controller is displayed.
|
|
/// @param entryName The string to be displayed in the cell.
|
|
/// @param objectFutureBlock When you tap on the row, information about the object returned by this block will be displayed.
|
|
/// Passing a block that returns an object allows you to display information about an object whose actual pointer may change at runtime (e.g. +currentUser)
|
|
/// @note This method must be called from the main thread.
|
|
/// The objectFutureBlock will be invoked from the main thread and may return nil.
|
|
/// @note The passed block will be copied and retain for the duration of the application, you may want to use __weak references.
|
|
- (void)registerGlobalEntryWithName:(NSString *)entryName objectFutureBlock:(id (^)(void))objectFutureBlock;
|
|
|
|
/// Adds an entry at the bottom of the list of Global State items. Call this method before this view controller is displayed.
|
|
/// @param entryName The string to be displayed in the cell.
|
|
/// @param viewControllerFutureBlock When you tap on the row, view controller returned by this block will be pushed on the navigation controller stack.
|
|
/// @note This method must be called from the main thread.
|
|
/// The viewControllerFutureBlock will be invoked from the main thread and may not return nil.
|
|
/// @note The passed block will be copied and retain for the duration of the application, you may want to use __weak references.
|
|
- (void)registerGlobalEntryWithName:(NSString *)entryName
|
|
viewControllerFutureBlock:(UIViewController * (^)(void))viewControllerFutureBlock;
|
|
|
|
/// Sets custom viewer for specific content type.
|
|
/// @param contentType Mime type like application/json
|
|
/// @param viewControllerFutureBlock Viewer (view controller) creation block
|
|
/// @note This method must be called from the main thread.
|
|
/// The viewControllerFutureBlock will be invoked from the main thread and may not return nil.
|
|
/// @note The passed block will be copied and retain for the duration of the application, you may want to use __weak references.
|
|
- (void)setCustomViewerForContentType:(NSString *)contentType
|
|
viewControllerFutureBlock:(FLEXCustomContentViewerFuture)viewControllerFutureBlock;
|
|
|
|
@end
|