This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.7 KiB
72 lines
2.7 KiB
/** |
|
* Copyright (c) 2015-present, Facebook, Inc. |
|
* |
|
* This source code is licensed under the MIT license found in the |
|
* LICENSE file in the root directory of this source tree. |
|
*/ |
|
|
|
#import "RCTLayoutAnimationGroup.h" |
|
|
|
#import "RCTLayoutAnimation.h" |
|
#import "RCTConvert.h" |
|
|
|
@implementation RCTLayoutAnimationGroup |
|
|
|
- (instancetype)initWithCreatingLayoutAnimation:(RCTLayoutAnimation *)creatingLayoutAnimation |
|
updatingLayoutAnimation:(RCTLayoutAnimation *)updatingLayoutAnimation |
|
deletingLayoutAnimation:(RCTLayoutAnimation *)deletingLayoutAnimation |
|
callback:(RCTResponseSenderBlock)callback |
|
{ |
|
if (self = [super init]) { |
|
_creatingLayoutAnimation = creatingLayoutAnimation; |
|
_updatingLayoutAnimation = updatingLayoutAnimation; |
|
_deletingLayoutAnimation = deletingLayoutAnimation; |
|
_callback = callback; |
|
} |
|
|
|
return self; |
|
} |
|
|
|
- (instancetype)initWithConfig:(NSDictionary *)config |
|
callback:(RCTResponseSenderBlock)callback |
|
{ |
|
if (!config) { |
|
return nil; |
|
} |
|
|
|
if (self = [super init]) { |
|
NSTimeInterval duration = [RCTConvert NSTimeInterval:config[@"duration"]]; |
|
|
|
if (duration > 0.0 && duration < 0.01) { |
|
RCTLogError(@"RCTLayoutAnimationGroup expects timings to be in ms, not seconds."); |
|
duration = duration * 1000.0; |
|
} |
|
|
|
_creatingLayoutAnimation = [[RCTLayoutAnimation alloc] initWithDuration:duration config:config[@"create"]]; |
|
_updatingLayoutAnimation = [[RCTLayoutAnimation alloc] initWithDuration:duration config:config[@"update"]]; |
|
_deletingLayoutAnimation = [[RCTLayoutAnimation alloc] initWithDuration:duration config:config[@"delete"]]; |
|
_callback = callback; |
|
} |
|
|
|
return self; |
|
} |
|
|
|
- (BOOL)isEqual:(RCTLayoutAnimationGroup *)layoutAnimation |
|
{ |
|
RCTLayoutAnimation *creatingLayoutAnimation = layoutAnimation.creatingLayoutAnimation; |
|
RCTLayoutAnimation *updatingLayoutAnimation = layoutAnimation.updatingLayoutAnimation; |
|
RCTLayoutAnimation *deletingLayoutAnimation = layoutAnimation.deletingLayoutAnimation; |
|
|
|
return |
|
(_creatingLayoutAnimation == creatingLayoutAnimation || [_creatingLayoutAnimation isEqual:creatingLayoutAnimation]) && |
|
(_updatingLayoutAnimation == updatingLayoutAnimation || [_updatingLayoutAnimation isEqual:updatingLayoutAnimation]) && |
|
(_deletingLayoutAnimation == deletingLayoutAnimation || [_deletingLayoutAnimation isEqual:deletingLayoutAnimation]); |
|
} |
|
|
|
- (NSString *)description |
|
{ |
|
return [NSString stringWithFormat:@"<%@: %p; creatingLayoutAnimation: %@; updatingLayoutAnimation: %@; deletingLayoutAnimation: %@>", |
|
NSStringFromClass([self class]), self, [_creatingLayoutAnimation description], [_updatingLayoutAnimation description], [_deletingLayoutAnimation description]]; |
|
} |
|
|
|
@end
|
|
|