Main project builds

This commit is contained in:
Ali 2020-02-19 16:59:06 +04:00
parent 4140b000e1
commit cce22d7f0b
33 changed files with 109 additions and 42 deletions

View File

@ -1,10 +1,12 @@
import Foundation import Foundation
import UIKit
import Postbox import Postbox
import TelegramCore import TelegramCore
import SyncCore import SyncCore
import TelegramPresentationData import TelegramPresentationData
import TelegramUIPreferences import TelegramUIPreferences
import SwiftSignalKit import SwiftSignalKit
import AsyncDisplayKit
import Display import Display
import DeviceLocationManager import DeviceLocationManager
import TemporaryCachedPeerDataManager import TemporaryCachedPeerDataManager

View File

@ -1,8 +1,10 @@
import Foundation import Foundation
import UIKit
import Postbox import Postbox
import TelegramCore import TelegramCore
import SyncCore import SyncCore
import TextFormat import TextFormat
import AsyncDisplayKit
import Display import Display
import SwiftSignalKit import SwiftSignalKit
import TelegramPresentationData import TelegramPresentationData

View File

@ -1,4 +1,5 @@
import Foundation import Foundation
import UIKit
import Postbox import Postbox
import Display import Display

View File

@ -5,6 +5,7 @@ import TelegramCore
import SyncCore import SyncCore
import SwiftSignalKit import SwiftSignalKit
import Display import Display
import AsyncDisplayKit
public enum ChatControllerInteractionOpenMessageMode { public enum ChatControllerInteractionOpenMessageMode {
case `default` case `default`

View File

@ -7,8 +7,8 @@ swift_library(
"Sources/**/*.swift", "Sources/**/*.swift",
]), ]),
deps = [ deps = [
"//submodules/Display:Display", "//submodules/Display:Display#shared",
"//submodules/AsyncDisplayKit:AsyncDisplayKit", "//submodules/AsyncDisplayKit:AsyncDisplayKit#shared",
], ],
visibility = [ visibility = [
"//visibility:public", "//visibility:public",

View File

@ -1,4 +1,5 @@
import Foundation import Foundation
import UIKit
import TelegramCore import TelegramCore
import SyncCore import SyncCore
import Display import Display

View File

@ -2,6 +2,7 @@ import Foundation
import UIKit import UIKit
import Postbox import Postbox
import SwiftSignalKit import SwiftSignalKit
import AsyncDisplayKit
import Display import Display
import TelegramCore import TelegramCore
import SyncCore import SyncCore

View File

@ -16,6 +16,30 @@ public class ImmediateTextNode: TextNode {
public var textShadowColor: UIColor? public var textShadowColor: UIColor?
public var textStroke: (UIColor, CGFloat)? public var textStroke: (UIColor, CGFloat)?
public var cutout: TextNodeCutout? public var cutout: TextNodeCutout?
public var truncationMode: NSLineBreakMode {
get {
switch self.truncationType {
case .start:
return .byTruncatingHead
case .middle:
return .byTruncatingMiddle
case .end:
return .byTruncatingTail
}
} set(value) {
switch value {
case .byTruncatingHead:
self.truncationType = .start
case .byTruncatingMiddle:
self.truncationType = .middle
case .byTruncatingTail:
self.truncationType = .end
default:
self.truncationType = .end
}
}
}
private var tapRecognizer: TapLongTapOrDoubleTapGestureRecognizer? private var tapRecognizer: TapLongTapOrDoubleTapGestureRecognizer?
private var linkHighlightingNode: LinkHighlightingNode? private var linkHighlightingNode: LinkHighlightingNode?
@ -157,3 +181,9 @@ public class ImmediateTextNode: TextNode {
} }
} }
} }
public class ASTextNode: ImmediateTextNode {
override public func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
return self.updateLayout(constrainedSize)
}
}

View File

@ -788,6 +788,8 @@ open class NavigationBar: ASDisplayNode {
self.stripeNode.backgroundColor = self.presentationData.theme.separatorColor self.stripeNode.backgroundColor = self.presentationData.theme.separatorColor
self.badgeNode.updateTheme(fillColor: self.presentationData.theme.badgeBackgroundColor, strokeColor: self.presentationData.theme.badgeStrokeColor, textColor: self.presentationData.theme.badgeTextColor) self.badgeNode.updateTheme(fillColor: self.presentationData.theme.badgeBackgroundColor, strokeColor: self.presentationData.theme.badgeStrokeColor, textColor: self.presentationData.theme.badgeTextColor)
self.requestLayout()
} }
} }

