mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-31 21:41:33 +00:00
164 lines
5.8 KiB
Objective-C
Executable file
164 lines
5.8 KiB
Objective-C
Executable file
//
|
|
// OSKActivity.m
|
|
// Overshare
|
|
//
|
|
//
|
|
// Copyright (c) 2013 Overshare Kit. All rights reserved.
|
|
//
|
|
|
|
#import "OSKActivity.h"
|
|
|
|
#import "OSKActivitiesManager.h"
|
|
#import "OSKApplicationCredential.h"
|
|
|
|
// ACTIVITY OPTIONS
|
|
NSString * const OSKActivityOption_ExcludedTypes = @"OSKActivityOption_ExcludedTypes";
|
|
NSString * const OSKActivityOption_BespokeActivities = @"OSKActivityOption_BespokeActivities";
|
|
NSString * const OSKActivityOption_RequireOperations = @"OSKActivityOption_RequireOperations";
|
|
|
|
// ACTIVITY TYPES
|
|
NSString * const OSKActivityType_iOS_Twitter = @"OSKActivityType_iOS_Twitter";
|
|
NSString * const OSKActivityType_iOS_Facebook = @"OSKActivityType_iOS_Facebook";
|
|
NSString * const OSKActivityType_iOS_Safari = @"OSKActivityType_iOS_Safari";
|
|
NSString * const OSKActivityType_iOS_SMS = @"OSKActivityType_iOS_SMS";
|
|
NSString * const OSKActivityType_iOS_Email = @"OSKActivityType_iOS_Email";
|
|
NSString * const OSKActivityType_iOS_CopyToPasteboard = @"OSKActivityType_iOS_CopyToPasteboard";
|
|
NSString * const OSKActivityType_iOS_AirDrop = @"OSKActivityType_iOS_AirDrop";
|
|
NSString * const OSKActivityType_iOS_ReadingList = @"OSKActivityType_iOS_ReadingList";
|
|
NSString * const OSKActivityType_iOS_SaveToCameraRoll = @"OSKActivityType_iOS_SaveToCameraRoll";
|
|
NSString * const OSKActivityType_API_AppDotNet = @"OSKActivityType_API_AppDotNet";
|
|
NSString * const OSKActivityType_API_500Pixels = @"OSKActivityType_API_500Pixels";
|
|
NSString * const OSKActivityType_API_Instapaper = @"OSKActivityType_API_Instapaper";
|
|
NSString * const OSKActivityType_API_Readability = @"OSKActivityType_API_Readability";
|
|
NSString * const OSKActivityType_API_Pocket = @"OSKActivityType_API_Pocket";
|
|
NSString * const OSKActivityType_API_Pinboard = @"OSKActivityType_API_Pinboard";
|
|
NSString * const OSKActivityType_API_GooglePlus = @"OSKActivityType_API_GooglePlus";
|
|
NSString * const OSKActivityType_URLScheme_Instagram = @"OSKActivityType_URLScheme_Instagram";
|
|
NSString * const OSKActivityType_URLScheme_Riposte = @"OSKActivityType_URLScheme_Riposte";
|
|
NSString * const OSKActivityType_URLScheme_Tweetbot = @"OSKActivityType_URLScheme_Tweetbot";
|
|
NSString * const OSKActivityType_URLScheme_1Password_Search = @"OSKActivityType_URLScheme_1Password_Search";
|
|
NSString * const OSKActivityType_URLScheme_1Password_Browser = @"OSKActivityType_URLScheme_1Password_Browser";
|
|
NSString * const OSKActivityType_URLScheme_Chrome = @"OSKActivityType_URLScheme_Chrome";
|
|
NSString * const OSKActivityType_URLScheme_Omnifocus = @"OSKActivityType_URLScheme_Omnifocus";
|
|
NSString * const OSKActivityType_URLScheme_Things = @"OSKActivityType_URLScheme_Things";
|
|
NSString * const OSKActivityType_URLScheme_Drafts = @"OSKActivityType_URLScheme_Drafts";
|
|
NSString * const OSKActivityType_SDK_Pocket = @"OSKActivityType_SDK_Pocket";
|
|
|
|
@interface OSKActivity ()
|
|
|
|
@property (strong, nonatomic, readonly) OSKActivitiesManager *manager;
|
|
@property (strong, nonatomic, readwrite) OSKShareableContentItem *contentItem;
|
|
|
|
@end
|
|
|
|
@implementation OSKActivity
|
|
|
|
@synthesize manager = _manager;
|
|
|
|
#pragma mark - Initialization
|
|
|
|
- (instancetype)initWithContentItem:(OSKShareableContentItem *)item {
|
|
self = [super init];
|
|
if (self) {
|
|
_contentItem = item;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
#pragma mark - Do Not Override
|
|
|
|
+ (OSKApplicationCredential *)applicationCredential {
|
|
return [[OSKActivitiesManager sharedInstance] applicationCredentialForActivityType:[self activityType]];
|
|
}
|
|
|
|
- (OSKActivitiesManager *)manager {
|
|
if (_manager == nil) {
|
|
_manager = [OSKActivitiesManager sharedInstance];
|
|
}
|
|
return _manager;
|
|
}
|
|
|
|
- (BOOL)requiresPurchase {
|
|
return [self.manager activityTypeRequiresPurchase:[self.class activityType]];
|
|
}
|
|
|
|
- (BOOL)isAlreadyPurchased {
|
|
return [self.manager activityTypeIsPurchased:[self.class activityType]];
|
|
}
|
|
|
|
#pragma mark - Methods for Subclasses
|
|
|
|
+ (NSString *)supportedContentItemType {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `supportedContentItemType` without calling super.");
|
|
return nil;
|
|
}
|
|
|
|
+ (BOOL)isAvailable {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `isAvailable` without calling super.");
|
|
return NO;
|
|
}
|
|
|
|
+ (NSString *)activityType {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `activityType` without calling super.");
|
|
return nil;
|
|
}
|
|
|
|
+ (NSString *)activityName {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `activityName` without calling super.");
|
|
return nil;
|
|
}
|
|
|
|
+ (UIImage *)iconForIdiom:(UIUserInterfaceIdiom)idiom {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `iconForIdiom:` without calling super.");
|
|
return nil;
|
|
}
|
|
|
|
+ (UIImage *)settingsIcon {
|
|
// Optional
|
|
return nil;
|
|
}
|
|
|
|
+ (OSKAuthenticationMethod)authenticationMethod {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `authenticationMethod` without calling super.");
|
|
return OSKAuthenticationMethod_None;
|
|
}
|
|
|
|
+ (BOOL)requiresApplicationCredential {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `requiresApplicationCredential` without calling super.");
|
|
return NO;
|
|
}
|
|
|
|
+ (OSKPublishingMethod)publishingMethod {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `usesPublishingViewController` without calling super.");
|
|
return OSKPublishingMethod_None;
|
|
}
|
|
|
|
- (BOOL)isReadyToPerform {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `isReadyToPerform` without calling super.");
|
|
return NO;
|
|
}
|
|
|
|
- (void)performActivity:(OSKActivityCompletionHandler)completion {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `performActivity:` without calling super.");
|
|
}
|
|
|
|
+ (BOOL)canPerformViaOperation {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `canPerformViaOperation` without calling super.");
|
|
return NO;
|
|
}
|
|
|
|
- (OSKActivityOperation *)operationForActivityWithCompletion:(OSKActivityCompletionHandler)completion {
|
|
NSAssert(NO, @"OSKActivity subclasses must override `operationForActivityWithCompletion:` without calling super.");
|
|
return nil;
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|