appleguy 465abb1ded [License] Simplify the Texture license to be pure Apache 2 (removing ASDK-Licenses). (#1077)
* [License] Simplify the Texture license to be pure Apache 2 (removing ASDK-Licenses)

With permission of the Facebook Open Source team, we are simplifying the Texture
license so that clients can rely on the Apache 2 terms that most of Texture is
already covered by. This means that code originally forked from AsyncDisplayKit
will be re-licensed from "BSD 3-clause + PATENTS v2" to Apache 2 without a
PATENTS file.

After getting confirmation that the updates to these core files look good, we'll
propagate this new license header to all files (in this same PR) and get sign-off
from all parties before landing.

* [License] Update all Texture source files to be pure Apache 2.

* Changelog entry for Apache 2 license update.

* Revert "[License] Update all Texture source files to be pure Apache 2."

This reverts commit ffa0fbbba9717d871dd16c4b07539f2f8208fc2b.

* [License] Update all Texture source files to be pure Apache 2, maintaining copyrights.

* [License] Update CONTRIBUTING, README, Podspec & Dangerfile.
2018-08-28 07:39:18 -07:00

129 lines
4.5 KiB
Objective-C

//
// ViewController.m
// Texture
//
// Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
// Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc. All rights reserved.
// Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
//
#import "ViewController.h"
#import "Post.h"
#import "PostNode.h"
#import <AsyncDisplayKit/AsyncDisplayKit.h>
#import <AsyncDisplayKit/ASAssert.h>
#include <stdlib.h>
@interface ViewController () <ASTableDataSource, ASTableDelegate>
@property (nonatomic, strong) ASTableNode *tableNode;
@property (nonatomic, strong) NSMutableArray *socialAppDataSource;
@end
#pragma mark - Lifecycle
@implementation ViewController
- (instancetype)init
{
_tableNode = [[ASTableNode alloc] initWithStyle:UITableViewStylePlain];
self = [super initWithNode:_tableNode];
if (self) {
_tableNode.delegate = self;
_tableNode.dataSource = self;
_tableNode.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.title = @"Timeline";
[self createSocialAppDataSource];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// SocialAppNode has its own separator
self.tableNode.view.separatorStyle = UITableViewCellSeparatorStyleNone;
}
#pragma mark - Data Model
- (void)createSocialAppDataSource
{
_socialAppDataSource = [[NSMutableArray alloc] init];
Post *newPost = [[Post alloc] init];
newPost.name = @"Apple Guy";
newPost.username = @"@appleguy";
newPost.photo = @"https://avatars1.githubusercontent.com/u/565251?v=3&s=96";
newPost.post = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";
newPost.time = @"3s";
newPost.media = @"";
newPost.via = 0;
newPost.likes = arc4random_uniform(74);
newPost.comments = arc4random_uniform(40);
[_socialAppDataSource addObject:newPost];
newPost = [[Post alloc] init];
newPost.name = @"Huy Nguyen";
newPost.username = @"@nguyenhuy";
newPost.photo = @"https://avatars2.githubusercontent.com/u/587874?v=3&s=96";
newPost.post = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
newPost.time = @"1m";
newPost.media = @"";
newPost.via = 1;
newPost.likes = arc4random_uniform(74);
newPost.comments = arc4random_uniform(40);
[_socialAppDataSource addObject:newPost];
newPost = [[Post alloc] init];
newPost.name = @"Alex Long Name";
newPost.username = @"@veryyyylongusername";
newPost.photo = @"https://avatars1.githubusercontent.com/u/8086633?v=3&s=96";
newPost.post = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
newPost.time = @"3:02";
newPost.media = @"http://www.ngmag.ru/upload/iblock/f93/f9390efc34151456598077c1ba44a94d.jpg";
newPost.via = 2;
newPost.likes = arc4random_uniform(74);
newPost.comments = arc4random_uniform(40);
[_socialAppDataSource addObject:newPost];
newPost = [[Post alloc] init];
newPost.name = @"Vitaly Baev";
newPost.username = @"@vitalybaev";
newPost.photo = @"https://avatars0.githubusercontent.com/u/724423?v=3&s=96";
newPost.post = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. https://github.com/facebook/AsyncDisplayKit Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
newPost.time = @"yesterday";
newPost.media = @"";
newPost.via = 1;
newPost.likes = arc4random_uniform(74);
newPost.comments = arc4random_uniform(40);
[_socialAppDataSource addObject:newPost];
}
#pragma mark - ASTableNode
- (ASCellNodeBlock)tableNode:(ASTableNode *)tableNode nodeBlockForRowAtIndexPath:(NSIndexPath *)indexPath
{
Post *post = self.socialAppDataSource[indexPath.row];
return ^{
return [[PostNode alloc] initWithPost:post];
};
}
- (NSInteger)tableNode:(ASTableNode *)tableNode numberOfRowsInSection:(NSInteger)section
{
return self.socialAppDataSource.count;
}
@end