View File

@ -273,15 +273,7 @@ private final class NavigationButtonItemNode: ImmediateTextNode {
} }
if shouldChangeHighlight { if shouldChangeHighlight {
if let imageNode = self.imageNode { self.alpha = !self.isEnabled ? 1.0 : (highlighted ? 0.4 : 1.0)
let previousAlpha = self.imageRippleNode.alpha
self.imageRippleNode.alpha = highlighted ? 1.0 : 0.0
if !highlighted {
self.imageRippleNode.layer.animateAlpha(from: previousAlpha, to: self.imageRippleNode.alpha, duration: 0.25)
}
} else {
self.alpha = !self.isEnabled ? 1.0 : (highlighted ? 0.4 : 1.0)
}
self.highlightChanged(highlighted) self.highlightChanged(highlighted)
} }
} }

View File

@ -1,4 +1,31 @@
import UIKit import UIKit
import UIKitRuntimeUtils
public extension UIView {
static func animationDurationFactor() -> Double {
return animationDurationFactorImpl()
}
}
public func makeSpringAnimation(_ keyPath: String) -> CABasicAnimation {
return makeSpringAnimationImpl(keyPath)
}
public func makeSpringBounceAnimation(_ keyPath: String, _ initialVelocity: CGFloat, _ damping: CGFloat) -> CABasicAnimation {
return makeSpringBounceAnimationImpl(keyPath, initialVelocity, damping)
}
public func springAnimationValueAt(_ animation: CABasicAnimation, _ t: CGFloat) -> CGFloat {
return springAnimationValueAtImpl(animation, t)
}
public func makeCustomZoomBlurEffect() -> UIBlurEffect? {
return makeCustomZoomBlurEffectImpl()
}
public func applySmoothRoundedCorners(_ layer: CALayer) {
applySmoothRoundedCornersImpl(layer)
}
public func dumpViews(_ view: UIView) { public func dumpViews(_ view: UIView) {
dumpViews(view, indent: "") dumpViews(view, indent: "")

View File

@ -1,6 +1,7 @@
import Foundation import Foundation
import UIKit import UIKit
import Display import Display
import AsyncDisplayKit
final class ItemListMaskAccessoryItem: ListViewAccessoryItem { final class ItemListMaskAccessoryItem: ListViewAccessoryItem {
private let sectionId: Int32 private let sectionId: Int32

View File

@ -1,4 +1,6 @@
import Foundation import Foundation
import UIKit
import AsyncDisplayKit
import Display import Display
import TelegramPresentationData import TelegramPresentationData
import AppBundle import AppBundle

View File

@ -1,4 +1,6 @@
import Foundation import Foundation
import UIKit
import AsyncDisplayKit
import Display import Display
import SwiftSignalKit import SwiftSignalKit
import MapKit import MapKit

View File

@ -1,5 +1,6 @@
import Foundation import Foundation
import UIKit import UIKit
import AsyncDisplayKit
import Display import Display
import LegacyComponents import LegacyComponents
import TelegramCore import TelegramCore

View File

@ -1,4 +1,6 @@
import Foundation import Foundation
import UIKit
import AsyncDisplayKit
import Display import Display
import AccountContext import AccountContext
import TelegramPresentationData import TelegramPresentationData

View File

@ -1,5 +1,6 @@
import Foundation import Foundation
import UIKit import UIKit
import AsyncDisplayKit
import Display import Display
import SwiftSignalKit import SwiftSignalKit
import Postbox import Postbox

View File

@ -1,5 +1,6 @@
import Foundation import Foundation
import UIKit import UIKit
import AsyncDisplayKit
import Display import Display
import SwiftSignalKit import SwiftSignalKit
import Postbox import Postbox

View File

@ -1,6 +1,7 @@
import Foundation import Foundation
import UIKit import UIKit
import Display import Display
import AsyncDisplayKit
public final class ReactionSwipeGestureRecognizer: UIPanGestureRecognizer { public final class ReactionSwipeGestureRecognizer: UIPanGestureRecognizer {
private var validatedGesture = false private var validatedGesture = false

View File

@ -155,7 +155,7 @@ public final class SelectablePeerNode: ASDisplayNode {
overrideImage = .deletedIcon overrideImage = .deletedIcon
} }
} }
self.textNode.maximumNumberOfLines = UInt(numberOfLines) self.textNode.maximumNumberOfLines = numberOfLines
self.textNode.attributedText = NSAttributedString(string: text, font: textFont, textColor: self.currentSelected ? self.theme.selectedTextColor : defaultColor, paragraphAlignment: .center) self.textNode.attributedText = NSAttributedString(string: text, font: textFont, textColor: self.currentSelected ? self.theme.selectedTextColor : defaultColor, paragraphAlignment: .center)
self.avatarNode.setPeer(context: context, theme: theme, peer: mainPeer, overrideImage: overrideImage, emptyColor: self.theme.avatarPlaceholderColor, synchronousLoad: synchronousLoad) self.avatarNode.setPeer(context: context, theme: theme, peer: mainPeer, overrideImage: overrideImage, emptyColor: self.theme.avatarPlaceholderColor, synchronousLoad: synchronousLoad)

View File

@ -1,5 +1,6 @@
import Foundation import Foundation
import UIKit import UIKit
import AsyncDisplayKit
import Display import Display
import SwiftSignalKit import SwiftSignalKit
import Postbox import Postbox

View File

@ -1,4 +1,5 @@
import Foundation import Foundation
import UIKit
import Postbox import Postbox
import TelegramCore import TelegramCore
import SyncCore import SyncCore

View File

@ -455,7 +455,7 @@ final class SharedApplicationContext {
} }
} }
ASDisableLogging() //ASDisableLogging()
initializeLegacyComponents(application: application, currentSizeClassGetter: { initializeLegacyComponents(application: application, currentSizeClassGetter: {
return UIUserInterfaceSizeClass.compact return UIUserInterfaceSizeClass.compact

View File

@ -1,5 +1,6 @@
import Foundation import Foundation
import UIKit import UIKit
import AsyncDisplayKit
import Postbox import Postbox
import SwiftSignalKit import SwiftSignalKit
import TelegramCore import TelegramCore

View File

@ -1,4 +1,6 @@
import Foundation import Foundation
import UIKit
import AsyncDisplayKit
import Display import Display
import SwiftSignalKit import SwiftSignalKit
import TelegramPresentationData import TelegramPresentationData

View File

@ -1,5 +1,6 @@
import Foundation import Foundation
import UIKit import UIKit
import AsyncDisplayKit
import Display import Display
import TelegramCore import TelegramCore
import SyncCore import SyncCore

View File

@ -1,5 +1,6 @@
import Foundation import Foundation
import UIKit import UIKit
import AsyncDisplayKit
import TelegramCore import TelegramCore
import SyncCore import SyncCore
import Postbox import Postbox

View File

@ -1,4 +1,6 @@
import Foundation import Foundation
import UIKit
import AsyncDisplayKit
import Postbox import Postbox
import TelegramCore import TelegramCore
import SyncCore import SyncCore

View File

@ -1,4 +1,5 @@
import Foundation import Foundation
import UIKit
import SwiftSignalKit import SwiftSignalKit
import Postbox import Postbox
import SyncCore import SyncCore

View File

@ -1,4 +1,5 @@
import Foundation import Foundation
import UIKit
import Postbox import Postbox
import TelegramCore import TelegramCore
import SyncCore import SyncCore

View File

@ -9,7 +9,7 @@ static_library(
"Source/UIKitRuntimeUtils/*.h", "Source/UIKitRuntimeUtils/*.h",
]), ]),
deps = [ deps = [
"//submodules/AsyncDisplayKit:AsyncDisplayKit", "//submodules/AsyncDisplayKit:AsyncDisplayKit#shared",
"//submodules/ObjCRuntimeUtils:ObjCRuntimeUtils", "//submodules/ObjCRuntimeUtils:ObjCRuntimeUtils",
], ],
frameworks = [ frameworks = [

View File

@ -1,16 +1,11 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
@interface UIView (AnimationUtils) double animationDurationFactorImpl();
+ (double)animationDurationFactor; CABasicAnimation * _Nonnull makeSpringAnimationImpl(NSString * _Nonnull keyPath);
CABasicAnimation * _Nonnull makeSpringBounceAnimationImpl(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping);
CGFloat springAnimationValueAtImpl(CABasicAnimation * _Nonnull animation, CGFloat t);
@end UIBlurEffect *makeCustomZoomBlurEffectImpl();
void applySmoothRoundedCornersImpl(CALayer * _Nonnull layer);
CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath);
CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping);
CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t);
void testZoomBlurEffect(UIVisualEffect *effect);
UIBlurEffect *makeCustomZoomBlurEffect();
void applySmoothRoundedCorners(CALayer * _Nonnull layer);

