Sharing on Facebook, Twitter and Google+
[FIXED] Font of navbar. [FIXED] A few compile fixes. [IMPROVED] Made properties nonatomic. [ADDED] Support for facebook, twitter and google+ sharing.
This commit is contained in:
145
External/google-plus-ios-sdk/SampleCode/GooglePlusSampleShareViewController.m
vendored
Normal file
145
External/google-plus-ios-sdk/SampleCode/GooglePlusSampleShareViewController.m
vendored
Normal file
@@ -0,0 +1,145 @@
|
||||
//
|
||||
// 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
|
||||
Reference in New Issue
Block a user