Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds support for Branch.io #91

Open
wants to merge 52 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
0109a9f
Update demo app for demo.
jaredsinclair Apr 3, 2014
52b85e1
Update demo.
jaredsinclair Apr 3, 2014
87593a9
Tweak demo.
jaredsinclair Apr 7, 2014
5681b59
Set Version 1.0.0
Jan 21, 2015
ba0881d
Adds Branch dependency in podspec
Jan 21, 2015
7b5953a
Adds Branch SDK Submodule
Jan 21, 2015
004671c
Adds Branch iOS SDK to Workspace
Jan 21, 2015
0cdab37
Adds Branch API Key in plist
Jan 21, 2015
658e5d6
Calls initSession in app delegate
Jan 21, 2015
0cc6e8c
Add link to branch read
Jan 21, 2015
c172517
Update README.md for Branch info
Jan 21, 2015
41cea98
Conditional initiation of Branch SDK
Jan 21, 2015
1c4c5cb
Initial logic for URL processing
Jan 22, 2015
62267d8
Make sure Branch link routing always runs
Jan 22, 2015
f46e8fb
No need to check for key, getInstance does this
Jan 22, 2015
a2d1573
Returns branch URLs with defaults
Jan 22, 2015
1f1aa56
Remove junk method in OSKShareableContentItem
Jan 22, 2015
bc7bcfc
Default branch links functional
Jan 22, 2015
524dc94
Refactors default branch links to fix callback bug
Jan 23, 2015
11312cb
Sets up updating URLs within twitter, etc strings
Jan 23, 2015
12a2141
URLs in microblog and text form work
Jan 23, 2015
1796df4
Stubs out processing strings for URLs
Jan 23, 2015
444861a
Fixes reference to block self in callback block
Jan 23, 2015
1182bb3
Stubs out Channel array
Jan 23, 2015
b0e4ce9
Comments out iOS and android URLs
Jan 23, 2015
5858214
Fixes email subject line
scotthasbrouck Jan 23, 2015
eb7dc25
Adds comments for OG tags
Jan 23, 2015
e93a46b
Merge branch 'patch-1' of github.com:scotthasbrouck/overshare-kit int…
Jan 23, 2015
5ab2f6b
Adds Branch tracking tags extension to OSK
Jan 23, 2015
f5144cc
Adds Branch params argument to OSK
Jan 23, 2015
7498c6e
Remove campaign argument
Jan 23, 2015
b5ea3c0
Extends OSK for just deep links
Jan 23, 2015
8cea158
Extends OSK content with Branch Stage
Jan 23, 2015
a387b16
Adds examples of Branch stage implementation
Jan 23, 2015
daa6b8c
Extends OSK for Branch Feature argument
Jan 23, 2015
5d2e794
Adds commenting and final example OSK content
Jan 23, 2015
8862470
Moves Branch methods to end
Jan 23, 2015
13834e6
Adds OSK Content URL Methods
Jan 23, 2015
888ffe7
Initial instructions in README
scotthasbrouck Jan 23, 2015
11e04aa
Expand init and register deep link steps for Branch
scotthasbrouck Jan 26, 2015
4112970
Completes comments and code cleanup
Jan 26, 2015
75d9fb4
Merge branch 'demo' of https://github.com/overshare/overshare-kit int…
Jan 26, 2015
1a3ba31
Adds Branch Links section
scotthasbrouck Jan 26, 2015
2592c7d
Adds README on OSK content Branch extensions
scotthasbrouck Jan 26, 2015
20b8107
Adds directions for setting Branch Identity
scotthasbrouck Jan 26, 2015
694fd2c
Cleans up code samples for Branch
scotthasbrouck Jan 26, 2015
c3c5347
Cleans up Branch Setup code examples in Readme
scotthasbrouck Jan 26, 2015
e357857
Implements userCompletedAction
Jan 26, 2015
956ad5a
Merge branch 'Branch-Integration' of https://github.com/BranchMetrics…
Jan 26, 2015
c0d6baa
Adds instructions for Branch events
scotthasbrouck Jan 26, 2015
c0e041f
Updates all submodules
Jan 27, 2015
f2eaee7
Updating Podspec for fork
May 8, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@
[submodule "ADNLogin-SDK-iOS"]
path = Dependencies/ADNLogin-SDK
url = https://github.com/appdotnet/ADNLogin-SDK-iOS.git
[submodule "Dependencies/Branch-iOS-SDK"]
path = Dependencies/Branch-iOS-SDK
url = https://github.com/BranchMetrics/Branch-iOS-SDK
1 change: 1 addition & 0 deletions Dependencies/Branch-iOS-SDK
Submodule Branch-iOS-SDK added at 2b808c
24 changes: 24 additions & 0 deletions Overshare Kit/OSKPresentationManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@
#import "UIViewController+OSKUtilities.h"
#import "UIColor+OSKUtility.h"

