diff --git a/FirebaseOAuthUI/Sources/FUIOAuth.m b/FirebaseOAuthUI/Sources/FUIOAuth.m index 6bb50ca24db..148bd9e2a88 100644 --- a/FirebaseOAuthUI/Sources/FUIOAuth.m +++ b/FirebaseOAuthUI/Sources/FUIOAuth.m @@ -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" @@ -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" @@ -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]; @@ -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" diff --git a/FirebaseOAuthUI/Sources/Public/FirebaseOAuthUI/FUIOAuth.h b/FirebaseOAuthUI/Sources/Public/FirebaseOAuthUI/FUIOAuth.h index baf6d990b08..79951516d17 100644 --- a/FirebaseOAuthUI/Sources/Public/FirebaseOAuthUI/FUIOAuth.h +++ b/FirebaseOAuthUI/Sources/Public/FirebaseOAuthUI/FUIOAuth.h @@ -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