http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKTypingIndicatorView.h ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKTypingIndicatorView.h b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKTypingIndicatorView.h new file mode 100644 index 0000000..4cc3257 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKTypingIndicatorView.h @@ -0,0 +1,65 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#import <UIKit/UIKit.h> +#import "SLKTypingIndicatorProtocol.h" + +/** @name A custom view to display an indicator of users typing. */ +@interface SLKTypingIndicatorView : UIView <SLKTypingIndicatorProtocol> + +/** The amount of time a name should keep visible. If is zero, the indicator will not remove nor disappear automatically. Default is 6.0 seconds*/ +@property (nonatomic, readwrite) NSTimeInterval interval; + +/** If YES, the user can dismiss the indicator by tapping on it. Default is NO. */ +@property (nonatomic, readwrite) BOOL canResignByTouch; + +/** The color of the text. Default is grayColor. */ +@property (nonatomic, strong) UIColor *textColor; + +/** The font of the text. Default is system font, 12 pts. */ +@property (nonatomic, strong) UIFont *textFont; + +/** The font to be used when matching a username string. Default is system bold font, 12 pts. */ +@property (nonatomic, strong) UIFont *highlightFont; + +/** The inner padding to use when laying out content in the view. Default is {10, 40, 10, 10}. */ +@property (nonatomic, assign) UIEdgeInsets contentInset; + +/** + Inserts a user name, only if that user name is not yet on the list. + Each inserted name has an attached timer, which will automatically remove the name from the list once the interval is reached (default 6 seconds). + + The control follows a set of display rules, to accomodate the screen size: + + - When only 1 user name is set, it will display ":name is typing" + + - When only 2 user names are set, it will display ":name & :name are typing" + + - When more than 2 user names are set, it will display "several people are typing" + + @param username The user name string. + */ +- (void)insertUsername:(NSString *)username; + +/** + Removes a user name, if existent on the list. + Once there are no more items on the list, the indicator will automatically try to hide (by setting it self to visible = NO). + + @param username The user name string. + */ +- (void)removeUsername:(NSString *)username; + +@end
http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKTypingIndicatorView.m ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKTypingIndicatorView.m b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKTypingIndicatorView.m new file mode 100644 index 0000000..c569650 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKTypingIndicatorView.m @@ -0,0 +1,355 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#import "SLKTypingIndicatorView.h" +#import "UIView+SLKAdditions.h" +#import "SLKUIConstants.h" + +#define SLKTypingIndicatorViewIdentifier [NSString stringWithFormat:@"%@.%@", SLKTextViewControllerDomain, NSStringFromClass([self class])] + +@interface SLKTypingIndicatorView () + +// The text label used to display the typing indicator content. +@property (nonatomic, strong) UILabel *textLabel; + +@property (nonatomic, strong) NSMutableArray *usernames; +@property (nonatomic, strong) NSMutableArray *timers; + +// Auto-Layout margin constraints used for updating their constants +@property (nonatomic, strong) NSLayoutConstraint *leftContraint; +@property (nonatomic, strong) NSLayoutConstraint *rightContraint; + +@end + +@implementation SLKTypingIndicatorView +@synthesize visible = _visible; + +#pragma mark - Initializer + +- (id)init +{ + if (self = [super init]) { + [self slk_commonInit]; + } + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)coder +{ + if (self = [super initWithCoder:coder]) { + [self slk_commonInit]; + } + return self; +} + +- (void)slk_commonInit +{ + self.backgroundColor = [UIColor whiteColor]; + + self.interval = 6.0; + self.canResignByTouch = NO; + self.usernames = [NSMutableArray new]; + self.timers = [NSMutableArray new]; + + self.textColor = [UIColor grayColor]; + self.textFont = [UIFont systemFontOfSize:12.0]; + self.highlightFont = [UIFont boldSystemFontOfSize:12.0]; + self.contentInset = UIEdgeInsetsMake(10.0, 40.0, 10.0, 10.0); + + [self addSubview:self.textLabel]; + + [self slk_setupConstraints]; +} + + +#pragma mark - SLKTypingIndicatorProtocol + +- (void)setVisible:(BOOL)visible +{ + // Skip when updating the same value, specially to avoid inovking KVO unnecessary + if (self.isVisible == visible) { + return; + } + + // Required implementation for key-value observer compliance + [self willChangeValueForKey:NSStringFromSelector(@selector(isVisible))]; + + _visible = visible; + + if (!visible) { + [self slk_invalidateTimers]; + } + + // Required implementation for key-value observer compliance + [self didChangeValueForKey:NSStringFromSelector(@selector(isVisible))]; +} + +- (void)dismissIndicator +{ + if (self.isVisible) { + self.visible = NO; + } +} + + +#pragma mark - Getters + +- (UILabel *)textLabel +{ + if (!_textLabel) { + _textLabel = [UILabel new]; + _textLabel.translatesAutoresizingMaskIntoConstraints = NO; + _textLabel.backgroundColor = [UIColor clearColor]; + _textLabel.contentMode = UIViewContentModeTopLeft; + _textLabel.userInteractionEnabled = NO; + } + return _textLabel; +} + +- (NSAttributedString *)attributedString +{ + if (self.usernames.count == 0) { + return nil; + } + + NSString *text = nil; + NSString *firstObject = [self.usernames firstObject]; + NSString *lastObject = [self.usernames lastObject]; + + if (self.usernames.count == 1) { + text = [NSString stringWithFormat:NSLocalizedString(@"%@ is typing", nil), firstObject]; + } + else if (self.usernames.count == 2) { + text = [NSString stringWithFormat:NSLocalizedString(@"%@ & %@ are typing", nil), firstObject, lastObject]; + } + else if (self.usernames.count > 2) { + text = NSLocalizedString(@"Several people are typing", nil); + } + + NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init]; + style.alignment = NSTextAlignmentLeft; + style.lineBreakMode = NSLineBreakByTruncatingTail; + style.minimumLineHeight = 10.0; + + NSDictionary *attributes = @{NSFontAttributeName: self.textFont, + NSForegroundColorAttributeName: self.textColor, + NSParagraphStyleAttributeName: style, + }; + + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:attributes]; + + if (self.usernames.count <= 2) { + [attributedString addAttribute:NSFontAttributeName value:self.highlightFont range:[text rangeOfString:firstObject]]; + [attributedString addAttribute:NSFontAttributeName value:self.highlightFont range:[text rangeOfString:lastObject]]; + } + + return attributedString; +} + +- (CGSize)intrinsicContentSize +{ + return CGSizeMake(UIViewNoIntrinsicMetric, [self height]); +} + +- (CGFloat)height +{ + CGFloat height = self.textFont.lineHeight; + height += self.contentInset.top; + height += self.contentInset.bottom; + return height; +} + + +#pragma mark - Setters + +- (void)setContentInset:(UIEdgeInsets)insets +{ + if (UIEdgeInsetsEqualToEdgeInsets(self.contentInset, insets)) { + return; + } + + if (UIEdgeInsetsEqualToEdgeInsets(self.contentInset, UIEdgeInsetsZero)) { + _contentInset = insets; + return; + } + + _contentInset = insets; + + [self slk_updateConstraintConstants]; +} + +- (void)setHidden:(BOOL)hidden +{ + if (self.isHidden == hidden) { + return; + } + + if (hidden) { + [self slk_prepareForReuse]; + } + + [super setHidden:hidden]; +} + + +#pragma mark - Public Methods + +- (void)insertUsername:(NSString *)username; +{ + if (!username) { + return; + } + + BOOL isShowing = [self.usernames containsObject:username]; + + if (_interval > 0.0) { + + if (isShowing) { + NSTimer *timer = [self slk_timerWithIdentifier:username]; + [self slk_invalidateTimer:timer]; + } + + NSTimer *timer = [NSTimer timerWithTimeInterval:_interval target:self selector:@selector(slk_shouldRemoveUsername:) userInfo:@{SLKTypingIndicatorViewIdentifier: username} repeats:NO]; + [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; + [self.timers addObject:timer]; + } + + if (isShowing) { + return; + } + + [self.usernames addObject:username]; + + NSAttributedString *attributedString = [self attributedString]; + + self.textLabel.attributedText = attributedString; + + self.visible = YES; +} + +- (void)removeUsername:(NSString *)username +{ + if (!username || ![self.usernames containsObject:username]) { + return; + } + + [self.usernames removeObject:username]; + + if (self.usernames.count > 0) { + self.textLabel.attributedText = [self attributedString]; + } + else { + self.visible = NO; + } +} + + +#pragma mark - Private Methods + +- (void)slk_shouldRemoveUsername:(NSTimer *)timer +{ + NSString *identifier = [timer.userInfo objectForKey:SLKTypingIndicatorViewIdentifier]; + + [self removeUsername:identifier]; + [self slk_invalidateTimer:timer]; +} + +- (NSTimer *)slk_timerWithIdentifier:(NSString *)identifier +{ + for (NSTimer *timer in self.timers) { + if ([identifier isEqualToString:[timer.userInfo objectForKey:SLKTypingIndicatorViewIdentifier]]) { + return timer; + } + } + return nil; +} + +- (void)slk_invalidateTimer:(NSTimer *)timer +{ + if (timer) { + [timer invalidate]; + [self.timers removeObject:timer]; + timer = nil; + } +} + +- (void)slk_invalidateTimers +{ + for (NSTimer *timer in self.timers) { + [timer invalidate]; + } + + [self.timers removeAllObjects]; +} + +- (void)slk_prepareForReuse +{ + [self slk_invalidateTimers]; + + self.textLabel.text = nil; + + [self.usernames removeAllObjects]; +} + +- (void)slk_setupConstraints +{ + NSDictionary *views = @{@"textLabel": self.textLabel}; + + [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[textLabel]|" options:0 metrics:nil views:views]]; + [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(0)-[textLabel]-(0@750)-|" options:0 metrics:nil views:views]]; + + self.leftContraint = [[self slk_constraintsForAttribute:NSLayoutAttributeLeading] firstObject]; + self.rightContraint = [[self slk_constraintsForAttribute:NSLayoutAttributeTrailing] firstObject]; + + [self slk_updateConstraintConstants]; +} + +- (void)slk_updateConstraintConstants +{ + self.leftContraint.constant = self.contentInset.left; + self.rightContraint.constant = self.contentInset.right; +} + + +#pragma mark - Hit Testing + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event +{ + [super touchesBegan:touches withEvent:event]; +} + +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event +{ + [super touchesEnded:touches withEvent:event]; + + if (self.canResignByTouch) { + [self dismissIndicator]; + } +} + + +#pragma mark - Lifeterm + +- (void)dealloc +{ + [self slk_prepareForReuse]; + + _textLabel = nil; + _usernames = nil; + _timers = nil; +} + +@end \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKUIConstants.h ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKUIConstants.h b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKUIConstants.h new file mode 100644 index 0000000..0294968 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/SLKUIConstants.h @@ -0,0 +1,50 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#define SLK_IS_LANDSCAPE ([[UIApplication sharedApplication] statusBarOrientation] == UIDeviceOrientationLandscapeLeft || [[UIApplication sharedApplication] statusBarOrientation] == UIDeviceOrientationLandscapeRight) +#define SLK_IS_IPAD ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) +#define SLK_IS_IPHONE ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) +#define SLK_IS_IPHONE4 (SLK_IS_IPHONE && SLKKeyWindowBounds().size.height < 568.0) +#define SLK_IS_IPHONE5 (SLK_IS_IPHONE && SLKKeyWindowBounds().size.height == 568.0) +#define SLK_IS_IPHONE6 (SLK_IS_IPHONE && SLKKeyWindowBounds().size.height == 667.0) +#define SLK_IS_IPHONE6PLUS (SLK_IS_IPHONE && SLKKeyWindowBounds().size.height == 736.0 || SLKKeyWindowBounds().size.width == 736.0) // Both orientations +#define SLK_IS_IOS8_AND_HIGHER ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) +#define SLK_IS_IOS9_AND_HIGHER ([[UIDevice currentDevice].systemVersion floatValue] >= 9.0) + +#define SLK_KEYBOARD_NOTIFICATION_DEBUG DEBUG && 0 // Logs every keyboard notification being sent + +#if __has_attribute(objc_designated_initializer) + #define SLK_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +#endif + +static NSString *SLKTextViewControllerDomain = @"com.slack.TextViewController"; + +inline static CGRect SLKKeyWindowBounds() +{ + return [[UIApplication sharedApplication] keyWindow].bounds; +} + +inline static CGRect SLKRectInvert(CGRect rect) +{ + CGRect invert = CGRectZero; + + invert.origin.x = rect.origin.y; + invert.origin.y = rect.origin.x; + invert.size.width = rect.size.height; + invert.size.height = rect.size.width; + + return invert; +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIResponder+SLKAdditions.h ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIResponder+SLKAdditions.h b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIResponder+SLKAdditions.h new file mode 100644 index 0000000..a77752d --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIResponder+SLKAdditions.h @@ -0,0 +1,29 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#import <UIKit/UIKit.h> + +/** @name UIResponder additional features used for SlackTextViewController. */ +@interface UIResponder (SLKAdditions) + +/** + Returns the current first responder object. + + @return A UIResponder instance. + */ ++ (instancetype)slk_currentFirstResponder; + +@end \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIResponder+SLKAdditions.m ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIResponder+SLKAdditions.m b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIResponder+SLKAdditions.m new file mode 100644 index 0000000..799aba2 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIResponder+SLKAdditions.m @@ -0,0 +1,39 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#import "UIResponder+SLKAdditions.h" + +static __weak id ___currentFirstResponder; + +@implementation UIResponder (SLKAdditions) + +/** + Based on Jakob Egger's answer in http://stackoverflow.com/a/14135456/590010 + */ ++ (instancetype)slk_currentFirstResponder +{ + ___currentFirstResponder = nil; + [[UIApplication sharedApplication] sendAction:@selector(slk_findFirstResponder:) to:nil from:nil forEvent:nil]; + + return ___currentFirstResponder; +} + +- (void)slk_findFirstResponder:(id)sender +{ + ___currentFirstResponder = self; +} + +@end http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIScrollView+SLKAdditions.h ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIScrollView+SLKAdditions.h b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIScrollView+SLKAdditions.h new file mode 100644 index 0000000..71a4d2f --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIScrollView+SLKAdditions.h @@ -0,0 +1,48 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#import <UIKit/UIKit.h> + +/** @name UIScrollView additional features used for SlackTextViewController. */ +@interface UIScrollView (SLKAdditions) + +/** YES if the scrollView's offset is at the very top. */ +@property (nonatomic, readonly) BOOL slk_isAtTop; +/** YES if the scrollView's offset is at the very bottom. */ +@property (nonatomic, readonly) BOOL slk_isAtBottom; +/** The visible area of the content size. */ +@property (nonatomic, readonly) CGRect slk_visibleRect; + +/** + Sets the content offset to the top. + + @param animated YES to animate the transition at a constant velocity to the new offset, NO to make the transition immediate. + */ +- (void)slk_scrollToTopAnimated:(BOOL)animated; + +/** + Sets the content offset to the bottom. + + @param animated YES to animate the transition at a constant velocity to the new offset, NO to make the transition immediate. + */ +- (void)slk_scrollToBottomAnimated:(BOOL)animated; + +/** + Stops scrolling, if it was scrolling. + */ +- (void)slk_stopScrolling; + +@end \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIScrollView+SLKAdditions.m ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIScrollView+SLKAdditions.m b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIScrollView+SLKAdditions.m new file mode 100644 index 0000000..8f2244d --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIScrollView+SLKAdditions.m @@ -0,0 +1,80 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#import "UIScrollView+SLKAdditions.h" + +@implementation UIScrollView (SLKAdditions) + +- (void)slk_scrollToTopAnimated:(BOOL)animated +{ + if ([self slk_canScroll]) { + [self setContentOffset:CGPointZero animated:animated]; + } +} + +- (void)slk_scrollToBottomAnimated:(BOOL)animated +{ + if ([self slk_canScroll]) { + [self setContentOffset:[self slk_bottomRect].origin animated:animated]; + } +} + +- (BOOL)slk_canScroll +{ + if (self.contentSize.height > CGRectGetHeight(self.frame)) { + return YES; + } + return NO; +} + +- (BOOL)slk_isAtTop +{ + return CGRectGetMinY([self slk_visibleRect]) <= CGRectGetMinY(self.bounds); +} + +- (BOOL)slk_isAtBottom +{ + return CGRectGetMaxY([self slk_visibleRect]) >= CGRectGetMaxY([self slk_bottomRect]); +} + +- (CGRect)slk_visibleRect +{ + CGRect visibleRect; + visibleRect.origin = self.contentOffset; + visibleRect.size = self.frame.size; + return visibleRect; +} + +- (CGRect)slk_bottomRect +{ + return CGRectMake(0.0, self.contentSize.height - CGRectGetHeight(self.bounds), CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds)); +} + +- (void)slk_stopScrolling +{ + if (!self.isDragging) { + return; + } + + CGPoint offset = self.contentOffset; + offset.y -= 1.0; + [self setContentOffset:offset]; + + offset.y += 1.0; + [self setContentOffset:offset]; +} + +@end http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIView+SLKAdditions.h ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIView+SLKAdditions.h b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIView+SLKAdditions.h new file mode 100644 index 0000000..21e3e6c --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIView+SLKAdditions.h @@ -0,0 +1,61 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#import <UIKit/UIKit.h> + +/** @name UIView additional features used for SlackTextViewController. */ +@interface UIView (SLKAdditions) + +/** + Animates the view's constraints by calling layoutIfNeeded. + + @param bounce YES if the animation should use spring damping and velocity to give a bouncy effect to animations. + @param options A mask of options indicating how you want to perform the animations. + @param animations An additional block for custom animations. + */ +- (void)slk_animateLayoutIfNeededWithBounce:(BOOL)bounce options:(UIViewAnimationOptions)options animations:(void (^)(void))animations; + +- (void)slk_animateLayoutIfNeededWithBounce:(BOOL)bounce options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion; + +/** + Animates the view's constraints by calling layoutIfNeeded. + + @param duration The total duration of the animations, measured in seconds. + @param bounce YES if the animation should use spring damping and velocity to give a bouncy effect to animations. + @param options A mask of options indicating how you want to perform the animations. + @param animations An additional block for custom animations. + */ +- (void)slk_animateLayoutIfNeededWithDuration:(NSTimeInterval)duration bounce:(BOOL)bounce options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion; + +/** + Returns the view constraints matching a specific layout attribute (top, bottom, left, right, leading, trailing, etc.) + + @param attribute The layout attribute to use for searching. + @return An array of matching constraints. + */ +- (NSArray *)slk_constraintsForAttribute:(NSLayoutAttribute)attribute; + +/** + Returns a layout constraint matching a specific layout attribute and relationship between 2 items, first and second items. + + @param attribute The layout attribute to use for searching. + @param first The first item in the relationship. + @param second The second item in the relationship. + @return A layout constraint. + */ +- (NSLayoutConstraint *)slk_constraintForAttribute:(NSLayoutAttribute)attribute firstItem:(id)first secondItem:(id)second; + +@end http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIView+SLKAdditions.m ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIView+SLKAdditions.m b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIView+SLKAdditions.m new file mode 100644 index 0000000..a69f0ee --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/SlackTextViewController/Source/UIView+SLKAdditions.m @@ -0,0 +1,78 @@ +// +// Copyright 2014 Slack Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#import "UIView+SLKAdditions.h" + +#import "SLKUIConstants.h" + +@implementation UIView (SLKAdditions) + +- (void)slk_animateLayoutIfNeededWithBounce:(BOOL)bounce options:(UIViewAnimationOptions)options animations:(void (^)(void))animations +{ + [self slk_animateLayoutIfNeededWithBounce:bounce options:options animations:animations completion:NULL]; +} + +- (void)slk_animateLayoutIfNeededWithBounce:(BOOL)bounce options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion +{ + NSTimeInterval duration = bounce ? 0.65 : 0.2; + [self slk_animateLayoutIfNeededWithDuration:duration bounce:bounce options:options animations:animations completion:completion]; +} + +- (void)slk_animateLayoutIfNeededWithDuration:(NSTimeInterval)duration bounce:(BOOL)bounce options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion +{ + if (bounce) { + [UIView animateWithDuration:duration + delay:0.0 + usingSpringWithDamping:0.7 + initialSpringVelocity:0.7 + options:options + animations:^{ + [self layoutIfNeeded]; + + if (animations) { + animations(); + } + } + completion:completion]; + } + else { + [UIView animateWithDuration:duration + delay:0.0 + options:options + animations:^{ + [self layoutIfNeeded]; + + if (animations) { + animations(); + } + } + completion:completion]; + } +} + +- (NSArray *)slk_constraintsForAttribute:(NSLayoutAttribute)attribute +{ + NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstAttribute = %d", attribute]; + return [self.constraints filteredArrayUsingPredicate:predicate]; +} + +- (NSLayoutConstraint *)slk_constraintForAttribute:(NSLayoutAttribute)attribute firstItem:(id)first secondItem:(id)second +{ + NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstAttribute = %d AND firstItem = %@ AND secondItem = %@", attribute, first, second]; + return [[self.constraints filteredArrayUsingPredicate:predicate] firstObject]; +} + +@end http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Info.plist ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Info.plist b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Info.plist new file mode 100644 index 0000000..ae52e8b --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Info.plist @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>org.cocoapods.${PRODUCT_NAME:rfc1034identifier}</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>2.1.0-RC.2</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>${CURRENT_PROJECT_VERSION}</string> + <key>NSPrincipalClass</key> + <string></string> +</dict> +</plist> http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-dummy.m ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-dummy.m b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-dummy.m new file mode 100644 index 0000000..20209de --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-dummy.m @@ -0,0 +1,5 @@ +#import <Foundation/Foundation.h> +@interface PodsDummy_Pods_ActivityFeed_UsergridSDK : NSObject +@end +@implementation PodsDummy_Pods_ActivityFeed_UsergridSDK +@end http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-prefix.pch ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-prefix.pch b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-prefix.pch new file mode 100644 index 0000000..aa992a4 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-prefix.pch @@ -0,0 +1,4 @@ +#ifdef __OBJC__ +#import <UIKit/UIKit.h> +#endif + http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-umbrella.h ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-umbrella.h b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-umbrella.h new file mode 100644 index 0000000..1e40702 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK-umbrella.h @@ -0,0 +1,6 @@ +#import <UIKit/UIKit.h> + + +FOUNDATION_EXPORT double UsergridSDKVersionNumber; +FOUNDATION_EXPORT const unsigned char UsergridSDKVersionString[]; + http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK.modulemap ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK.modulemap b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK.modulemap new file mode 100644 index 0000000..1c8ae41 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK.modulemap @@ -0,0 +1,6 @@ +framework module UsergridSDK { + umbrella header "Pods-ActivityFeed-UsergridSDK-umbrella.h" + + export * + module * { export * } +} http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK.xcconfig ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK.xcconfig b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK.xcconfig new file mode 100644 index 0000000..509e361 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed-UsergridSDK/Pods-ActivityFeed-UsergridSDK.xcconfig @@ -0,0 +1,8 @@ +CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_FRAMEWORK_BUILD_PATH" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/UsergridSDK" "${PODS_ROOT}/Headers/Public" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-ActivityFeed +PODS_ROOT = ${SRCROOT} +SKIP_INSTALL = YES \ No newline at end of file http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Info.plist ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Info.plist b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Info.plist new file mode 100644 index 0000000..6974542 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Info.plist @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>org.cocoapods.${PRODUCT_NAME:rfc1034identifier}</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>1.0.0</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>${CURRENT_PROJECT_VERSION}</string> + <key>NSPrincipalClass</key> + <string></string> +</dict> +</plist> http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-acknowledgements.markdown ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-acknowledgements.markdown b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-acknowledgements.markdown new file mode 100644 index 0000000..40ba859 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-acknowledgements.markdown @@ -0,0 +1,352 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## SlackTextViewController + + + Copyright 2015 Slack Technologies, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +## UsergridSDK + + +Apache Usergrid itself is licensed under the terms of the Apache License: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +------------------------------------------------------------------------------ + +USERGRID SUBCOMPONENTS + +The Usergrid software includes a number of subcomponents with separate +copyrights and license terms. Your use of the source code for these +subcomponents is subject to the terms and conditions of the following +licenses. + +IOS SDK +------- +For the SBJson component: + + Copyright (c) Stig Brautaset. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of the author nor the names of its contributors may be used + to endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +For the SSKeychain component: +----------------------------- + + Copyright (c) Sam Soffes, http://soff.es + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Other components: +----------------- + +This product bundles angular.js +Copyright(c) Google, Inc. Released under the MIT license. + +This product bundles angular-scenario.js, part of jQuery JavaScript Library +which Includes Sizzle.js Copyright (c) jQuery Foundation, Inc. and others. +Released under the MIT license. + +This product bundles Bootstrap Copyright (c) Twitter, Inc +Licensed under the MIT license. + +The product bundles Intro.js (MIT licensed) +Copyright (c) usabli.ca - A weekend project by Afshin Mehrabani (@afshinmeh) + +This product bundles jQuery +Licensed under MIT license. + +This product bundles jQuery-UI +Licensed under MIT license. + +This product bundles jQuery Sparklines (New BSD License) +Copyright (c) Splunk Inc. + +This product bundles Mocha. +All rights reserved. Licensed under MIT. +Copyright (c) TJ Holowaychuk <t...@vision-media.ca> + +This product bundles NewtonSoft.Json under MIT license + +This product bundles NPM MD5 (BSD-3 licensed) +Copyright (c) Paul Vorbach and Copyright (C), Jeff Mott. + +This product bundles NSubsttute under BSD license + +This product bundles SBJson, which is available under a "3-clause BSD" license. +For details, see sdks/ios/UGAPI/SBJson/ . + +This product bundles Sphinx under BSD license + +This product bundles SSKeychain, which is available under a "MIT/X11" license. +For details, see sdks/ios/UGAPI/SSKeychain/. + +This product bundles SSToolkit. +Copyright (c) Sam Soffes. All rights reserved. +These files can be located within the /sdks/ios package. + +This product bundles Entypo, CC by SA license + +This product bundles date.min.js, MIT license + +This product bundles jquery.ui.timepicker.min.js, MIT license + +This product bundles blanket_mocha.min.js, MIT license + +This product bundles FontAwesome, SIL Open Font License + + +Generated by CocoaPods - http://cocoapods.org http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-acknowledgements.plist ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-acknowledgements.plist b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-acknowledgements.plist new file mode 100644 index 0000000..5b40057 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-acknowledgements.plist @@ -0,0 +1,386 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>PreferenceSpecifiers</key> + <array> + <dict> + <key>FooterText</key> + <string>This application makes use of the following third party libraries:</string> + <key>Title</key> + <string>Acknowledgements</string> + <key>Type</key> + <string>PSGroupSpecifier</string> + </dict> + <dict> + <key>FooterText</key> + <string> + Copyright 2015 Slack Technologies, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +</string> + <key>Title</key> + <string>SlackTextViewController</string> + <key>Type</key> + <string>PSGroupSpecifier</string> + </dict> + <dict> + <key>FooterText</key> + <string> +Apache Usergrid itself is licensed under the terms of the Apache License: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +------------------------------------------------------------------------------ + +USERGRID SUBCOMPONENTS + +The Usergrid software includes a number of subcomponents with separate +copyrights and license terms. Your use of the source code for these +subcomponents is subject to the terms and conditions of the following +licenses. + +IOS SDK +------- +For the SBJson component: + + Copyright (c) Stig Brautaset. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of the author nor the names of its contributors may be used + to endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +For the SSKeychain component: +----------------------------- + + Copyright (c) Sam Soffes, http://soff.es + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Other components: +----------------- + +This product bundles angular.js +Copyright(c) Google, Inc. Released under the MIT license. + +This product bundles angular-scenario.js, part of jQuery JavaScript Library +which Includes Sizzle.js Copyright (c) jQuery Foundation, Inc. and others. +Released under the MIT license. + +This product bundles Bootstrap Copyright (c) Twitter, Inc +Licensed under the MIT license. + +The product bundles Intro.js (MIT licensed) +Copyright (c) usabli.ca - A weekend project by Afshin Mehrabani (@afshinmeh) + +This product bundles jQuery +Licensed under MIT license. + +This product bundles jQuery-UI +Licensed under MIT license. + +This product bundles jQuery Sparklines (New BSD License) +Copyright (c) Splunk Inc. + +This product bundles Mocha. +All rights reserved. Licensed under MIT. +Copyright (c) TJ Holowaychuk <t...@vision-media.ca> + +This product bundles NewtonSoft.Json under MIT license + +This product bundles NPM MD5 (BSD-3 licensed) +Copyright (c) Paul Vorbach and Copyright (C), Jeff Mott. + +This product bundles NSubsttute under BSD license + +This product bundles SBJson, which is available under a "3-clause BSD" license. +For details, see sdks/ios/UGAPI/SBJson/ . + +This product bundles Sphinx under BSD license + +This product bundles SSKeychain, which is available under a "MIT/X11" license. +For details, see sdks/ios/UGAPI/SSKeychain/. + +This product bundles SSToolkit. +Copyright (c) Sam Soffes. All rights reserved. +These files can be located within the /sdks/ios package. + +This product bundles Entypo, CC by SA license + +This product bundles date.min.js, MIT license + +This product bundles jquery.ui.timepicker.min.js, MIT license + +This product bundles blanket_mocha.min.js, MIT license + +This product bundles FontAwesome, SIL Open Font License + +</string> + <key>Title</key> + <string>UsergridSDK</string> + <key>Type</key> + <string>PSGroupSpecifier</string> + </dict> + <dict> + <key>FooterText</key> + <string>Generated by CocoaPods - http://cocoapods.org</string> + <key>Title</key> + <string></string> + <key>Type</key> + <string>PSGroupSpecifier</string> + </dict> + </array> + <key>StringsTable</key> + <string>Acknowledgements</string> + <key>Title</key> + <string>Acknowledgements</string> +</dict> +</plist> http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-dummy.m ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-dummy.m b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-dummy.m new file mode 100644 index 0000000..37d8d11 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-dummy.m @@ -0,0 +1,5 @@ +#import <Foundation/Foundation.h> +@interface PodsDummy_Pods_ActivityFeed : NSObject +@end +@implementation PodsDummy_Pods_ActivityFeed +@end http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-frameworks.sh ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-frameworks.sh b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-frameworks.sh new file mode 100755 index 0000000..e854300 --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-frameworks.sh @@ -0,0 +1,93 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "Pods-ActivityFeed/SlackTextViewController.framework" + install_framework "Pods-ActivityFeed/UsergridSDK.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "Pods-ActivityFeed/SlackTextViewController.framework" + install_framework "Pods-ActivityFeed/UsergridSDK.framework" +fi http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-resources.sh ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-resources.sh b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-resources.sh new file mode 100755 index 0000000..16774fb --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-resources.sh @@ -0,0 +1,95 @@ +#!/bin/sh +set -e + +mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +realpath() { + DIRECTORY="$(cd "${1%/*}" && pwd)" + FILENAME="${1##*/}" + echo "$DIRECTORY/$FILENAME" +} + +install_resource() +{ + case $1 in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.framework) + echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" + xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + /*) + echo "$1" + echo "$1" >> "$RESOURCES_TO_COPY" + ;; + *) + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; + esac + + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "`realpath $PODS_ROOT`*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi http://git-wip-us.apache.org/repos/asf/usergrid/blob/7442c881/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-umbrella.h ---------------------------------------------------------------------- diff --git a/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-umbrella.h b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-umbrella.h new file mode 100644 index 0000000..bd2e99f --- /dev/null +++ b/sdks/swift/Samples/ActivityFeed/Pods/Target Support Files/Pods-ActivityFeed/Pods-ActivityFeed-umbrella.h @@ -0,0 +1,6 @@ +#import <UIKit/UIKit.h> + + +FOUNDATION_EXPORT double Pods_ActivityFeedVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_ActivityFeedVersionString[]; +