23 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
25 self = [
super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
30 self.title =
@"Network";
31 self.tabBarItem.image = [UIImage imageNamed:@"network32"];
43 CGRect totalFrame =
self.view.frame;
44 float leftMargin = 0.15*totalFrame.size.width;
46 float buttonHeight = 50.0;
47 float portalHeight = 280;
48 float controlMargin = 30.0;
49 float controlWidth = 0.7*totalFrame.size.width;
50 CGRect logGoogleFrame = CGRectMake(leftMargin, topMargin, controlWidth, buttonHeight);
51 CGRect portalFrame = CGRectMake(leftMargin, topMargin+buttonHeight+controlMargin, controlWidth, portalHeight);
52 CGRect saveLocallyFrame = CGRectMake(leftMargin, topMargin+buttonHeight+2*controlMargin+portalHeight, controlWidth, buttonHeight);
53 CGRect readLocallyFrame = CGRectMake(leftMargin, topMargin+2*buttonHeight+3*controlMargin+portalHeight-16, controlWidth, buttonHeight);
56 self.logGoogleButton = [[UIButton alloc] initWithFrame:logGoogleFrame];
57 [
self.logGoogleButton setTitle:@"Log-On Google" forState:UIControlStateNormal];
76 [
self.logGoogleButton addTarget:self action:@selector(logGoogleNow) forControlEvents:UIControlEventTouchUpInside];
77 [
self.view addSubview:self.logGoogleButton];
79 EAGLContext *portalContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
80 self.portal = [[GLKView alloc] initWithFrame:portalFrame context:portalContext];
81 self.portal.delegate =
self;
84 self.portal.drawableColorFormat = GLKViewDrawableColorFormatRGBA8888;
85 self.portal.drawableDepthFormat = GLKViewDrawableDepthFormat24;
86 self.portal.drawableStencilFormat = GLKViewDrawableStencilFormat8;
89 self.portal.drawableMultisample = GLKViewDrawableMultisample4X;
91 [
self.view addSubview:self.portal];
93 UIButton *saveLocallyButton = [[UIButton alloc] initWithFrame:saveLocallyFrame];
94 [saveLocallyButton setTitle:@"Save to Device" forState:UIControlStateNormal];
95 [saveLocallyButton addTarget:self action:@selector(saveToUserDefaults) forControlEvents:UIControlEventTouchUpInside];
96 [
self.view addSubview:saveLocallyButton];
98 UIButton *readLocallyButton = [[UIButton alloc] initWithFrame:readLocallyFrame];
99 [readLocallyButton setTitle:@"Read User Defaults" forState:UIControlStateNormal];
100 [readLocallyButton addTarget:self action:@selector(readUserDefaults) forControlEvents:UIControlEventTouchUpInside];
101 [
self.view addSubview:readLocallyButton];
104 [[
self view] setBackgroundColor:[UIColor lightGrayColor]];
107 - (void) viewWillAppear:(BOOL)animated
111 self.portal.enableSetNeedsDisplay = NO;
112 CADisplayLink* displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(render:)];
113 [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
117 - (void)render:(CADisplayLink*)displayLink {
119 [
self.portal display];
122 #pragma mark - Device 124 - (void)saveToUserDefaults {
126 NSLog(
@"SecondView.saveToUserDefaults");
134 - (void)readUserDefaults {
135 NSLog(
@"SecondView.readUserDefaults");
140 for (
MenuItem *meItem in [localData todaysMenuItems]) {
141 NSLog(
@"SecondView.readUserDefaults: menu-item: %@", meItem);
145 #pragma mark - Google 147 - (void)logGoogleNow {
149 NSLog(
@"SecondView.logGoogleNow");
154 NSLog(@"SecondView.logGoogleNow/finish-handler");
161 #pragma mark - GLKViewDelegate 163 - (void)glkView:(GLKView *)view drawInRect:(CGRect)rect {
165 if ([[[
Z5DataController sharedInstance] remoteDataController] isSignedIn]) {
168 glClearColor(0.3, 0.6, 0.3, 1.0);
169 glClear(GL_COLOR_BUFFER_BIT);
173 - (void)cycleClearColor
180 if (currentRed >= 1.0) {
184 if (currentRed <= 0.0) {
189 glClearColor(currentRed*0.4, currentRed*0.7 + 0.2, 0.5, 1.0);
190 glClear(GL_COLOR_BUFFER_BIT);
193 #pragma mark - Z5RemoteDataFetch protocol 197 NSLog(
@"SecondView.showHomeAsk");
199 - (void) showHomeError:(NSError *)error
201 NSLog(
@"SecondView.showHomeError");
203 - (BOOL) tellHomeError
205 NSLog(
@"SecondView.tellHomeError");
217 - (void) showFetchAsk
219 NSLog(
@"SecondView.showFetchAsk");
221 - (void) showFetchError
223 NSLog(
@"SecondView.showFetchError");
225 - (void) showFetchResult: (NSArray *)filen
227 NSLog(
@"SecondView.showFetchResult");
229 - (void) showPublishAsk
231 NSLog(
@"SecondView.showPublishAsk");
233 - (void) showPublishError
235 NSLog(
@"SecondView.showPublishError");
237 - (void) showPublishResult
239 NSLog(
@"SecondView.showPublishResult");
241 - (void) showDataFetch: (NSData *) data
243 NSLog(
@"SecondView.showDataFetch");
245 - (void) showDataFetch: (NSData *) data fromFile: (NSString *) title withGoogleId: (NSString *) fileId
247 NSLog(
@"SecondView.showDataFetch");
249 - (void) showGoogleFileTitle: (NSString *) title andId: (NSString *) fileId
251 NSLog(
@"SecondView.showGoogleFileTitle");
259 NSLog(
@"SecondView.updateUI");
260 if (![[[
Z5DataController sharedInstance] remoteDataController] isSignedIn]) {
262 NSLog(
@"SecondView.updateUI: NOT logged on");
264 [
self.logGoogleButton setTitle:@"LOG-ON" forState:UIControlStateNormal];
266 [
self.logGoogleButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
270 NSLog(
@"SecondView.updateUI: logged on");
272 [
self.logGoogleButton setTitle:@"LOG-OFF (already on)" forState:UIControlStateNormal];
274 [
self.logGoogleButton setBackgroundColor:[UIColor colorWithHue:0.48 saturation:0.4 brightness:0.4 alpha:1.0]];
275 [
self.logGoogleButton setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
282 #pragma mark - focus-in-time 284 - (void)didReceiveMemoryWarning {
285 [
super didReceiveMemoryWarning];
instancetype sharedInstance()
NSMutableArray * createTodaysMenuFromUserDefaults()
Singleton interface to both core and remote data sources.