From 5137c9abf14e4b37b6e72eb1ebeba5c6f878bb64 Mon Sep 17 00:00:00 2001 From: Vikentiy Meretin Date: Mon, 12 Apr 2021 20:29:37 +0400 Subject: [PATCH 1/3] [google_sign_in] Fix "pick account" on iOS #48602 --- .../google_sign_in/google_sign_in/CHANGELOG.md | 4 ++++ .../ios/Classes/FLTGoogleSignInPlugin.m | 6 +++++- .../ios/Tests/GoogleSignInPluginTest.m | 17 +++++++++++++++++ .../google_sign_in/google_sign_in/pubspec.yaml | 2 +- 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md index 429b07b47472..000b81571ca5 100644 --- a/packages/google_sign_in/google_sign_in/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.0 + +* Fix flutter/flutter#48602 iOS flow shows account selection, if user is signed in to Google on the device. + ## 5.0.1 * Update platforms `init` function to prioritize `clientId` property when available; diff --git a/packages/google_sign_in/google_sign_in/ios/Classes/FLTGoogleSignInPlugin.m b/packages/google_sign_in/google_sign_in/ios/Classes/FLTGoogleSignInPlugin.m index 757578bb3a50..578f64d5a41c 100644 --- a/packages/google_sign_in/google_sign_in/ios/Classes/FLTGoogleSignInPlugin.m +++ b/packages/google_sign_in/google_sign_in/ios/Classes/FLTGoogleSignInPlugin.m @@ -88,7 +88,11 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result [GIDSignIn sharedInstance].serverClientID = plist[kServerClientIdKey]; [GIDSignIn sharedInstance].scopes = call.arguments[@"scopes"]; - [GIDSignIn sharedInstance].hostedDomain = call.arguments[@"hostedDomain"]; + if (call.arguments[@"hostedDomain"] == [NSNull null]) { + [GIDSignIn sharedInstance].hostedDomain = nil; + } else { + [GIDSignIn sharedInstance].hostedDomain = call.arguments[@"hostedDomain"]; + } result(nil); } else { result([FlutterError errorWithCode:@"missing-config" diff --git a/packages/google_sign_in/google_sign_in/ios/Tests/GoogleSignInPluginTest.m b/packages/google_sign_in/google_sign_in/ios/Tests/GoogleSignInPluginTest.m index adbf61326c8d..2c67e9ec553d 100644 --- a/packages/google_sign_in/google_sign_in/ios/Tests/GoogleSignInPluginTest.m +++ b/packages/google_sign_in/google_sign_in/ios/Tests/GoogleSignInPluginTest.m @@ -153,4 +153,21 @@ - (void)testRequestScopesReturnsTrueIfGranted { XCTAssertTrue([result boolValue]); } +- (void)testHostedDomainIfMissed { + FlutterMethodCall *methodCall = + [FlutterMethodCall methodCallWithMethodName:@"init" + arguments:@{ + @"signInOption" : @"SignInOption.standard"}, + @"hostedDomain" : [NSNull null], + ]; + + XCTestExpectation *expectation = [self expectationWithDescription:@"expect hostedDomain equals nil"]; + [self.plugin handleMethodCall:methodCall + result:^(id r) { + [expectation fulfill]; + }]; + [self waitForExpectations:@[ expectation ] timeout:5]; + XCTAssertTrue([self.mockSharedInstance.hostedDomain == nil]); +} + @end diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml index 1184d0f9af25..b16d67d4bbbf 100644 --- a/packages/google_sign_in/google_sign_in/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in/pubspec.yaml @@ -2,7 +2,7 @@ name: google_sign_in description: Flutter plugin for Google Sign-In, a secure authentication system for signing in with a Google account on Android and iOS. homepage: https://github.com/flutter/plugins/tree/master/packages/google_sign_in/google_sign_in -version: 5.0.1 +version: 5.1.0 flutter: plugin: From 6f7a957eecc08f2dc13f43a0844d864b11f974b7 Mon Sep 17 00:00:00 2001 From: Vikentiy Meretin Date: Tue, 13 Apr 2021 02:24:24 +0400 Subject: [PATCH 2/3] fix formatting --- .../google_sign_in/ios/Tests/GoogleSignInPluginTest.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/google_sign_in/google_sign_in/ios/Tests/GoogleSignInPluginTest.m b/packages/google_sign_in/google_sign_in/ios/Tests/GoogleSignInPluginTest.m index 2c67e9ec553d..0affe69280c0 100644 --- a/packages/google_sign_in/google_sign_in/ios/Tests/GoogleSignInPluginTest.m +++ b/packages/google_sign_in/google_sign_in/ios/Tests/GoogleSignInPluginTest.m @@ -157,11 +157,12 @@ - (void)testHostedDomainIfMissed { FlutterMethodCall *methodCall = [FlutterMethodCall methodCallWithMethodName:@"init" arguments:@{ - @"signInOption" : @"SignInOption.standard"}, - @"hostedDomain" : [NSNull null], - ]; + @"signInOption" : @"SignInOption.standard", + @"hostedDomain" : [NSNull null], + }]; - XCTestExpectation *expectation = [self expectationWithDescription:@"expect hostedDomain equals nil"]; + XCTestExpectation *expectation = + [self expectationWithDescription:@"expect hostedDomain equals nil"]; [self.plugin handleMethodCall:methodCall result:^(id r) { [expectation fulfill]; From 27d21a6ccbb8c9c4a8b50486006c7efd2287c6c0 Mon Sep 17 00:00:00 2001 From: vmeretin Date: Tue, 13 Apr 2021 21:50:17 +0400 Subject: [PATCH 3/3] Fix version name Co-authored-by: Chris Yang --- packages/google_sign_in/google_sign_in/CHANGELOG.md | 2 +- packages/google_sign_in/google_sign_in/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md index 000b81571ca5..4e8ed80cba9c 100644 --- a/packages/google_sign_in/google_sign_in/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md @@ -1,4 +1,4 @@ -## 5.1.0 +## 5.0.2 * Fix flutter/flutter#48602 iOS flow shows account selection, if user is signed in to Google on the device. diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml index b16d67d4bbbf..edcd6e8f8017 100644 --- a/packages/google_sign_in/google_sign_in/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in/pubspec.yaml @@ -2,7 +2,7 @@ name: google_sign_in description: Flutter plugin for Google Sign-In, a secure authentication system for signing in with a Google account on Android and iOS. homepage: https://github.com/flutter/plugins/tree/master/packages/google_sign_in/google_sign_in -version: 5.1.0 +version: 5.0.2 flutter: plugin: