Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.
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
4 changes: 4 additions & 0 deletions packages/firebase_auth/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.8.0+2

* Update Google sign-in example in the README.

## 0.8.0+1

* Update a broken dependency.
Expand Down
9 changes: 6 additions & 3 deletions packages/firebase_auth/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,15 @@ final FirebaseAuth _auth = FirebaseAuth.instance;
You can now use the Firebase `_auth` to authenticate in your Dart code, e.g.
```dart
Future<FirebaseUser> _handleSignIn() async {
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
FirebaseUser user = await _auth.signInWithGoogle(
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;

final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);

final FirebaseUser user = await _auth.signInWithCredential(credential);
print("signed in " + user.displayName);
return user;
}
Expand Down
2 changes: 1 addition & 1 deletion packages/firebase_auth/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Flutter plugin for Firebase Auth, enabling Android and iOS
like Google, Facebook and Twitter.
author: Flutter Team <[email protected]>
homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_auth
version: "0.8.0+1"
version: "0.8.0+2"

flutter:
plugin:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,4 @@ NS_ASSUME_NONNULL_BEGIN

@interface InAppPurchasePluginStub : InAppPurchasePlugin
@end

@interface SKPaymentTransactionStub : SKPaymentTransaction
- (instancetype)initWithMap:(NSDictionary *)map;
@end

@interface SKDownloadStub : SKDownload
- (instancetype)initWithMap:(NSDictionary *)map;
@end

@interface SKMutablePaymentStub : SKMutablePayment
- (instancetype)initWithMap:(NSDictionary *)map;
@end

@interface NSErrorStub : NSError
- (instancetype)initWithMap:(NSDictionary *)map;
@end

NS_ASSUME_NONNULL_END
Original file line number Diff line number Diff line change
Expand Up @@ -129,70 +129,3 @@ - (SKProductRequestStub *)getProductRequestWithIdentifiers:(NSSet *)identifiers
}

@end

@implementation SKPaymentTransactionStub

- (instancetype)initWithID:(NSString *)identifier {
self = [super init];
if (self) {
[self setValue:identifier forKey:@"transactionIdentifier"];
}
return self;
}

- (instancetype)initWithMap:(NSDictionary *)map {
self = [super init];
if (self) {
[self setValue:map[@"transactionIdentifier"] forKey:@"transactionIdentifier"];
[self setValue:map[@"transactionState"] forKey:@"transactionState"];
if (map[@"originalTransaction"] && !
[map[@"originalTransaction"] isKindOfClass:[NSNull class]]) {
[self setValue:[[SKPaymentTransactionStub alloc] initWithMap:map[@"originalTransaction"]]
forKey:@"originalTransaction"];
}
[self setValue:map[@"error"] ? [[NSErrorStub alloc] initWithMap:map[@"error"]] : [NSNull null]
forKey:@"error"];
[self setValue:[NSDate dateWithTimeIntervalSince1970:[map[@"transactionTimeStamp"] doubleValue]]
forKey:@"transactionDate"];
NSMutableArray *downloads = [NSMutableArray new];
for (NSDictionary *downloadMap in map[@"downloads"]) {
[downloads addObject:[[SKDownloadStub alloc] initWithMap:downloadMap]];
}
[self setValue:downloads forKey:@"downloads"];
}
return self;
}

@end

@implementation SKDownloadStub

- (instancetype)initWithMap:(NSDictionary *)map {
self = [super init];
if (self) {
[self setValue:map[@"state"] forKey:@"downloadState"];
[self setValue:map[@"contentIdentifier"] ?: [NSNull null] forKey:@"contentIdentifier"];
[self setValue:map[@"contentLength"] ?: [NSNull null] forKey:@"contentLength"];
[self setValue:[NSURL URLWithString:map[@"contentURL"]] ?: [NSNull null] forKey:@"contentURL"];
[self setValue:map[@"error"] ? [[NSErrorStub alloc] initWithMap:map[@"error"]] : [NSNull null]
forKey:@"error"];
[self setValue:map[@"progress"] ?: [NSNull null] forKey:@"progress"];
[self setValue:map[@"timeRemaining"] ?: [NSNull null] forKey:@"timeRemaining"];
[self setValue:[[SKPaymentTransactionStub alloc] initWithID:map[@"transactionID"]]
?: [NSNull null]
forKey:@"transaction"];
}
return self;
}

@end

@implementation NSErrorStub

- (instancetype)initWithMap:(NSDictionary *)map {
return [self initWithDomain:[map objectForKey:@"domain"]
code:[[map objectForKey:@"code"] integerValue]
userInfo:[map objectForKey:@"userInfo"]];
}

@end
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,6 @@ @interface TranslatorTest : XCTestCase
@property(strong, nonatomic) NSDictionary *discountMap;
@property(strong, nonatomic) NSDictionary *productMap;
@property(strong, nonatomic) NSDictionary *productResponseMap;
@property(strong, nonatomic) NSDictionary *downloadMap;
@property(strong, nonatomic) NSDictionary *paymentMap;
@property(strong, nonatomic) NSDictionary *transactionMap;
@property(strong, nonatomic) NSDictionary *errorMap;
@property(strong, nonatomic) NSDictionary *localeMap;

@end
Expand Down Expand Up @@ -46,72 +42,6 @@ - (void)setUp {
};
self.productResponseMap =
@{@"products" : @[ self.productMap ], @"invalidProductIdentifiers" : @[]};
self.downloadMap = @{
@"state" : @(0),
@"contentIdentifier" : [NSNull null],
@"contentLength" : @(2),
@"contentURL" : @"https://flutter.io",
@"contentVersion" : [NSNull null],
@"error" : [[NSError errorWithDomain:@"test_stub" code:123 userInfo:@{}] toMap],
@"progress" : @(0.5),
@"timeRemaining" : @(100),
@"downloadTimeUnKnown" : @(NO),
@"transactionID" : [NSNull null],
};
self.paymentMap = @{
@"productIdentifier" : @"123",
@"requestData" : @"abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefgh",
@"quantity" : @(2),
@"applicationUsername" : @"app user name",
@"simulatesAskToBuyInSandbox" : @(NO)
};
NSDictionary *originalTransactionMap = @{
@"transactionIdentifier" : @"567",
@"transactionState" : @(SKPaymentTransactionStatePurchasing),
@"payment" : [NSNull null],
@"error" : [[NSError errorWithDomain:@"test_stub" code:123 userInfo:@{}] toMap],
@"transactionTimeStamp" : @([NSDate date].timeIntervalSince1970),
@"originalTransaction" : [NSNull null],
@"downloads" : @[ @{
@"state" : @(0),
@"contentIdentifier" : [NSNull null],
@"contentLength" : @(2),
@"contentURL" : @"https://flutter.io",
@"contentVersion" : [NSNull null],
@"error" : [[NSError errorWithDomain:@"test_stub" code:123 userInfo:@{}] toMap],
@"progress" : @(0.5),
@"timeRemaining" : @(100),
@"downloadTimeUnKnown" : @(NO),
@"transactionID" : @"567",
} ]
};
self.transactionMap = @{
@"transactionIdentifier" : @"567",
@"transactionState" : @(SKPaymentTransactionStatePurchasing),
@"payment" : [NSNull null],
@"error" : [[NSError errorWithDomain:@"test_stub" code:123 userInfo:@{}] toMap],
@"transactionTimeStamp" : @([NSDate date].timeIntervalSince1970),
@"originalTransaction" : originalTransactionMap,
@"downloads" : @[ @{
@"state" : @(0),
@"contentIdentifier" : [NSNull null],
@"contentLength" : @(2),
@"contentURL" : @"https://flutter.io",
@"contentVersion" : [NSNull null],
@"error" : [[NSError errorWithDomain:@"test_stub" code:123 userInfo:@{}] toMap],
@"progress" : @(0.5),
@"timeRemaining" : @(100),
@"downloadTimeUnKnown" : @(NO),
@"transactionID" : @"567",
} ]
};
self.errorMap = @{
@"code" : @(123),
@"domain" : @"test_domain",
@"userInfo" : @{
@"key" : @"value",
}
};
}

- (void)testSKProductSubscriptionPeriodStubToMap {
Expand Down Expand Up @@ -140,34 +70,6 @@ - (void)testProductResponseToMap {
XCTAssertEqualObjects(map, self.productResponseMap);
}

- (void)testDownloadToMap {
// bug with state, downloadTimeUnKnown, transaction and contentIdentifer in KVC, cannot test these
// fields.
SKDownloadStub *download = [[SKDownloadStub alloc] initWithMap:self.downloadMap];
NSDictionary *map = [download toMap];
XCTAssertEqualObjects(map, self.downloadMap);
}

- (void)testPaymentToMap {
SKMutablePayment *payment = [[SKMutablePayment alloc] initWithMap:self.paymentMap];
NSDictionary *map = [payment toMap];
XCTAssertEqualObjects(map, self.paymentMap);
}

- (void)testPaymentTransactionToMap {
// payment is not KVC, cannot test payment field.
SKPaymentTransactionStub *paymentTransaction =
[[SKPaymentTransactionStub alloc] initWithMap:self.transactionMap];
NSDictionary *map = [paymentTransaction toMap];
XCTAssertEqualObjects(map, self.transactionMap);
}

- (void)testError {
NSErrorStub *error = [[NSErrorStub alloc] initWithMap:self.errorMap];
NSDictionary *map = [error toMap];
XCTAssertEqualObjects(map, self.errorMap);
}

- (void)testLocaleToMap {
NSLocale *system = NSLocale.systemLocale;
NSDictionary *map = [system toMap];
Expand Down
30 changes: 0 additions & 30 deletions packages/in_app_purchase/ios/Classes/FIAObjectTranslator.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,36 +31,6 @@ NS_ASSUME_NONNULL_BEGIN

@end

@interface SKPayment (Coder)

- (NSDictionary *)toMap;

@end

@interface SKMutablePayment (Coder)

- (instancetype)initWithMap:(NSDictionary *)map;

@end

@interface SKPaymentTransaction (Coder)

- (NSDictionary *)toMap;

@end

@interface SKDownload (Coder)

- (NSDictionary *)toMap;

@end

@interface NSError (Coder)

- (NSDictionary *)toMap;

@end

@interface NSLocale (Coder)

- (nullable NSDictionary *)toMap;
Expand Down
94 changes: 0 additions & 94 deletions packages/in_app_purchase/ios/Classes/FIAObjectTranslator.m
Original file line number Diff line number Diff line change
Expand Up @@ -80,25 +80,6 @@ - (NSDictionary *)toMap {

@end

@implementation SKPayment (Coder)

- (NSDictionary *)toMap {
NSMutableDictionary *map = [[NSMutableDictionary alloc] initWithDictionary:@{
@"productIdentifier" : self.productIdentifier ?: [NSNull null],
@"requestData" : self.requestData ? [[NSString alloc] initWithData:self.requestData
encoding:NSUTF8StringEncoding]
: [NSNull null],
@"quantity" : @(self.quantity),
@"applicationUsername" : self.applicationUsername ?: [NSNull null]
}];
if (@available(iOS 8.3, *)) {
[map setObject:@(self.simulatesAskToBuyInSandbox) forKey:@"simulatesAskToBuyInSandbox"];
}
return map;
}

@end

@implementation NSLocale (Coder)

- (nullable NSDictionary *)toMap {
Expand All @@ -109,78 +90,3 @@ - (nullable NSDictionary *)toMap {
}

@end

@implementation SKMutablePayment (Coder)

- (instancetype)initWithMap:(NSDictionary *)map {
self = [self init];
if (self) {
self.productIdentifier = map[@"productIdentifier"];
NSString *utf8String = map[@"requestData"];
self.requestData = [utf8String dataUsingEncoding:NSUTF8StringEncoding];
self.quantity = [map[@"quantity"] integerValue];
self.applicationUsername = map[@"applicationUsername"];
if (@available(iOS 8.3, *)) {
self.simulatesAskToBuyInSandbox = [map[@"simulatesAskToBuyInSandbox"] boolValue];
}
}
return self;
}

@end

@implementation SKPaymentTransaction (Coder)

- (NSDictionary *)toMap {
NSMutableDictionary *map = [[NSMutableDictionary alloc] initWithDictionary:@{
@"error" : [self.error toMap] ?: [NSNull null],
@"payment" : self.payment ? [self.payment toMap] : [NSNull null],
@"originalTransaction" : self.originalTransaction ? [self.originalTransaction toMap]
: [NSNull null],
@"transactionTimeStamp" : self.transactionDate ? @(self.transactionDate.timeIntervalSince1970)
: [NSNull null],
@"transactionIdentifier" : self.transactionIdentifier ?: [NSNull null],
@"transactionState" : @(self.transactionState)
}];
NSMutableArray *downloads = [NSMutableArray new];
for (SKDownload *download in self.downloads) {
[downloads addObject:[download toMap]];
}
[map setObject:downloads forKey:@"downloads"];
return map;
}

@end

@implementation SKDownload (Coder)

- (NSDictionary *)toMap {
NSMutableDictionary *map = [[NSMutableDictionary alloc] initWithDictionary:@{
@"contentLength" : @(self.contentLength),
@"contentIdentifier" : self.contentIdentifier ?: [NSNull null],
@"contentURL" : self.contentURL.absoluteString ?: [NSNull null],
@"contentVersion" : self.contentVersion ?: [NSNull null],
@"error" : [self.error toMap] ?: @{},
@"progress" : @(self.progress),
@"timeRemaining" : @(self.timeRemaining),
@"downloadTimeUnKnown" : @(self.timeRemaining == SKDownloadTimeRemainingUnknown),
@"transactionID" : self.transaction.transactionIdentifier ?: [NSNull null]
}];
if (@available(iOS 12.0, *)) {
[map setObject:@(self.state) forKey:@"state"];
} else {
[map setObject:@(self.downloadState) forKey:@"state"];
}
return map;
}

@end

@implementation NSError (Coder)

- (NSDictionary *)toMap {
return
@{@"code" : @(self.code), @"domain" : self.domain ?: @"", @"userInfo" : self.userInfo ?: @{}};
}

@end