Run CLANGFORMAT on plugins

Summary:
This diff runs CLANGFORMAT lint on plugins. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.

Ran `arc lint -a --paths-cmd "find ./iOS/Plugins -type f" --verbose`

Reviewed By: passy

Differential Revision: D19942173

fbshipit-source-id: 8b975b0a344df073b02d69cd1f9ee5629af2799d
This commit is contained in:
Pritesh Nandgaonkar
2020-02-17 10:46:43 -08:00
committed by Facebook Github Bot
parent a19a430eee
commit e8b20d5b15
101 changed files with 3918 additions and 2867 deletions

View File

@@ -5,15 +5,15 @@
* LICENSE file in the root directory of this source tree.
*/
#import <Foundation/Foundation.h>
#import <FlipperKit/FlipperPlugin.h>
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface FKUserDefaultsPlugin : NSObject <FlipperPlugin>
@interface FKUserDefaultsPlugin : NSObject<FlipperPlugin>
- (instancetype)initWithSuiteName:(nullable NSString*)suiteName;
- (instancetype)initWithSuiteName:(nullable NSString *)suiteName;
@end
NS_ASSUME_NONNULL_END

View File

@@ -10,15 +10,15 @@
#import <FlipperKit/FlipperResponder.h>
#import "FKUserDefaultsSwizzleUtility.h"
static NSString *const kStandardUserDefaultsName = @"Standard UserDefaults";
static NSString *const kAppSuiteUserDefaultsName = @"App Suite UserDefaults";
static NSString* const kStandardUserDefaultsName = @"Standard UserDefaults";
static NSString* const kAppSuiteUserDefaultsName = @"App Suite UserDefaults";
@interface FKUserDefaultsPlugin ()
@property (nonatomic, strong) id<FlipperConnection> flipperConnection;
@property (nonatomic, strong) NSUserDefaults *standardUserDefaults;
@property (nonatomic, strong) NSUserDefaults *appSuiteUserDefaults;
@property (nonatomic, copy) NSString *key;
@property (nonatomic, copy) NSString *suiteName;
@property(nonatomic, strong) id<FlipperConnection> flipperConnection;
@property(nonatomic, strong) NSUserDefaults* standardUserDefaults;
@property(nonatomic, strong) NSUserDefaults* appSuiteUserDefaults;
@property(nonatomic, copy) NSString* key;
@property(nonatomic, copy) NSString* suiteName;
@end
@implementation FKUserDefaultsPlugin
@@ -27,89 +27,106 @@ static NSString *const kAppSuiteUserDefaultsName = @"App Suite UserDefaults";
if (self = [super init]) {
_standardUserDefaults = [NSUserDefaults standardUserDefaults];
__weak typeof(self) weakSelf = self;
[FKUserDefaultsSwizzleUtility swizzleSelector:@selector(setObject:forKey:) class:[NSUserDefaults class] block:^(NSInvocation * _Nonnull invocation) {
__unsafe_unretained id firstArg = nil;
__unsafe_unretained id secondArg = nil;
[invocation getArgument:&firstArg atIndex:2];
[invocation getArgument:&secondArg atIndex:3];
[invocation invoke];
[weakSelf userDefaults:([invocation.target isKindOfClass:[NSUserDefaults class]] ? invocation.target : nil)
changedWithValue:firstArg
key:secondArg];
}];
[FKUserDefaultsSwizzleUtility
swizzleSelector:@selector(setObject:forKey:)
class:[NSUserDefaults class]
block:^(NSInvocation* _Nonnull invocation) {
__unsafe_unretained id firstArg = nil;
__unsafe_unretained id secondArg = nil;
[invocation getArgument:&firstArg atIndex:2];
[invocation getArgument:&secondArg atIndex:3];
[invocation invoke];
[weakSelf userDefaults:([invocation.target
isKindOfClass:[NSUserDefaults
class]]
? invocation.target
: nil)
changedWithValue:firstArg
key:secondArg];
}];
}
return self;
}
- (instancetype)initWithSuiteName:(NSString *)suiteName {
if (self = [self init]) {
_suiteName = suiteName;
if (_suiteName) {
_appSuiteUserDefaults = [[NSUserDefaults alloc] initWithSuiteName:_suiteName];
}
- (instancetype)initWithSuiteName:(NSString*)suiteName {
if (self = [self init]) {
_suiteName = suiteName;
if (_suiteName) {
_appSuiteUserDefaults =
[[NSUserDefaults alloc] initWithSuiteName:_suiteName];
}
return self;
}
return self;
}
- (void)didConnect:(id<FlipperConnection>)connection {
self.flipperConnection = connection;
[connection receive:@"getAllSharedPreferences" withBlock:^(NSDictionary *params, id<FlipperResponder> responder) {
NSMutableDictionary *userDefaults = [NSMutableDictionary new];
userDefaults[kStandardUserDefaultsName] = [self.standardUserDefaults dictionaryRepresentation];
if (self.appSuiteUserDefaults) {
userDefaults[kAppSuiteUserDefaultsName] = [self.appSuiteUserDefaults dictionaryRepresentation];
}
[responder success:userDefaults];
}];
[connection receive:@"setSharedPreference" withBlock:^(NSDictionary *params , id<FlipperResponder> responder) {
NSUserDefaults *sharedPreferences = [self sharedPreferencesForParams:params];
NSString *preferenceName = params[@"preferenceName"];
[sharedPreferences setObject:params[@"preferenceValue"] forKey:preferenceName];
[responder success:[sharedPreferences dictionaryRepresentation]];
}];
self.flipperConnection = connection;
[connection receive:@"getAllSharedPreferences"
withBlock:^(NSDictionary* params, id<FlipperResponder> responder) {
NSMutableDictionary* userDefaults = [NSMutableDictionary new];
userDefaults[kStandardUserDefaultsName] =
[self.standardUserDefaults dictionaryRepresentation];
if (self.appSuiteUserDefaults) {
userDefaults[kAppSuiteUserDefaultsName] =
[self.appSuiteUserDefaults dictionaryRepresentation];
}
[responder success:userDefaults];
}];
[connection receive:@"setSharedPreference"
withBlock:^(NSDictionary* params, id<FlipperResponder> responder) {
NSUserDefaults* sharedPreferences =
[self sharedPreferencesForParams:params];
NSString* preferenceName = params[@"preferenceName"];
[sharedPreferences setObject:params[@"preferenceValue"]
forKey:preferenceName];
[responder success:[sharedPreferences dictionaryRepresentation]];
}];
}
- (void)didDisconnect {
self.flipperConnection = nil;
self.flipperConnection = nil;
}
- (NSString *)identifier {
return @"Preferences";
- (NSString*)identifier {
return @"Preferences";
}
#pragma mark - Private methods
- (NSUserDefaults *)sharedPreferencesForParams:(NSDictionary *)params {
NSString *const sharedPreferencesNameKey = @"sharedPreferencesName";
- (NSUserDefaults*)sharedPreferencesForParams:(NSDictionary*)params {
NSString* const sharedPreferencesNameKey = @"sharedPreferencesName";
if (![params[sharedPreferencesNameKey] isKindOfClass:[NSString class]]) {
return _standardUserDefaults;
}
NSString *sharedPreferencesName = params[sharedPreferencesNameKey];
return ([sharedPreferencesName isEqualToString:kAppSuiteUserDefaultsName]
NSString* sharedPreferencesName = params[sharedPreferencesNameKey];
return (
[sharedPreferencesName isEqualToString:kAppSuiteUserDefaultsName]
? _appSuiteUserDefaults
: _standardUserDefaults);
}
- (void)userDefaults:(NSUserDefaults *)userDefaults changedWithValue:(id)value key:(NSString *)key {
NSTimeInterval interval = [[NSDate date] timeIntervalSince1970] * 1000;
NSString *intervalStr = [NSString stringWithFormat:@"%f", interval];
NSMutableDictionary *params = [@{@"name":key,
@"time":intervalStr
} mutableCopy];
if (!value) {
[params setObject:@"YES" forKey:@"deleted"];
} else {
[params setObject:value forKey:@"value"];
}
NSString *sharedPreferencesName = (userDefaults == _standardUserDefaults
? kStandardUserDefaultsName
: kAppSuiteUserDefaultsName);
[params setObject:sharedPreferencesName forKey:@"preferences"];
[self.flipperConnection send:@"sharedPreferencesChange" withParams:[params copy]];
- (void)userDefaults:(NSUserDefaults*)userDefaults
changedWithValue:(id)value
key:(NSString*)key {
NSTimeInterval interval = [[NSDate date] timeIntervalSince1970] * 1000;
NSString* intervalStr = [NSString stringWithFormat:@"%f", interval];
NSMutableDictionary* params =
[@{@"name" : key, @"time" : intervalStr} mutableCopy];
if (!value) {
[params setObject:@"YES" forKey:@"deleted"];
} else {
[params setObject:value forKey:@"value"];
}
NSString* sharedPreferencesName =
(userDefaults == _standardUserDefaults ? kStandardUserDefaultsName
: kAppSuiteUserDefaultsName);
[params setObject:sharedPreferencesName forKey:@"preferences"];
[self.flipperConnection send:@"sharedPreferencesChange"
withParams:[params copy]];
}
@end

View File

@@ -11,7 +11,9 @@ NS_ASSUME_NONNULL_BEGIN
@interface FKUserDefaultsSwizzleUtility : NSObject
+ (void)swizzleSelector:(SEL)selector class:(Class)aClass block:(void(^)(NSInvocation *invocation))block;
+ (void)swizzleSelector:(SEL)selector
class:(Class)aClass
block:(void (^)(NSInvocation* invocation))block;
@end

View File

@@ -9,68 +9,76 @@
#import <objc/runtime.h>
@interface FKUserDefaultsSwizzleUtility ()
@property (nonatomic, strong) NSMutableSet *swizzledClasses;
@property (nonatomic, strong) NSMutableDictionary *swizzledBlocks;
@property (nonatomic) IMP forwardingIMP;
@property(nonatomic, strong) NSMutableSet* swizzledClasses;
@property(nonatomic, strong) NSMutableDictionary* swizzledBlocks;
@property(nonatomic) IMP forwardingIMP;
@end
@implementation FKUserDefaultsSwizzleUtility
- (instancetype)init {
if (self = [super init]) {
_swizzledClasses = [NSMutableSet set];
_swizzledBlocks = [NSMutableDictionary dictionary];
if (self = [super init]) {
_swizzledClasses = [NSMutableSet set];
_swizzledBlocks = [NSMutableDictionary dictionary];
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
_forwardingIMP = class_getMethodImplementation([NSObject class], @selector(flipperKitThisMethodShouldNotExist));
_forwardingIMP = class_getMethodImplementation(
[NSObject class], @selector(flipperKitThisMethodShouldNotExist));
#pragma clang diagnostic pop
}
return self;
}
return self;
}
+ (instancetype)sharedInstance {
static FKUserDefaultsSwizzleUtility *sharedInstance = nil;
static dispatch_once_t onceToken = 0;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] init];
static FKUserDefaultsSwizzleUtility* sharedInstance = nil;
static dispatch_once_t onceToken = 0;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
+ (void)swizzleSelector:(SEL)selector
class:(Class)aClass
block:(void (^)(NSInvocation* _Nonnull))block {
[[self sharedInstance] swizzleSelector:selector class:aClass block:block];
}
- (void)swizzleSelector:(SEL)selector
class:(Class)aClass
block:(void (^)(NSInvocation* _Nonnull))blk {
if (![self.swizzledClasses containsObject:aClass]) {
SEL fwdSel = @selector(forwardInvocation:);
Method m = class_getInstanceMethod(aClass, fwdSel);
__block IMP orig;
__weak typeof(self) weakSelf = self;
IMP imp = imp_implementationWithBlock(^(id this, NSInvocation* invocation) {
NSString* selStr = NSStringFromSelector([invocation selector]);
void (^block)(NSInvocation*) = weakSelf.swizzledBlocks[aClass][selStr];
if (blk != nil) {
NSString* originalStr =
[@"comfacebookFlipperKit_" stringByAppendingString:selStr];
[invocation setSelector:NSSelectorFromString(originalStr)];
block(invocation);
} else {
((void (*)(id, SEL, NSInvocation*))orig)(this, fwdSel, invocation);
}
});
return sharedInstance;
}
+ (void)swizzleSelector:(SEL)selector class:(Class)aClass block:(void (^)(NSInvocation * _Nonnull))block {
[[self sharedInstance] swizzleSelector:selector class:aClass block:block];
}
- (void)swizzleSelector:(SEL)selector class:(Class)aClass block:(void (^)(NSInvocation * _Nonnull))blk {
if (![self.swizzledClasses containsObject:aClass]) {
SEL fwdSel = @selector(forwardInvocation:);
Method m = class_getInstanceMethod(aClass, fwdSel);
__block IMP orig;
__weak typeof(self) weakSelf = self;
IMP imp = imp_implementationWithBlock(^(id this, NSInvocation *invocation) {
NSString * selStr = NSStringFromSelector([invocation selector]);
void (^block)(NSInvocation *) = weakSelf.swizzledBlocks[aClass][selStr];
if (blk != nil) {
NSString *originalStr = [@"comfacebookFlipperKit_" stringByAppendingString:selStr];
[invocation setSelector:NSSelectorFromString(originalStr)];
block(invocation);
} else {
((void (*)(id, SEL, NSInvocation *))orig)(this, fwdSel, invocation);
}
});
orig = method_setImplementation(m, imp);
[self.swizzledClasses addObject:aClass];
}
NSMutableDictionary *classDict = self.swizzledBlocks[aClass];
if (classDict == nil) {
classDict = [NSMutableDictionary dictionary];
self.swizzledBlocks[(id)aClass] = classDict;
}
classDict[NSStringFromSelector(selector)] = blk;
Method m = class_getInstanceMethod(aClass, selector);
NSString *newSelStr = [@"comfacebookFlipperKit_" stringByAppendingString:NSStringFromSelector(selector)];
SEL newSel = NSSelectorFromString(newSelStr);
class_addMethod(aClass, newSel, method_getImplementation(m), method_getTypeEncoding(m));
method_setImplementation(m, self.forwardingIMP);
orig = method_setImplementation(m, imp);
[self.swizzledClasses addObject:aClass];
}
NSMutableDictionary* classDict = self.swizzledBlocks[aClass];
if (classDict == nil) {
classDict = [NSMutableDictionary dictionary];
self.swizzledBlocks[(id)aClass] = classDict;
}
classDict[NSStringFromSelector(selector)] = blk;
Method m = class_getInstanceMethod(aClass, selector);
NSString* newSelStr = [@"comfacebookFlipperKit_"
stringByAppendingString:NSStringFromSelector(selector)];
SEL newSel = NSSelectorFromString(newSelStr);
class_addMethod(
aClass, newSel, method_getImplementation(m), method_getTypeEncoding(m));
method_setImplementation(m, self.forwardingIMP);
}
@end