23 self.title =
@"Google Calendar";
25 self.service = [[GTLRCalendarService alloc] init];
26 [[
self view] setBackgroundColor:[UIColor colorWithHue:0.32
31 CGRect totalFrame =
self.view.frame;
37 if ([[loginControl signedIn] boolValue]) {
41 CGRect listFilesButtonFrame = CGRectMake(totalFrame.size.width * 0.30,
42 totalFrame.size.height * 0.2,
43 totalFrame.size.width * 0.4,
44 totalFrame.size.height * 0.1);
46 self.listEventsButton = [[UIButton alloc] initWithFrame:listFilesButtonFrame];
47 [
self.listEventsButton setTitle:@"list events" forState:UIControlStateNormal];
48 [
self.listEventsButton addTarget:self action:@selector(fetchEvents) forControlEvents:UIControlEventTouchUpInside];
49 [
self.view addSubview:self.listEventsButton];
51 self.service = [calendarControl
service];
55 CGRect signInButtonFrame = CGRectMake(totalFrame.size.width * 0.45,
56 totalFrame.size.height * 0.1,
57 totalFrame.size.width * 0.1,
58 totalFrame.size.height * 0.05);
67 [
self.signInButton setFrame:signInButtonFrame];
68 _signInButton.layer.cornerRadius = 8;
69 _signInButton.layer.borderColor = [[UIColor blackColor] CGColor];
70 _signInButton.layer.borderWidth = 3.0;
71 _signInButton .clipsToBounds = YES;
72 [
self.view addSubview:self.signInButton];
77 #pragma mark - Z5GoogleLoginListener 93 NSLog(
@"GoogCalendarViewController.fetchEvents");
95 GTLRCalendarQuery_EventsList *query =
96 [GTLRCalendarQuery_EventsList queryWithCalendarId:@"primary"];
97 query.maxResults = 10;
98 query.timeMin = [GTLRDateTime dateTimeWithDate:[NSDate date]];
99 query.singleEvents = YES;
100 query.orderBy = kGTLRCalendarOrderByStartTime;
102 [
self.service executeQuery:query
104 didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)];
107 - (void)displayResultWithTicket:(GTLRServiceTicket *)ticket
108 finishedWithObject:(GTLRCalendar_Events *)events
109 error:(NSError *)error {
110 NSLog(
@"GoogCalendarViewController.displayResult");
112 NSMutableString *output = [[NSMutableString alloc] init];
113 if (events.items.count > 0) {
114 [output appendString:@"Upcoming events:\n"];
115 for (GTLRCalendar_Event *event in events) {
116 GTLRDateTime *start =
event.start.dateTime ?:
event.start.date;
117 NSString *startString =
118 [NSDateFormatter localizedStringFromDate:[start date]
119 dateStyle:NSDateFormatterShortStyle
120 timeStyle:NSDateFormatterShortStyle];
121 [output appendFormat:@"%@ - %@\n", startString, event.summary];
124 [output appendString:@"No upcoming events found."];
126 NSLog(
@"GoogCalendarViewController.displayResult:\n%@", output);
130 NSLog(
@"GoogCalendarViewController.displayResult:\nerror: %@", error.localizedDescription);
135 [
super didReceiveMemoryWarning];
id< GIDSignInDelegate > delegate
void didReceiveMemoryWarning()
instancetype sharedInstance()
id< GTMFetcherAuthorizationProtocol > fetcherAuthorizer()
GTLRCalendarService * service
void signedIn:(GIDGoogleUser *user)
id< GIDSignInUIDelegate > uiDelegate
Singleton interface to both core and remote data sources.
void addCalendarListener:(id< Z5GoogleCalendarListener > ear)
GIDSignIn * sharedInstance()
void configureGoogleSignIn()
GIDAuthentication * authentication
GIDGoogleUser * signedInUser