13217e243SBen Roth 
23217e243SBen Roth #import <UIKit/UIKit.h>
33217e243SBen Roth 
43217e243SBen Roth @class EXKernelAppRecord;
53217e243SBen Roth 
63217e243SBen Roth @interface EXAppViewController : UIViewController
73217e243SBen Roth 
83217e243SBen Roth - (instancetype)initWithAppRecord:(EXKernelAppRecord *)record;
93217e243SBen Roth - (void)refresh;
10*9777fddbSEric Samelson - (void)reloadFromCache;
113217e243SBen Roth 
123217e243SBen Roth /**
133217e243SBen Roth  *  Maybe displays an error to the user. Ignores it if RCTRedBox is already showing it.
143217e243SBen Roth  */
153217e243SBen Roth - (void)maybeShowError:(NSError *)error;
163217e243SBen Roth 
173217e243SBen Roth /**
183217e243SBen Roth  *  Settable by the app's screen orientation API via the orientation kernel service.
193217e243SBen Roth  */
203217e243SBen Roth - (void)setSupportedInterfaceOrientations:(UIInterfaceOrientationMask)supportedInterfaceOrientations;
213217e243SBen Roth 
22e7ac6e4fSBen Roth - (void)appStateDidBecomeActive;
23e7ac6e4fSBen Roth - (void)appStateDidBecomeInactive;
243217e243SBen Roth 
25edc8619eSBen Roth /**
26edc8619eSBen Roth  *  The underlying react view or loading view. We need to expose this for animation/transitions
27edc8619eSBen Roth  *  because react does weird stuff with layout that prevents us from operating on the superview.
28edc8619eSBen Roth  */
29edc8619eSBen Roth @property (nonatomic, strong) UIView *contentView;
30edc8619eSBen Roth 
313217e243SBen Roth @end
32