1 
2 #import <UIKit/UIKit.h>
3 
4 @class EXKernelAppRecord;
5 
6 @interface EXAppViewController : UIViewController
7 
8 - (instancetype)initWithAppRecord:(EXKernelAppRecord *)record;
9 - (void)refresh;
10 - (void)reloadFromCache;
11 
12 /**
13  *  Maybe displays an error to the user. Ignores it if RCTRedBox is already showing it.
14  */
15 - (void)maybeShowError:(NSError *)error;
16 
17 /**
18  * TODO: temporary solution, see https://github.com/expo/expo/pull/10450
19  * Hides the LoadingProgressWindow.
20  */
21 - (void)hideLoadingProgressWindow;
22 
23 - (void)appStateDidBecomeActive;
24 - (void)appStateDidBecomeInactive;
25 
26 /**
27  *  Backgrounds all descendant controllers (modals) presented by this controller.
28  */
29 - (void)backgroundControllers;
30 
31 /**
32  *  Restores backgrounded controllers.
33  */
34 - (void)foregroundControllers;
35 
36 /**
37  *  The underlying react view or loading view. We need to expose this for animation/transitions
38  *  because react does weird stuff with layout that prevents us from operating on the superview.
39  */
40 @property (nonatomic, strong) UIView *contentView;
41 
42 @end
43