mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Create a centralized configuration API (#747)
* Update the dangerfile * Make a trivial change to test new dangerfile * Try out the new value with another trivial change * Add a configuration API to make a unified place for pulling config from clients safely * Specify properties for delegate * Finish removing text experiment global enable * Generate the config file * Clean up configuration to fix tests * Work on making it serializable * Finish it up * Fix example code * Update sample project * Clean up a few things * Align with new project order * Make it faster and update license header * Add an option to specify your config at compile time * Update another license header * Add a version field, and bring interface state coalescing into configuration * Update CA queue code * Update CATransactionQueue tests * Turn transaction queue on by default (for now, see comment) * Update the tests * Update the tests AGAIN * Remove unused ordered set
This commit is contained in:
@@ -17,31 +17,10 @@
|
||||
|
||||
#import <AsyncDisplayKit/ASAvailability.h>
|
||||
#import <AsyncDisplayKit/ASControlNode.h>
|
||||
#if ASTEXTNODE_EXPERIMENT_GLOBAL_ENABLE
|
||||
#import <AsyncDisplayKit/ASTextNode2.h>
|
||||
#endif
|
||||
#import <AsyncDisplayKit/ASTextNodeCommon.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol ASTextNodeDelegate;
|
||||
|
||||
#if !ASTEXTNODE_EXPERIMENT_GLOBAL_ENABLE
|
||||
|
||||
/**
|
||||
* Highlight styles.
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, ASTextNodeHighlightStyle) {
|
||||
/**
|
||||
* Highlight style for text on a light background.
|
||||
*/
|
||||
ASTextNodeHighlightStyleLight,
|
||||
|
||||
/**
|
||||
* Highlight style for text on a dark background.
|
||||
*/
|
||||
ASTextNodeHighlightStyleDark
|
||||
};
|
||||
|
||||
/**
|
||||
@abstract Draws interactive rich text.
|
||||
@discussion Backed by TextKit.
|
||||
@@ -238,70 +217,6 @@ typedef NS_ENUM(NSUInteger, ASTextNodeHighlightStyle) {
|
||||
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
@interface ASTextNode : ASTextNode2
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @abstract Text node delegate.
|
||||
*/
|
||||
@protocol ASTextNodeDelegate <NSObject>
|
||||
@optional
|
||||
|
||||
/**
|
||||
@abstract Indicates to the delegate that a link was tapped within a text node.
|
||||
@param textNode The ASTextNode containing the link that was tapped.
|
||||
@param attribute The attribute that was tapped. Will not be nil.
|
||||
@param value The value of the tapped attribute.
|
||||
@param point The point within textNode, in textNode's coordinate system, that was tapped.
|
||||
@param textRange The range of highlighted text.
|
||||
*/
|
||||
- (void)textNode:(ASTextNode *)textNode tappedLinkAttribute:(NSString *)attribute value:(id)value atPoint:(CGPoint)point textRange:(NSRange)textRange;
|
||||
|
||||
/**
|
||||
@abstract Indicates to the delegate that a link was tapped within a text node.
|
||||
@param textNode The ASTextNode containing the link that was tapped.
|
||||
@param attribute The attribute that was tapped. Will not be nil.
|
||||
@param value The value of the tapped attribute.
|
||||
@param point The point within textNode, in textNode's coordinate system, that was tapped.
|
||||
@param textRange The range of highlighted text.
|
||||
@discussion In addition to implementing this method, the delegate must be set on the text
|
||||
node before it is loaded (the recognizer is created in -didLoad)
|
||||
*/
|
||||
- (void)textNode:(ASTextNode *)textNode longPressedLinkAttribute:(NSString *)attribute value:(id)value atPoint:(CGPoint)point textRange:(NSRange)textRange;
|
||||
|
||||
//! @abstract Called when the text node's truncation string has been tapped.
|
||||
- (void)textNodeTappedTruncationToken:(ASTextNode *)textNode;
|
||||
|
||||
/**
|
||||
@abstract Indicates to the text node if an attribute should be considered a link.
|
||||
@param textNode The text node containing the entity attribute.
|
||||
@param attribute The attribute that was tapped. Will not be nil.
|
||||
@param value The value of the tapped attribute.
|
||||
@param point The point within textNode, in textNode's coordinate system, that was touched to trigger a highlight.
|
||||
@discussion If not implemented, the default value is YES.
|
||||
@return YES if the entity attribute should be a link, NO otherwise.
|
||||
*/
|
||||
- (BOOL)textNode:(ASTextNode *)textNode shouldHighlightLinkAttribute:(NSString *)attribute value:(id)value atPoint:(CGPoint)point;
|
||||
|
||||
/**
|
||||
@abstract Indicates to the text node if an attribute is a valid long-press target
|
||||
@param textNode The text node containing the entity attribute.
|
||||
@param attribute The attribute that was tapped. Will not be nil.
|
||||
@param value The value of the tapped attribute.
|
||||
@param point The point within textNode, in textNode's coordinate system, that was long-pressed.
|
||||
@discussion If not implemented, the default value is NO.
|
||||
@return YES if the entity attribute should be treated as a long-press target, NO otherwise.
|
||||
*/
|
||||
- (BOOL)textNode:(ASTextNode *)textNode shouldLongPressLinkAttribute:(NSString *)attribute value:(id)value atPoint:(CGPoint)point;
|
||||
|
||||
@end
|
||||
|
||||
#if !ASTEXTNODE_EXPERIMENT_GLOBAL_ENABLE
|
||||
|
||||
@interface ASTextNode (Unavailable)
|
||||
|
||||
- (instancetype)initWithLayerBlock:(ASDisplayNodeLayerBlock)viewBlock didLoadBlock:(nullable ASDisplayNodeDidLoadBlock)didLoadBlock __unavailable;
|
||||
@@ -334,6 +249,4 @@ typedef NS_ENUM(NSUInteger, ASTextNodeHighlightStyle) {
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
Reference in New Issue
Block a user