146 lines
4.2 KiB
Mathematica
146 lines
4.2 KiB
Mathematica
|
//
|
||
|
// GooglePlusSampleShareViewController.m
|
||
|
//
|
||
|
// Copyright 2012 Google Inc.
|
||
|
//
|
||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
// you may not use this file except in compliance with the License.
|
||
|
// You may obtain a copy of the License at
|
||
|
//
|
||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||
|
//
|
||
|
// Unless required by applicable law or agreed to in writing, software
|
||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
// See the License for the specific language governing permissions and
|
||
|
// limitations under the License.
|
||
|
//
|
||
|
|
||
|
#import "GooglePlusSampleShareViewController.h"
|
||
|
|
||
|
#import "GooglePlusSampleAppDelegate.h"
|
||
|
|
||
|
@implementation GooglePlusSampleShareViewController
|
||
|
|
||
|
@synthesize sharePrefillText = sharePrefillText_;
|
||
|
@synthesize shareURL = shareURL_;
|
||
|
@synthesize shareStatus = shareStatus_;
|
||
|
@synthesize shareToolbar = shareToolbar_;
|
||
|
|
||
|
- (void)dealloc {
|
||
|
[sharePrefillText_ release];
|
||
|
[shareURL_ release];
|
||
|
[shareStatus_ release];
|
||
|
[share_ release];
|
||
|
[shareToolbar_ release];
|
||
|
[super dealloc];
|
||
|
}
|
||
|
|
||
|
#pragma mark - View lifecycle
|
||
|
|
||
|
- (void)viewDidLoad {
|
||
|
// Set up Google+ share dialog.
|
||
|
GooglePlusSampleAppDelegate *appDelegate = (GooglePlusSampleAppDelegate *)
|
||
|
[[UIApplication sharedApplication] delegate];
|
||
|
NSString *clientID = [GooglePlusSampleAppDelegate clientID];
|
||
|
share_ = [[GooglePlusShare alloc] initWithClientID:clientID];
|
||
|
share_.delegate = self;
|
||
|
appDelegate.share = share_;
|
||
|
|
||
|
[super viewDidLoad];
|
||
|
}
|
||
|
|
||
|
- (void)viewDidUnload {
|
||
|
GooglePlusSampleAppDelegate *appDelegate = (GooglePlusSampleAppDelegate *)
|
||
|
[[UIApplication sharedApplication] delegate];
|
||
|
appDelegate.share = nil;
|
||
|
share_.delegate = nil;
|
||
|
[share_ release];
|
||
|
share_ = nil;
|
||
|
|
||
|
[super viewDidUnload];
|
||
|
}
|
||
|
|
||
|
#pragma mark - UITextFieldDelegate
|
||
|
|
||
|
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
|
||
|
[textField resignFirstResponder];
|
||
|
return YES;
|
||
|
}
|
||
|
|
||
|
#pragma mark - GooglePlusShareDelegate
|
||
|
|
||
|
- (void)finishedSharing:(BOOL)shared {
|
||
|
NSString *text = shared ? @"Success" : @"Canceled";
|
||
|
shareStatus_.text = [NSString stringWithFormat:@"Status: %@", text];
|
||
|
}
|
||
|
|
||
|
#pragma mark - UIActionSheetDelegate
|
||
|
|
||
|
- (void)actionSheet:(UIActionSheet *)actionSheet
|
||
|
didDismissWithButtonIndex:(NSInteger)buttonIndex {
|
||
|
if (buttonIndex == 0) {
|
||
|
[self shareButton:nil];
|
||
|
} else if (buttonIndex == 1) {
|
||
|
shareStatus_.text = @"Status: Sharing...";
|
||
|
MFMailComposeViewController *picker =
|
||
|
[[[MFMailComposeViewController alloc] init] autorelease];
|
||
|
picker.mailComposeDelegate = self;
|
||
|
[picker setSubject:sharePrefillText_.text];
|
||
|
[picker setMessageBody:shareURL_.text isHTML:NO];
|
||
|
|
||
|
[self presentModalViewController:picker animated:YES];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#pragma mark - MFMailComposeViewControllerDelegate
|
||
|
|
||
|
- (void)mailComposeController:(MFMailComposeViewController *)controller
|
||
|
didFinishWithResult:(MFMailComposeResult)result
|
||
|
error:(NSError*)error {
|
||
|
NSString *text;
|
||
|
switch (result) {
|
||
|
case MFMailComposeResultCancelled:
|
||
|
text = @"Canceled";
|
||
|
break;
|
||
|
case MFMailComposeResultSaved:
|
||
|
text = @"Saved";
|
||
|
break;
|
||
|
case MFMailComposeResultSent:
|
||
|
text = @"Sent";
|
||
|
break;
|
||
|
case MFMailComposeResultFailed:
|
||
|
text = @"Failed";
|
||
|
break;
|
||
|
default:
|
||
|
text = @"Not sent";
|
||
|
break;
|
||
|
}
|
||
|
shareStatus_.text = [NSString stringWithFormat:@"Status: %@", text];
|
||
|
[self dismissModalViewControllerAnimated:YES];
|
||
|
}
|
||
|
|
||
|
#pragma mark - IBActions
|
||
|
|
||
|
- (IBAction)shareButton:(id)sender {
|
||
|
NSString *inputURL = shareURL_.text;
|
||
|
NSURL *urlToShare = [inputURL length] ? [NSURL URLWithString:inputURL] : nil;
|
||
|
NSString *inputText = sharePrefillText_.text;
|
||
|
NSString *text = [inputText length] ? inputText : nil;
|
||
|
shareStatus_.text = @"Status: Sharing...";
|
||
|
[[[[share_ shareDialog] setURLToShare:urlToShare] setPrefillText:text] open];
|
||
|
}
|
||
|
|
||
|
- (IBAction)shareToolbar:(id)sender {
|
||
|
UIActionSheet *actionSheet =
|
||
|
[[[UIActionSheet alloc] initWithTitle:@"Share this post"
|
||
|
delegate:self
|
||
|
cancelButtonTitle:@"Cancel"
|
||
|
destructiveButtonTitle:nil
|
||
|
otherButtonTitles:@"Google+", @"Email", nil]
|
||
|
autorelease];
|
||
|
[actionSheet showFromToolbar:shareToolbar_];
|
||
|
}
|
||
|
|
||
|
@end
|