View File

@ -3,22 +3,16 @@
#import <objc/runtime.h> #import <objc/runtime.h>
#if TARGET_IPHONE_SIMULATOR #if TARGET_IPHONE_SIMULATOR
UIKIT_EXTERN float UIAnimationDragCoefficient(); // UIKit private drag coeffient, use judiciously UIKIT_EXTERN float UIAnimationDragCoefficient();
#endif #endif
@implementation UIView (AnimationUtils) double animationDurationFactorImpl() {
+ (double)animationDurationFactor
{
#if TARGET_IPHONE_SIMULATOR #if TARGET_IPHONE_SIMULATOR
return (double)UIAnimationDragCoefficient(); return (double)UIAnimationDragCoefficient();
#endif #endif
return 1.0f; return 1.0f;
} }
@end
@interface CASpringAnimation () @interface CASpringAnimation ()
@end @end
@ -54,7 +48,7 @@ UIKIT_EXTERN float UIAnimationDragCoefficient(); // UIKit private drag coeffient
@end @end
CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath) { CABasicAnimation * _Nonnull makeSpringAnimationImpl(NSString * _Nonnull keyPath) {
CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath]; CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath];
springAnimation.mass = 3.0f; springAnimation.mass = 3.0f;
springAnimation.stiffness = 1000.0f; springAnimation.stiffness = 1000.0f;
@ -64,7 +58,7 @@ CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath) {
return springAnimation; return springAnimation;
} }
CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping) { CABasicAnimation * _Nonnull makeSpringBounceAnimationImpl(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping) {
CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath]; CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath];
springAnimation.mass = 5.0f; springAnimation.mass = 5.0f;
springAnimation.stiffness = 900.0f; springAnimation.stiffness = 900.0f;
@ -84,7 +78,7 @@ CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPat
return springAnimation; return springAnimation;
} }
CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t) { CGFloat springAnimationValueAtImpl(CABasicAnimation * _Nonnull animation, CGFloat t) {
return [(CASpringAnimation *)animation valueAt:t]; return [(CASpringAnimation *)animation valueAt:t];
} }
@ -110,9 +104,6 @@ CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t)
@end @end
void testZoomBlurEffect(UIVisualEffect *effect) {
}
static NSString *encodeText(NSString *string, int key) { static NSString *encodeText(NSString *string, int key) {
NSMutableString *result = [[NSMutableString alloc] init]; NSMutableString *result = [[NSMutableString alloc] init];
@ -168,7 +159,7 @@ static void setBoolField(CustomBlurEffect *object, NSString *name, BOOL value) {
[inv invoke]; [inv invoke];
} }
UIBlurEffect *makeCustomZoomBlurEffect() { UIBlurEffect *makeCustomZoomBlurEffectImpl() {
if (@available(iOS 11.0, *)) { if (@available(iOS 11.0, *)) {
NSString *string = [@[@"_", @"UI", @"Custom", @"BlurEffect"] componentsJoinedByString:@""]; NSString *string = [@[@"_", @"UI", @"Custom", @"BlurEffect"] componentsJoinedByString:@""];
CustomBlurEffect *result = (CustomBlurEffect *)[NSClassFromString(string) effectWithStyle:0]; CustomBlurEffect *result = (CustomBlurEffect *)[NSClassFromString(string) effectWithStyle:0];
@ -193,7 +184,7 @@ UIBlurEffect *makeCustomZoomBlurEffect() {
} }
} }
void applySmoothRoundedCorners(CALayer * _Nonnull layer) { void applySmoothRoundedCornersImpl(CALayer * _Nonnull layer) {
if (@available(iOS 11.0, *)) { if (@available(iOS 11.0, *)) {
setBoolField(layer, encodeText(@"tfuDpoujovpvtDpsofst;", -1), true); setBoolField(layer, encodeText(@"tfuDpoujovpvtDpsofst;", -1), true);
} }