// --- Branch ---
#import "Branch.h"

NSString * const OSKPresentationOption_ActivityCompletionHandler = @"OSKPresentationOption_ActivityCompletionHandler";
NSString * const OSKPresentationOption_PresentationEndingHandler = @"OSKPresentationOption_PresentationEndingHandler";

Expand Down Expand Up @@ -374,6 +377,11 @@ - (void)tearDownShadowView {

- (void)activitySheet:(OSKActivitySheetViewController *)viewController didSelectActivity:(OSKActivity *)activity {

// --- Branch ---
// Registers that user clicked the share button in the app
Branch *branch = [Branch getInstance];
[branch userCompletedAction:@"click_share"];

[self _proceedWithSession:viewController.session
selectedActivity:activity
presentingViewController:self.presentingViewController
Expand Down Expand Up @@ -1159,6 +1167,17 @@ - (void)sessionControllerDidBeginPerformingActivity:(OSKSessionController *)cont

- (void)sessionControllerDidFinish:(OSKSessionController *)controller successful:(BOOL)successful error:(NSError *)error {


// --- Branch ---
// Registers if the user was successful or not in sharing
Branch *branch = [Branch getInstance];
if (successful) {
[branch userCompletedAction:@"successful_share"];
} else {
[branch userCompletedAction:@"failed_share"];
}


OSKSession *session = controller.session;
OSKActivity *selectedActivity = controller.activity;

Expand Down Expand Up @@ -1193,6 +1212,11 @@ - (void)sessionControllerDidCancel:(OSKSessionController *)controller {
no need to dismiss it.
*/

// --- Branch ---
// Registers that user cancelled the share
Branch *branch = [Branch getInstance];
[branch userCompletedAction:@"cancelled_share"];

if ([self isPresenting] == NO) {
// Don't perform the presentation ending block unless the activity sheet
// has already been dismissed. E.g., on iPad, the session controller
Expand Down
242 changes: 242 additions & 0 deletions Overshare Kit/OSKShareableContent.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,26 @@ These can be custom items, or additional instances of the official items above.
*/
@property (copy, nonatomic) NSString *title;


// ========== Branch ==========

@property (strong, nonatomic) NSMutableArray *channelsToProcessToBranch;

@property (strong, nonatomic) NSMutableArray *channelsWithStringsToProcessToBranch;

@property (strong, nonatomic) NSString *urlToProcessToBranch;

@property (strong, nonatomic) NSArray *branchTags;

@property (strong, nonatomic) NSString *branchFeature;

@property (strong, nonatomic) NSString *branchStage;

@property (strong, nonatomic) NSDictionary *branchParams;

@property (strong, nonatomic) NSDictionary *branchOGTags;

// ========== End Branch ==========
@end

/// -----------------------------------------
Expand All @@ -155,6 +175,90 @@ These can be custom items, or additional instances of the official items above.
*/
+ (instancetype)contentFromURL:(NSURL *)url;

// ========== Branch ==========
/**
Branch extensions to convenient constructors for links
*/

// All Branch Arguments: Tracking, Deep link params, Stage, and Feature
+ (instancetype)contentFromURL:(NSURL *)url
branchTrackingTags:(NSArray *)branchTrackingTags
branchParams:(NSDictionary *)branchParams
branchStage:(NSString *)branchStage
branchFeature:(NSString *)branchFeature;

// Tracking tags
+ (instancetype)contentFromURL:(NSURL *)url
branchTrackingTags:(NSArray *)branchTrackingTags;

// Tracking Tags, Deep link params
+ (instancetype)contentFromURL:(NSURL *)url
branchTrackingTags:(NSArray *)branchTrackingTags
branchParams:(NSDictionary *)branchPrams;

// Deep link params
+ (instancetype)contentFromURL:(NSURL *)url
branchParams:(NSDictionary *)branchPrams;

// Tracking Tags, Deep link params, Stage
+ (instancetype)contentFromURL:(NSURL *)url
branchTrackingTags:(NSArray *)branchTrackingTags
branchParams:(NSDictionary *)branchPrams
branchStage:(NSString *)branchStage;

// Deep link params, Stage
+ (instancetype)contentFromURL:(NSURL *)url
branchParams:(NSDictionary *)branchPrams
branchStage:(NSString *)branchStage;

// Tracking Tags, Stage
+ (instancetype)contentFromURL:(NSURL *)url
branchTrackingTags:(NSArray *)branchTrackingTags
branchStage:(NSString *)branchStage;

// Stage
+ (instancetype)contentFromURL:(NSURL *)url
branchStage:(NSString *)branchStage;

// Tracking tags, Deep link params, and Feature
+ (instancetype)contentFromURL:(NSURL *)url
branchTrackingTags:(NSArray *)branchTrackingTags
branchParams:(NSDictionary *)branchParams
branchFeature:(NSString *)branchFeature;

// Tracking tags, Stage, and Feature
+ (instancetype)contentFromURL:(NSURL *)url
branchTrackingTags:(NSArray *)branchTrackingTags
branchStage:(NSString *)branchStage
branchFeature:(NSString *)branchFeature;

// Deep link params, Stage and Feature
+ (instancetype)contentFromURL:(NSURL *)url
branchParams:(NSDictionary *)branchParams
branchStage:(NSString *)branchStage
branchFeature:(NSString *)branchFeature;

// Deep link params and Feature
+ (instancetype)contentFromURL:(NSURL *)url
branchParams:(NSDictionary *)branchParams
branchFeature:(NSString *)branchFeature;

// Stage and Feature
+ (instancetype)contentFromURL:(NSURL *)url
branchStage:(NSString *)branchStage
branchFeature:(NSString *)branchFeature;

// Tracking tags and Feature
+ (instancetype)contentFromURL:(NSURL *)url
branchTrackingTags:(NSArray *)branchTrackingTags
branchFeature:(NSString *)branchFeature;

// Feature
+ (instancetype)contentFromURL:(NSURL *)url
branchFeature:(NSString *)branchFeature;

// ========== End Branch ==========

/**
Convenient constructor for content drawn from microblog posts (like Twitter or App.net).
*/
Expand All @@ -163,12 +267,150 @@ These can be custom items, or additional instances of the official items above.
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images;

// ========== Branch ==========
/**
Branch extensions to convenient constructors for microblog posts
*/

// All Branch Arguments: Tracking, Deep link params, Stage, and Feature
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchTrackingTags:(NSArray *)branchTrackingTags
branchParams:(NSDictionary *)branchParams
branchStage:(NSString *)branchStage
branchFeature:(NSString *)branchFeature;

// Tracking tags
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchTrackingTags:(NSArray *)branchTrackingTags;

// Tracking Tags, Deep link params
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchTrackingTags:(NSArray *)branchTrackingTags
branchParams:(NSDictionary *)branchPrams;

// Deep link params
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchParams:(NSDictionary *)branchPrams;

// Tracking Tags, Deep link params, Stage
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchTrackingTags:(NSArray *)branchTrackingTags
branchParams:(NSDictionary *)branchPrams
branchStage:(NSString *)branchStage;

// Deep link params, Stage
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchParams:(NSDictionary *)branchPrams
branchStage:(NSString *)branchStage;

// Tracking Tags, Stage
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchTrackingTags:(NSArray *)branchTrackingTags
branchStage:(NSString *)branchStage;

// Stage
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchStage:(NSString *)branchStage;

// Tracking tags, Deep link params, and Feature
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchTrackingTags:(NSArray *)branchTrackingTags
branchParams:(NSDictionary *)branchParams
branchFeature:(NSString *)branchFeature;

// Tracking tags, Stage, and Feature
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchTrackingTags:(NSArray *)branchTrackingTags
branchStage:(NSString *)branchStage
branchFeature:(NSString *)branchFeature;

// Deep link params, Stage and Feature
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchParams:(NSDictionary *)branchParams
branchStage:(NSString *)branchStage
branchFeature:(NSString *)branchFeature;

// Deep link params and Feature
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchParams:(NSDictionary *)branchParams
branchFeature:(NSString *)branchFeature;

// Stage and Feature
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchStage:(NSString *)branchStage
branchFeature:(NSString *)branchFeature;

// Tracking tags and Feature
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchTrackingTags:(NSArray *)branchTrackingTags
branchFeature:(NSString *)branchFeature;

// Feature
+ (instancetype)contentFromMicroblogPost:(NSString *)text
authorName:(NSString *)authorName
canonicalURL:(NSString *)canonicalURL
images:(NSArray *)images
branchFeature:(NSString *)branchFeature;

// ========== End Branch ==========

/**
Convenient constructor for sharing one or more images with a common caption.
*/
+ (instancetype)contentFromImages:(NSArray *)images
caption:(NSString *)caption;

// ========== Branch ==========

/**
Processes URLs in all Content Items and replaces with Branch URLs
*/
- (void)processURLsForBranch;

// ========== Branch ==========

@end


Expand Down