Skip to content
Merged
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
80 changes: 53 additions & 27 deletions FirebaseOAuthUI/Sources/FUIOAuth.m
Original file line number Diff line number Diff line change
Expand Up @@ -141,36 +141,49 @@ - (instancetype)initWithAuthUI:(FUIAuth *)authUI
}

+ (FUIOAuth *)twitterAuthProvider {
return [[FUIOAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]
providerID:@"twitter.com"
buttonLabelText:@"Sign in with Twitter"
shortName:@"Twitter"
buttonColor:[UIColor colorWithRed:71.0f/255.0f
green:154.0f/255.0f
blue:234.0f/255.0f
alpha:1.0f]
iconImage:[FUIAuthUtils imageNamed:@"ic_twitter"
fromBundle:[FUIOAuth bundle]]
scopes:@[@"user.readwrite"]
customParameters:@{@"prompt" : @"consent"}
loginHintKey:nil];
return [FUIOAuth twitterAuthProviderWithAuthUI:[FUIAuth defaultAuthUI]];
}

+ (FUIOAuth *)twitterAuthProviderWithAuthUI:(FUIAuth *)authUI {
return [[FUIOAuth alloc] initWithAuthUI:authUI
providerID:@"twitter.com"
buttonLabelText:@"Sign in with Twitter"
shortName:@"Twitter"
buttonColor:[UIColor colorWithRed:71.0f/255.0f
green:154.0f/255.0f
blue:234.0f/255.0f
alpha:1.0f]
iconImage:[FUIAuthUtils imageNamed:@"ic_twitter"
fromBundle:[FUIOAuth bundle]]
scopes:@[@"user.readwrite"]
customParameters:@{@"prompt" : @"consent"}
loginHintKey:nil];
}

+ (FUIOAuth *)githubAuthProvider {
return [[FUIOAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]
providerID:@"github.com"
buttonLabelText:@"Sign in with GitHub"
shortName:@"GitHub"
buttonColor:[UIColor colorWithRed:0.2 green:0.2 blue:0.2 alpha:1.0]
iconImage:[FUIAuthUtils imageNamed:@"ic_github"
fromBundle:[FUIOAuth bundle]]
scopes:nil
customParameters:nil
loginHintKey:nil];
return [FUIOAuth githubAuthProviderWithAuthUI:[FUIAuth defaultAuthUI]];
}

+ (FUIOAuth *)githubAuthProviderWithAuthUI:(FUIAuth *)authUI
{
return [[FUIOAuth alloc] initWithAuthUI:authUI
providerID:@"github.com"
buttonLabelText:@"Sign in with GitHub"
shortName:@"GitHub"
buttonColor:[UIColor colorWithRed:0.2 green:0.2 blue:0.2 alpha:1.0]
iconImage:[FUIAuthUtils imageNamed:@"ic_github"
fromBundle:[FUIOAuth bundle]]
scopes:nil
customParameters:nil
loginHintKey:nil];
}

