1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 #import "EXScopedEventEmitter.h" 4 5 @class EXHomeModule; 6 7 @protocol EXHomeModuleDelegate <NSObject> 8 9 /** 10 * Whether the kernel JS should show any devtools UI or respond to devtools commands. 11 */ 12 - (BOOL)homeModuleShouldEnableDevtools:(EXHomeModule *)module; 13 14 /** 15 * Whether to enable legacy gesture/button for the Expo menu. 16 */ 17 - (BOOL)homeModuleShouldEnableLegacyMenuBehavior:(EXHomeModule *)module; 18 - (void)homeModule:(EXHomeModule *)module didSelectEnableLegacyMenuBehavior:(BOOL)isEnabled; 19 20 /** 21 * Dictionary of `key` => `user facing label` items to show in the kernel JS dev menu. 22 */ 23 - (NSDictionary <NSString *, NSString *> *)devMenuItemsForHomeModule:(EXHomeModule *)module; 24 25 - (BOOL)homeModuleShouldFinishNux:(EXHomeModule *)homeModule; 26 - (void)homeModule:(EXHomeModule *)homeModule didFinishNux:(BOOL)isNuxFinished; 27 28 - (void)homeModule:(EXHomeModule *)module didSelectDevMenuItemWithKey:(NSString *)key; 29 - (void)homeModuleDidSelectHomeDiagnostics:(EXHomeModule *)module; 30 - (void)homeModule:(EXHomeModule *)module didOpenUrl:(NSString *)url; 31 - (void)homeModuleDidSelectRefresh:(EXHomeModule *)module; 32 - (void)homeModuleDidSelectCloseMenu:(EXHomeModule *)module; 33 - (void)homeModuleDidSelectGoToHome:(EXHomeModule *)module; 34 - (void)homeModuleDidSelectQRReader:(EXHomeModule *)module; 35 36 @end 37 38 @interface EXHomeModule : EXScopedEventEmitter 39 40 - (void)dispatchJSEvent: (NSString *)eventName 41 body: (NSDictionary *)eventBody 42 onSuccess: (void (^)(NSDictionary *))success 43 onFailure: (void (^)(NSString *))failure; 44 45 @end 46