mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2026-02-05 02:41:05 +00:00
* [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.
101 lines
4.3 KiB
Objective-C
101 lines
4.3 KiB
Objective-C
//
|
|
// AppDelegate.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 "AppDelegate.h"
|
|
#import "PhotoFeedViewController.h"
|
|
#import "PhotoFeedNodeController.h"
|
|
#import "PhotoFeedListKitViewController.h"
|
|
#import "WindowWithStatusBarUnderlay.h"
|
|
#import "Utilities.h"
|
|
|
|
#import <AsyncDisplayKit/ASGraphicsContext.h>
|
|
|
|
#define WEAVER 0
|
|
|
|
#if WEAVER
|
|
#import <Weaver/WVDebugger.h>
|
|
#endif
|
|
|
|
@interface AppDelegate () <UITabBarControllerDelegate>
|
|
@end
|
|
|
|
@implementation AppDelegate
|
|
{
|
|
WindowWithStatusBarUnderlay *_window;
|
|
}
|
|
|
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
|
|
|
// this UIWindow subclass is neccessary to make the status bar opaque
|
|
_window = [[WindowWithStatusBarUnderlay alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
|
_window.backgroundColor = [UIColor whiteColor];
|
|
|
|
// ASDK Home Feed viewController & navController
|
|
PhotoFeedNodeController *asdkHomeFeedVC = [[PhotoFeedNodeController alloc] init];
|
|
UINavigationController *asdkHomeFeedNavCtrl = [[UINavigationController alloc] initWithRootViewController:asdkHomeFeedVC];
|
|
asdkHomeFeedNavCtrl.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"ASDK" image:[UIImage imageNamed:@"home"] tag:0];
|
|
asdkHomeFeedNavCtrl.hidesBarsOnSwipe = YES;
|
|
|
|
// ListKit Home Feed viewController & navController
|
|
PhotoFeedListKitViewController *listKitHomeFeedVC = [[PhotoFeedListKitViewController alloc] init];
|
|
UINavigationController *listKitHomeFeedNavCtrl = [[UINavigationController alloc] initWithRootViewController:listKitHomeFeedVC];
|
|
listKitHomeFeedNavCtrl.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"ListKit" image:[UIImage imageNamed:@"home"] tag:0];
|
|
listKitHomeFeedNavCtrl.hidesBarsOnSwipe = YES;
|
|
|
|
// UIKit Home Feed viewController & navController
|
|
PhotoFeedViewController *uikitHomeFeedVC = [[PhotoFeedViewController alloc] init];
|
|
UINavigationController *uikitHomeFeedNavCtrl = [[UINavigationController alloc] initWithRootViewController:uikitHomeFeedVC];
|
|
uikitHomeFeedNavCtrl.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"UIKit" image:[UIImage imageNamed:@"home"] tag:0];
|
|
uikitHomeFeedNavCtrl.hidesBarsOnSwipe = YES;
|
|
|
|
// UITabBarController
|
|
UITabBarController *tabBarController = [[UITabBarController alloc] init];
|
|
tabBarController.viewControllers = @[uikitHomeFeedNavCtrl, asdkHomeFeedNavCtrl, listKitHomeFeedNavCtrl];
|
|
tabBarController.selectedViewController = asdkHomeFeedNavCtrl;
|
|
tabBarController.delegate = self;
|
|
[[UITabBar appearance] setTintColor:[UIColor darkBlueColor]];
|
|
|
|
_window.rootViewController = tabBarController;
|
|
[_window makeKeyAndVisible];
|
|
|
|
// Nav Bar appearance
|
|
NSDictionary *attributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};
|
|
[[UINavigationBar appearance] setTitleTextAttributes:attributes];
|
|
[[UINavigationBar appearance] setBarTintColor:[UIColor darkBlueColor]];
|
|
[[UINavigationBar appearance] setTranslucent:NO];
|
|
|
|
// iOS8 hides the status bar in landscape orientation, this forces the status bar hidden status to NO
|
|
[application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
|
|
[application setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
|
|
|
|
#if WEAVER
|
|
WVDebugger *debugger = [WVDebugger defaultInstance];
|
|
[debugger enableLayoutElementDebuggingWithApplication:application];
|
|
[debugger autoConnect];
|
|
#endif
|
|
|
|
return YES;
|
|
}
|
|
|
|
#pragma mark - UITabBarControllerDelegate
|
|
|
|
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
|
|
{
|
|
if ([viewController isKindOfClass:[UINavigationController class]]) {
|
|
NSArray *viewControllers = [(UINavigationController *)viewController viewControllers];
|
|
UIViewController *rootViewController = viewControllers[0];
|
|
if ([rootViewController conformsToProtocol:@protocol(PhotoFeedControllerProtocol)]) {
|
|
// FIXME: the dataModel does not currently handle clearing data during loading properly
|
|
// [(id <PhotoFeedControllerProtocol>)rootViewController resetAllData];
|
|
}
|
|
}
|
|
}
|
|
|
|
@end
|