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 /**
24  *  Settable by the app's screen orientation API via the orientation kernel service.
25  */
26 - (void)setSupportedInterfaceOrientations:(UIInterfaceOrientationMask)supportedInterfaceOrientations;
27 
28 - (void)appStateDidBecomeActive;
29 - (void)appStateDidBecomeInactive;
30 
31 /**
32  *  Backgrounds all descendant controllers (modals) presented by this controller.
33  */
34 - (void)backgroundControllers;
35 
36 /**
37  *  Restores backgrounded controllers.
38  */
39 - (void)foregroundControllers;
40 
41 /**
42  *  The underlying react view or loading view. We need to expose this for animation/transitions
43  *  because react does weird stuff with layout that prevents us from operating on the superview.
44  */
45 @property (nonatomic, strong) UIView *contentView;
46 
47 @end
48