/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #if FB_SONARKIT_ENABLED #import "FlipperKitExamplePlugin.h" #import #import #import @interface FlipperKitExamplePlugin () @property(strong, nonatomic) id connection; @property(nonatomic) NSInteger triggerCount; @end @implementation FlipperKitExamplePlugin - (instancetype)init { if (self = [super init]) { _triggerCount = 0; } return self; } + (instancetype)sharedInstance { static FlipperKitExamplePlugin* sInstance = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sInstance = [FlipperKitExamplePlugin new]; }); return sInstance; } - (void)didConnect:(id)connection { __weak FlipperKitExamplePlugin* weakSelf = self; self.connection = connection; [connection receive:@"displayMessage" withBlock:^(NSDictionary* params, id responder) { [weakSelf.delegate messageReceived:params[@"message"]]; [responder success:@{@"greeting" : @"Hello"}]; }]; } - (void)didDisconnect { self.connection = nil; } - (NSString*)identifier { return @"Example"; } - (BOOL)runInBackground { return YES; } - (void)sendMessage:(NSString*)msg { [self.connection send:@"displayMessage" withParams:@{@"msg" : msg}]; } - (void)triggerNotification { [self.connection send:@"triggerNotification" withParams:@{@"id" : @(self.triggerCount)}]; self.triggerCount++; } @end #endif