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;
109777fddbSEric 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 /**
18*95dd8db8SBartłomiej Bukowski  * TODO: temporary solution, see https://github.com/expo/expo/pull/10450
19*95dd8db8SBartłomiej Bukowski  * Hides the LoadingProgressWindow.
20*95dd8db8SBartłomiej Bukowski  */
21*95dd8db8SBartłomiej Bukowski - (void)hideLoadingProgressWindow;
22*95dd8db8SBartłomiej Bukowski 
23e7ac6e4fSBen Roth - (void)appStateDidBecomeActive;
24e7ac6e4fSBen Roth - (void)appStateDidBecomeInactive;
253217e243SBen Roth 
26edc8619eSBen Roth /**
27ce63205bSTomasz Sapeta  *  Backgrounds all descendant controllers (modals) presented by this controller.
28ce63205bSTomasz Sapeta  */
29ce63205bSTomasz Sapeta - (void)backgroundControllers;
30ce63205bSTomasz Sapeta 
31ce63205bSTomasz Sapeta /**
32ce63205bSTomasz Sapeta  *  Restores backgrounded controllers.
33ce63205bSTomasz Sapeta  */
34ce63205bSTomasz Sapeta - (void)foregroundControllers;
35ce63205bSTomasz Sapeta 
36ce63205bSTomasz Sapeta /**
37edc8619eSBen Roth  *  The underlying react view or loading view. We need to expose this for animation/transitions
38edc8619eSBen Roth  *  because react does weird stuff with layout that prevents us from operating on the superview.
39edc8619eSBen Roth  */
40edc8619eSBen Roth @property (nonatomic, strong) UIView *contentView;
41edc8619eSBen Roth 
423217e243SBen Roth @end
43