Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ iOS 6 introduced the "share sheet"—a simple native interface to launch actions
// init Readability activity
ReadabilityActivity *rdb = [[ReadabilityActivity alloc] init];

// set up activity item / action. url is a NSURL
NSArray *activityItems = @[ReadabilityActivityAdd, url];
NSURL *url = [NSURL URLWithSting:@"http://example.com"];

// set up activity item / action
NSArray *activityItems = @[url];

// init share sheet with app-specific activity
UIActivityViewController *shareSheet = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:@[rdb]];
Expand Down
3 changes: 0 additions & 3 deletions ReadabilityActivity.h
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@

#import <UIKit/UIKit.h>

extern NSString * const ReadabilityActivityURI;
extern NSString * const ReadabilityActivityAdd;

@interface ReadabilityActivity : UIActivity
{
@private NSArray *_activityItems;
Expand Down
45 changes: 25 additions & 20 deletions ReadabilityActivity.m
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

#import "ReadabilityActivity.h"

NSString * const ReadabilityActivityURI = @"readability://";
NSString * const ReadabilityActivityAdd = @"add";
static NSString * const ReadabilityActivityURI = @"readability://";
static NSString * const ReadabilityActivityAdd = @"add";

@implementation ReadabilityActivity

Expand All @@ -22,10 +22,8 @@ - (NSString *)activityTitle
return @"Readability";
}

- (UIImage *)activityImage
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
- (UIImage *)activityImage {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return [UIImage imageNamed:@"Readability-activity-iPad"];
}

Expand All @@ -34,6 +32,14 @@ - (UIImage *)activityImage

- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems
{
if (![ReadabilityActivity canPerformActivity]) {
return NO;
}
for (NSObject *item in activityItems) {
if (![item isKindOfClass:[NSURL class]] && ![item isKindOfClass:[NSString class]]) {
return NO;
}
}
return YES;
}

Expand All @@ -42,28 +48,27 @@ - (void)prepareWithActivityItems:(NSArray *)activityItems
_activityItems = activityItems;
}

- (void)performActivity
{
if ([ReadabilityActivity canPerformActivity])
{
NSString *activityAction = _activityItems[0];
NSURL *activityURL = _activityItems[1];
- (void)performActivity {
if ([ReadabilityActivity canPerformActivity]){
NSString *activityURL = nil;

NSString *readabilityURLString = [NSString stringWithFormat:@"%@%@/%@", ReadabilityActivityURI, activityAction, [activityURL absoluteString]];
NSURL *readabilityURL = [NSURL URLWithString:readabilityURLString];
if([_activityItems[0] isKindOfClass:[NSURL class]]) {
activityURL = [_activityItems[0] absoluteString];

} else {
activityURL = _activityItems[0];
}

[[UIApplication sharedApplication] openURL:readabilityURL];
NSString *readabilityURLString = [NSString stringWithFormat:@"%@%@/%@", ReadabilityActivityURI, ReadabilityActivityAdd, activityURL];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:readabilityURLString]];
[self activityDidFinish:YES];
}
else
{
} else{
[self activityDidFinish:NO];
}
}

+ (BOOL)canPerformActivity
{
+ (BOOL)canPerformActivity {
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:ReadabilityActivityURI]])
{
return YES;
Expand Down