+ (FUIOAuth *)microsoftAuthProvider {
return [[FUIOAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]
return [FUIOAuth microsoftAuthProviderWithAuthUI:[FUIAuth defaultAuthUI]];
}

+ (FUIOAuth *)microsoftAuthProviderWithAuthUI:(FUIAuth *)authUI {
return [[FUIOAuth alloc] initWithAuthUI:authUI
providerID:@"microsoft.com"
buttonLabelText:@"Sign in with Microsoft"
shortName:@"Microsoft"
Expand All @@ -183,7 +196,11 @@ + (FUIOAuth *)microsoftAuthProvider {
}

+ (FUIOAuth *)yahooAuthProvider {
return [[FUIOAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]
return [FUIOAuth yahooAuthProviderWithAuthUI:[FUIAuth defaultAuthUI]];
}

+ (FUIOAuth *)yahooAuthProviderWithAuthUI:(FUIAuth *)authUI {
return [[FUIOAuth alloc] initWithAuthUI:authUI
providerID:@"yahoo.com"
buttonLabelText:@"Sign in with Yahoo"
shortName:@"Yahoo"
Expand All @@ -196,11 +213,20 @@ + (FUIOAuth *)yahooAuthProvider {
}

+ (FUIOAuth *)appleAuthProvider {
return [FUIOAuth appleAuthProviderWithAuthUI:[FUIAuth defaultAuthUI]];
}

+ (FUIOAuth *)appleAuthProviderWithAuthUI:(FUIAuth *)authUI {
UIUserInterfaceStyle style = UITraitCollection.currentTraitCollection.userInterfaceStyle;
return [self appleAuthProviderWithUserInterfaceStyle:style];
return [self appleAuthProviderWithAuthUI:authUI userInterfaceStyle:style];
}

+ (FUIOAuth *)appleAuthProviderWithUserInterfaceStyle:(UIUserInterfaceStyle)userInterfaceStyle {
return [FUIOAuth appleAuthProviderWithAuthUI:[FUIAuth defaultAuthUI] userInterfaceStyle:userInterfaceStyle];
}

+ (FUIOAuth *)appleAuthProviderWithAuthUI:(FUIAuth *)authUI
userInterfaceStyle:(UIUserInterfaceStyle)userInterfaceStyle {
UIImage *iconImage = [FUIAuthUtils imageNamed:@"ic_apple"
fromBundle:[FUIOAuth bundle]];
UIColor *buttonColor = [UIColor blackColor];
Expand All @@ -216,7 +242,7 @@ + (FUIOAuth *)appleAuthProviderWithUserInterfaceStyle:(UIUserInterfaceStyle)user
} else {
iconImage = [iconImage imageWithTintColor:[UIColor whiteColor]];
}
FUIOAuth *provider = [[FUIOAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]
FUIOAuth *provider = [[FUIOAuth alloc] initWithAuthUI:authUI
providerID:@"apple.com"
buttonLabelText:@"Sign in with Apple"
shortName:@"Apple"
Expand Down
30 changes: 30 additions & 0 deletions FirebaseOAuthUI/Sources/Public/FirebaseOAuthUI/FUIOAuth.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,31 +73,61 @@ NS_ASSUME_NONNULL_BEGIN
*/
+ (FUIOAuth *)twitterAuthProvider;

/** @fn twitterAuthProvider
@brief Built-in OAuth provider for Twitter.
*/
+ (FUIOAuth *)twitterAuthProviderWithAuthUI:(FUIAuth *)authUI;

/** @fn githubAuthProvider
@brief Built-in OAuth provider for Github.
*/
+ (FUIOAuth *)githubAuthProvider;

/** @fn githubAuthProvider
@brief Built-in OAuth provider for Github.
*/
+ (FUIOAuth *)githubAuthProviderWithAuthUI:(FUIAuth *)authUI;

/** @fn microsoftAuthProvider
@brief Built-in OAuth provider for Microsoft.
*/
+ (FUIOAuth *)microsoftAuthProvider;

/** @fn microsoftAuthProvider
@brief Built-in OAuth provider for Microsoft.
*/
+ (FUIOAuth *)microsoftAuthProviderWithAuthUI:(FUIAuth *)authUI;

/** @fn yahooAuthProvider
@brief Built-in OAuth provider for Yahoo.
*/
+ (FUIOAuth *)yahooAuthProvider;

/** @fn yahooAuthProvider
@brief Built-in OAuth provider for Yahoo.
*/
+ (FUIOAuth *)yahooAuthProviderWithAuthUI:(FUIAuth *)authUI;

/** @fn appleAuthProvider
@brief Built-in OAuth provider for Apple.
*/
+ (FUIOAuth *)appleAuthProvider API_AVAILABLE(ios(13.0));

/** @fn appleAuthProvider
@brief Built-in OAuth provider for Apple.
*/
+ (FUIOAuth *)appleAuthProviderWithAuthUI:(FUIAuth *)authUI API_AVAILABLE(ios(13.0));

/** @fn appleAuthProvider
@brief Built-in OAuth provider with custom UserInterfaceStyle for Apple.
*/
+ (FUIOAuth *)appleAuthProviderWithUserInterfaceStyle:(UIUserInterfaceStyle)userInterfaceStyle API_AVAILABLE(ios(13.0));

/** @fn appleAuthProvider
@brief Built-in OAuth provider with custom UserInterfaceStyle for Apple.
*/
+ (FUIOAuth *)appleAuthProviderWithAuthUI:(FUIAuth *)authUI userInterfaceStyle:(UIUserInterfaceStyle)userInterfaceStyle API_AVAILABLE(ios(13.0));

@end

NS_ASSUME_NONNULL_END