mirror of
https://github.com/flutter/samples.git
synced 2026-05-18 04:48:02 +00:00
updated add_to_app sample to pigeon 1.0 (#894)
This commit is contained in:
@@ -103,7 +103,7 @@ class ViewController: UITableViewController, BKHostBookApi {
|
||||
let flutterViewController = FlutterViewController.init(
|
||||
engine: appDelegate.engine, nibName: nil, bundle: nil)
|
||||
self.editingIndex = index
|
||||
api.displayBookDetails(self.books[index]) { (error) in
|
||||
api.displayBookDetailsBook(self.books[index]) { (error) in
|
||||
if let error = error {
|
||||
print(error)
|
||||
}
|
||||
@@ -114,7 +114,7 @@ class ViewController: UITableViewController, BKHostBookApi {
|
||||
/**
|
||||
Called by Pigeon when the FlutterViewController is dismissed without accepting any edits.
|
||||
*/
|
||||
func cancel(_ error: AutoreleasingUnsafeMutablePointer<FlutterError?>) {
|
||||
func cancelWithError(_ error: AutoreleasingUnsafeMutablePointer<FlutterError?>) {
|
||||
self.editingIndex = -1
|
||||
self.dismiss(animated: true, completion: nil)
|
||||
}
|
||||
@@ -122,7 +122,7 @@ class ViewController: UITableViewController, BKHostBookApi {
|
||||
/**
|
||||
Called by Pigeon when edits to the book are accepted in the FlutterViewController.
|
||||
*/
|
||||
func finishEditing(_ input: BKBook, error: AutoreleasingUnsafeMutablePointer<FlutterError?>) {
|
||||
func finishEditingBook(_ input: BKBook, error: AutoreleasingUnsafeMutablePointer<FlutterError?>) {
|
||||
self.books[editingIndex] = input
|
||||
self.tableView.reloadData()
|
||||
self.editingIndex = -1
|
||||
|
||||
@@ -1,32 +1,49 @@
|
||||
// Autogenerated from Pigeon (v0.1.17), do not edit directly.
|
||||
// Autogenerated from Pigeon (v1.0.1), do not edit directly.
|
||||
// See also: https://pub.dev/packages/pigeon
|
||||
#import <Foundation/Foundation.h>
|
||||
@protocol FlutterBinaryMessenger;
|
||||
@protocol FlutterMessageCodec;
|
||||
@class FlutterError;
|
||||
@class FlutterStandardTypedData;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class BKBook;
|
||||
@class BKThumbnail;
|
||||
|
||||
@interface BKBook : NSObject
|
||||
@property(nonatomic, copy, nullable) NSString * title;
|
||||
@property(nonatomic, copy, nullable) NSString * subtitle;
|
||||
@property(nonatomic, copy, nullable) NSString * author;
|
||||
@property(nonatomic, copy, nullable) NSString * summary;
|
||||
@property(nonatomic, copy, nullable) NSString * publishDate;
|
||||
@property(nonatomic, strong, nullable) NSNumber * pageCount;
|
||||
@property(nonatomic, copy, nullable) NSString *title;
|
||||
@property(nonatomic, copy, nullable) NSString *subtitle;
|
||||
@property(nonatomic, copy, nullable) NSString *author;
|
||||
@property(nonatomic, copy, nullable) NSString *summary;
|
||||
@property(nonatomic, copy, nullable) NSString *publishDate;
|
||||
@property(nonatomic, strong, nullable) NSNumber *pageCount;
|
||||
@property(nonatomic, strong, nullable) BKThumbnail *thumbnail;
|
||||
@end
|
||||
|
||||
@interface BKThumbnail : NSObject
|
||||
@property(nonatomic, copy, nullable) NSString *url;
|
||||
@end
|
||||
|
||||
/// The codec used by BKFlutterBookApi.
|
||||
NSObject<FlutterMessageCodec> *BKFlutterBookApiGetCodec(void);
|
||||
|
||||
@interface BKFlutterBookApi : NSObject
|
||||
- (instancetype)initWithBinaryMessenger:(id<FlutterBinaryMessenger>)binaryMessenger;
|
||||
- (void)displayBookDetails:(BKBook*)input completion:(void(^)(NSError* _Nullable))completion;
|
||||
- (instancetype)initWithBinaryMessenger:
|
||||
(id<FlutterBinaryMessenger>)binaryMessenger;
|
||||
- (void)displayBookDetailsBook:(BKBook *)book
|
||||
completion:(void (^)(NSError *_Nullable))completion;
|
||||
@end
|
||||
/// The codec used by BKHostBookApi.
|
||||
NSObject<FlutterMessageCodec> *BKHostBookApiGetCodec(void);
|
||||
|
||||
@protocol BKHostBookApi
|
||||
-(void)cancel:(FlutterError *_Nullable *_Nonnull)error;
|
||||
-(void)finishEditingBook:(BKBook*)input error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
- (void)cancelWithError:(FlutterError *_Nullable *_Nonnull)error;
|
||||
- (void)finishEditingBookBook:(BKBook *)book
|
||||
error:(FlutterError *_Nullable *_Nonnull)error;
|
||||
@end
|
||||
|
||||
extern void BKHostBookApiSetup(id<FlutterBinaryMessenger> binaryMessenger, id<BKHostBookApi> _Nullable api);
|
||||
extern void BKHostBookApiSetup(id<FlutterBinaryMessenger> binaryMessenger,
|
||||
NSObject<BKHostBookApi> *_Nullable api);
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Autogenerated from Pigeon (v0.1.17), do not edit directly.
|
||||
// Autogenerated from Pigeon (v1.0.1), do not edit directly.
|
||||
// See also: https://pub.dev/packages/pigeon
|
||||
#import "api.h"
|
||||
#import <Flutter/Flutter.h>
|
||||
@@ -7,29 +7,34 @@
|
||||
#error File requires ARC to be enabled.
|
||||
#endif
|
||||
|
||||
static NSDictionary* wrapResult(NSDictionary *result, FlutterError *error) {
|
||||
static NSDictionary<NSString *, id> *wrapResult(id result,
|
||||
FlutterError *error) {
|
||||
NSDictionary *errorDict = (NSDictionary *)[NSNull null];
|
||||
if (error) {
|
||||
errorDict = [NSDictionary dictionaryWithObjectsAndKeys:
|
||||
(error.code ? error.code : [NSNull null]), @"code",
|
||||
(error.message ? error.message : [NSNull null]), @"message",
|
||||
(error.details ? error.details : [NSNull null]), @"details",
|
||||
nil];
|
||||
errorDict = @{
|
||||
@"code" : (error.code ? error.code : [NSNull null]),
|
||||
@"message" : (error.message ? error.message : [NSNull null]),
|
||||
@"details" : (error.details ? error.details : [NSNull null]),
|
||||
};
|
||||
}
|
||||
return [NSDictionary dictionaryWithObjectsAndKeys:
|
||||
(result ? result : [NSNull null]), @"result",
|
||||
errorDict, @"error",
|
||||
nil];
|
||||
return @{
|
||||
@"result" : (result ? result : [NSNull null]),
|
||||
@"error" : errorDict,
|
||||
};
|
||||
}
|
||||
|
||||
@interface BKBook ()
|
||||
+(BKBook*)fromMap:(NSDictionary*)dict;
|
||||
-(NSDictionary*)toMap;
|
||||
+ (BKBook *)fromMap:(NSDictionary *)dict;
|
||||
- (NSDictionary *)toMap;
|
||||
@end
|
||||
@interface BKThumbnail ()
|
||||
+ (BKThumbnail *)fromMap:(NSDictionary *)dict;
|
||||
- (NSDictionary *)toMap;
|
||||
@end
|
||||
|
||||
@implementation BKBook
|
||||
+(BKBook*)fromMap:(NSDictionary*)dict {
|
||||
BKBook* result = [[BKBook alloc] init];
|
||||
+ (BKBook *)fromMap:(NSDictionary *)dict {
|
||||
BKBook *result = [[BKBook alloc] init];
|
||||
result.title = dict[@"title"];
|
||||
if ((NSNull *)result.title == [NSNull null]) {
|
||||
result.title = nil;
|
||||
@@ -54,68 +59,210 @@ static NSDictionary* wrapResult(NSDictionary *result, FlutterError *error) {
|
||||
if ((NSNull *)result.pageCount == [NSNull null]) {
|
||||
result.pageCount = nil;
|
||||
}
|
||||
result.thumbnail = [BKThumbnail fromMap:dict[@"thumbnail"]];
|
||||
if ((NSNull *)result.thumbnail == [NSNull null]) {
|
||||
result.thumbnail = nil;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
-(NSDictionary*)toMap {
|
||||
return [NSDictionary dictionaryWithObjectsAndKeys:(self.title ? self.title : [NSNull null]), @"title", (self.subtitle ? self.subtitle : [NSNull null]), @"subtitle", (self.author ? self.author : [NSNull null]), @"author", (self.summary ? self.summary : [NSNull null]), @"summary", (self.publishDate ? self.publishDate : [NSNull null]), @"publishDate", (self.pageCount ? self.pageCount : [NSNull null]), @"pageCount", nil];
|
||||
- (NSDictionary *)toMap {
|
||||
return [NSDictionary
|
||||
dictionaryWithObjectsAndKeys:
|
||||
(self.title ? self.title : [NSNull null]), @"title",
|
||||
(self.subtitle ? self.subtitle : [NSNull null]), @"subtitle",
|
||||
(self.author ? self.author : [NSNull null]), @"author",
|
||||
(self.summary ? self.summary : [NSNull null]), @"summary",
|
||||
(self.publishDate ? self.publishDate : [NSNull null]), @"publishDate",
|
||||
(self.pageCount ? self.pageCount : [NSNull null]), @"pageCount",
|
||||
(self.thumbnail ? [self.thumbnail toMap] : [NSNull null]),
|
||||
@"thumbnail", nil];
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation BKThumbnail
|
||||
+ (BKThumbnail *)fromMap:(NSDictionary *)dict {
|
||||
BKThumbnail *result = [[BKThumbnail alloc] init];
|
||||
result.url = dict[@"url"];
|
||||
if ((NSNull *)result.url == [NSNull null]) {
|
||||
result.url = nil;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
- (NSDictionary *)toMap {
|
||||
return [NSDictionary
|
||||
dictionaryWithObjectsAndKeys:(self.url ? self.url : [NSNull null]),
|
||||
@"url", nil];
|
||||
}
|
||||
@end
|
||||
|
||||
@interface BKFlutterBookApiCodecReader : FlutterStandardReader
|
||||
@end
|
||||
@implementation BKFlutterBookApiCodecReader
|
||||
- (nullable id)readValueOfType:(UInt8)type {
|
||||
switch (type) {
|
||||
case 128:
|
||||
return [BKBook fromMap:[self readValue]];
|
||||
|
||||
default:
|
||||
return [super readValueOfType:type];
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
@interface BKFlutterBookApiCodecWriter : FlutterStandardWriter
|
||||
@end
|
||||
@implementation BKFlutterBookApiCodecWriter
|
||||
- (void)writeValue:(id)value {
|
||||
if ([value isKindOfClass:[BKBook class]]) {
|
||||
[self writeByte:128];
|
||||
[self writeValue:[value toMap]];
|
||||
} else {
|
||||
[super writeValue:value];
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
@interface BKFlutterBookApiCodecReaderWriter : FlutterStandardReaderWriter
|
||||
@end
|
||||
@implementation BKFlutterBookApiCodecReaderWriter
|
||||
- (FlutterStandardWriter *)writerWithData:(NSMutableData *)data {
|
||||
return [[BKFlutterBookApiCodecWriter alloc] initWithData:data];
|
||||
}
|
||||
- (FlutterStandardReader *)readerWithData:(NSData *)data {
|
||||
return [[BKFlutterBookApiCodecReader alloc] initWithData:data];
|
||||
}
|
||||
@end
|
||||
|
||||
NSObject<FlutterMessageCodec> *BKFlutterBookApiGetCodec() {
|
||||
static dispatch_once_t s_pred = 0;
|
||||
static FlutterStandardMessageCodec *s_sharedObject = nil;
|
||||
dispatch_once(&s_pred, ^{
|
||||
BKFlutterBookApiCodecReaderWriter *readerWriter =
|
||||
[[BKFlutterBookApiCodecReaderWriter alloc] init];
|
||||
s_sharedObject =
|
||||
[FlutterStandardMessageCodec codecWithReaderWriter:readerWriter];
|
||||
});
|
||||
return s_sharedObject;
|
||||
}
|
||||
|
||||
@interface BKFlutterBookApi ()
|
||||
@property (nonatomic, strong) NSObject<FlutterBinaryMessenger>* binaryMessenger;
|
||||
@property(nonatomic, strong) NSObject<FlutterBinaryMessenger> *binaryMessenger;
|
||||
@end
|
||||
|
||||
@implementation BKFlutterBookApi
|
||||
- (instancetype)initWithBinaryMessenger:(NSObject<FlutterBinaryMessenger>*)binaryMessenger {
|
||||
- (instancetype)initWithBinaryMessenger:
|
||||
(NSObject<FlutterBinaryMessenger> *)binaryMessenger {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.binaryMessenger = binaryMessenger;
|
||||
_binaryMessenger = binaryMessenger;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)displayBookDetails:(BKBook*)input completion:(void(^)(NSError* _Nullable))completion {
|
||||
FlutterBasicMessageChannel *channel =
|
||||
[FlutterBasicMessageChannel
|
||||
messageChannelWithName:@"dev.flutter.pigeon.FlutterBookApi.displayBookDetails"
|
||||
binaryMessenger:self.binaryMessenger];
|
||||
NSDictionary* inputMap = [input toMap];
|
||||
[channel sendMessage:inputMap reply:^(id reply) {
|
||||
completion(nil);
|
||||
}];
|
||||
- (void)displayBookDetailsBook:(BKBook *)arg_book
|
||||
completion:(void (^)(NSError *_Nullable))completion {
|
||||
FlutterBasicMessageChannel *channel = [FlutterBasicMessageChannel
|
||||
messageChannelWithName:
|
||||
@"dev.flutter.pigeon.FlutterBookApi.displayBookDetails"
|
||||
binaryMessenger:self.binaryMessenger
|
||||
codec:BKFlutterBookApiGetCodec()];
|
||||
[channel sendMessage:@[ arg_book ]
|
||||
reply:^(id reply) {
|
||||
completion(nil);
|
||||
}];
|
||||
}
|
||||
@end
|
||||
void BKHostBookApiSetup(id<FlutterBinaryMessenger> binaryMessenger, id<BKHostBookApi> api) {
|
||||
@interface BKHostBookApiCodecReader : FlutterStandardReader
|
||||
@end
|
||||
@implementation BKHostBookApiCodecReader
|
||||
- (nullable id)readValueOfType:(UInt8)type {
|
||||
switch (type) {
|
||||
case 128:
|
||||
return [BKBook fromMap:[self readValue]];
|
||||
|
||||
default:
|
||||
return [super readValueOfType:type];
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
@interface BKHostBookApiCodecWriter : FlutterStandardWriter
|
||||
@end
|
||||
@implementation BKHostBookApiCodecWriter
|
||||
- (void)writeValue:(id)value {
|
||||
if ([value isKindOfClass:[BKBook class]]) {
|
||||
[self writeByte:128];
|
||||
[self writeValue:[value toMap]];
|
||||
} else {
|
||||
[super writeValue:value];
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
@interface BKHostBookApiCodecReaderWriter : FlutterStandardReaderWriter
|
||||
@end
|
||||
@implementation BKHostBookApiCodecReaderWriter
|
||||
- (FlutterStandardWriter *)writerWithData:(NSMutableData *)data {
|
||||
return [[BKHostBookApiCodecWriter alloc] initWithData:data];
|
||||
}
|
||||
- (FlutterStandardReader *)readerWithData:(NSData *)data {
|
||||
return [[BKHostBookApiCodecReader alloc] initWithData:data];
|
||||
}
|
||||
@end
|
||||
|
||||
NSObject<FlutterMessageCodec> *BKHostBookApiGetCodec() {
|
||||
static dispatch_once_t s_pred = 0;
|
||||
static FlutterStandardMessageCodec *s_sharedObject = nil;
|
||||
dispatch_once(&s_pred, ^{
|
||||
BKHostBookApiCodecReaderWriter *readerWriter =
|
||||
[[BKHostBookApiCodecReaderWriter alloc] init];
|
||||
s_sharedObject =
|
||||
[FlutterStandardMessageCodec codecWithReaderWriter:readerWriter];
|
||||
});
|
||||
return s_sharedObject;
|
||||
}
|
||||
|
||||
void BKHostBookApiSetup(id<FlutterBinaryMessenger> binaryMessenger,
|
||||
NSObject<BKHostBookApi> *api) {
|
||||
{
|
||||
FlutterBasicMessageChannel *channel =
|
||||
[FlutterBasicMessageChannel
|
||||
FlutterBasicMessageChannel *channel = [FlutterBasicMessageChannel
|
||||
messageChannelWithName:@"dev.flutter.pigeon.HostBookApi.cancel"
|
||||
binaryMessenger:binaryMessenger];
|
||||
binaryMessenger:binaryMessenger
|
||||
codec:BKHostBookApiGetCodec()];
|
||||
if (api) {
|
||||
[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) {
|
||||
FlutterError *error;
|
||||
[api cancel:&error];
|
||||
callback(wrapResult(nil, error));
|
||||
}];
|
||||
}
|
||||
else {
|
||||
NSCAssert(
|
||||
[api respondsToSelector:@selector(cancelWithError:)],
|
||||
@"BKHostBookApi api doesn't respond to @selector(cancelWithError:)");
|
||||
[channel
|
||||
setMessageHandler:^(id _Nullable message, FlutterReply callback) {
|
||||
FlutterError *error;
|
||||
[api cancelWithError:&error];
|
||||
callback(wrapResult(nil, error));
|
||||
}];
|
||||
} else {
|
||||
[channel setMessageHandler:nil];
|
||||
}
|
||||
}
|
||||
{
|
||||
FlutterBasicMessageChannel *channel =
|
||||
[FlutterBasicMessageChannel
|
||||
messageChannelWithName:@"dev.flutter.pigeon.HostBookApi.finishEditingBook"
|
||||
binaryMessenger:binaryMessenger];
|
||||
FlutterBasicMessageChannel *channel = [FlutterBasicMessageChannel
|
||||
messageChannelWithName:
|
||||
@"dev.flutter.pigeon.HostBookApi.finishEditingBook"
|
||||
binaryMessenger:binaryMessenger
|
||||
codec:BKHostBookApiGetCodec()];
|
||||
if (api) {
|
||||
[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) {
|
||||
FlutterError *error;
|
||||
BKBook *input = [BKBook fromMap:message];
|
||||
[api finishEditingBook:input error:&error];
|
||||
callback(wrapResult(nil, error));
|
||||
}];
|
||||
}
|
||||
else {
|
||||
NSCAssert([api respondsToSelector:@selector(finishEditingBookBook:
|
||||
error:)],
|
||||
@"BKHostBookApi api doesn't respond to "
|
||||
@"@selector(finishEditingBookBook:error:)");
|
||||
[channel
|
||||
setMessageHandler:^(id _Nullable message, FlutterReply callback) {
|
||||
NSArray *args = message;
|
||||
BKBook *arg_book = args[0];
|
||||
FlutterError *error;
|
||||
[api finishEditingBookBook:arg_book error:&error];
|
||||
callback(wrapResult(nil, error));
|
||||
}];
|
||||
} else {
|
||||
[channel setMessageHandler:nil];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ EXTERNAL SOURCES:
|
||||
:path: "../flutter_module_books/.ios/Flutter/FlutterPluginRegistrant"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Flutter: ac41d61a47ae5bf8195a5598d2d63754888ec0d5
|
||||
Flutter: bdfa2e8fe0e2880a2c6a58a0b1a8675c262a07af
|
||||
flutter_module_books: 537fdde264c187fc97299f730dd35974055cac20
|
||||
FlutterPluginRegistrant: 2afd5ea46d3a949472c9b7da6462d8fbf7d8b16e
|
||||
|
||||
|
||||
Reference in New Issue
Block a user