1129 Commits

Author SHA1 Message Date
Garrett Moon
01c1680904 Switch to instance methods of draw and display
This patch switches to instance methods of draw and display for
ASTextNode and ASImageNode to attempt to increase their performance.

It also fixes some thread safety issues in ASImageNode which appear
to have been regressions (though probably not hit very often).

And it sets up work for allowing modification of CGContexts before
and after a node's contents are drawn.
2016-01-27 20:08:02 -08:00
appleguy
5004935d82 Merge pull request #1130 from levi/setNeedsDataFetch
Add `setNeedsDataFetch` to trigger in-range `fetchData` calls
2016-01-27 20:06:30 -08:00
appleguy
e1f485e08a Merge pull request #1125 from binl/bl_expose_batchBegin
expose beginUpdates and endUpdates
2016-01-27 20:02:50 -08:00
Levi McCallum
05af98b578 Update documentation 2016-01-27 19:58:36 -08:00
Levi McCallum
55e289836e Clean up output of NSStringFromASInterfaceState 2016-01-27 18:34:21 -08:00
Levi McCallum
ee23830318 Remove setNeedsDataFetch queuing, as interfaceState always performs fetch on re-enter 2016-01-27 18:25:39 -08:00
Levi McCallum
bb02a2d487 Clean up interface state printing style 2016-01-27 17:19:40 -08:00
Levi McCallum
585b1215a9 Recursively fetchData for requests 2016-01-27 17:19:11 -08:00
Bin Liu
b26337c449 Levi's comments 2016-01-27 15:06:29 -08:00
Levi McCallum
ec7a3599bd Add setNeedsDataFetch method to queue off screen fetchData calls 2016-01-27 14:52:37 -08:00
Luke Zhao
733c65d1eb fix bug: constraint size not updated for frontsizeadjuster 2016-01-27 13:49:00 -08:00
Bin Liu
f6be279c60 Added more facilitator methods 2016-01-27 12:50:41 -08:00
Bin Liu
263bb311f2 expose beginUpdates and endUpdates 2016-01-27 10:50:42 -08:00
appleguy
f696eb7476 Merge pull request #1122 from knopp/_ASAsyncTransaction-operation-priority
[_ASAsyncTransaction] make priority a NSInteger with default to 0
2016-01-26 19:47:57 -08:00
Matej Knopp
da5f7eccd9 [_ASAsyncTransaction] make priority a NSInteger with default to 0
Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-27 00:37:27 +01:00
appleguy
d433205e5a Merge pull request #1117 from knopp/_ASAsyncTransaction-operation-priority
[_ASAsyncTransaction] implement operation priority
2016-01-26 12:32:31 -08:00
appleguy
f1da7102a1 Merge pull request #1119 from yury/update-port-of-component-text-kit
[ASTextNode] Update back-ported ComponentKit text renderer changes for long truncation strings.
2016-01-26 12:32:10 -08:00
Huy Nguyen
56c6bd681b Revert "Revert commit 83aaa46, thus bring 2e4d716 back"
This reverts commit 209425c22ce84ecbb7ab631753ec8fc34dd9cbb0.
2016-01-26 12:05:02 -08:00
Huy Nguyen
8a6b7cff97 Revert "Fix ASCollectionView data inconsistency after reloadData"
This reverts commit 50e5cffbe1e6bfa9c9cc9116519c996af088ec83.
2016-01-26 12:04:55 -08:00
yury
a3a0440a01 [text] Use the closest glyph to determine hit token 2016-01-26 22:41:02 +03:00
yury
a0b7254213 [text] Fix crash when highlighted range exceeds truncation range 2016-01-26 22:37:44 +03:00
Matej Knopp
0a45bd9596 [_ASAsyncTransaction] implement operation priority
Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-26 15:31:40 +01:00
Matej Knopp
75abf07c6f [_ASAsyncTransaction] tweak number of threads
Thread count is now 2 * activeProcessorCount, however during tracking it is decreased by 1

Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-26 15:18:16 +01:00
appleguy
fb60acbecc Merge pull request #1113 from lkzhao/ASTextKitFontSizeAdjuster
[ASTextNode] Fix test build for font size adjuster
2016-01-25 20:03:01 -08:00
Luke Zhao
70be4c96ba import ASTextNode+Beta.h 2016-01-25 19:59:16 -08:00
appleguy
508e3db8ee Merge pull request #1091 from lkzhao/ASTextKitFontSizeAdjuster
[ASTextNode] Support iteratively shrinking font size in order to ensure no single words are wrapped.
2016-01-25 19:36:39 -08:00
Luke Zhao
f37c805b72 Move minimumScaleFactor to ASTextNode+Beta 2016-01-25 19:12:29 -08:00
Luke Zhao
f413a618e0 add ASTextKitFontSizeAdjuster 2016-01-25 19:07:28 -08:00
appleguy
8f41ddc8e0 Merge pull request #1090 from knopp/_ASAsyncTransaction-limit-spawned-threads
[_ASAsyncTransaction] limit number of spawned threads in a way that GCD will not with the semaphore.
2016-01-25 18:39:27 -08:00
appleguy
e37cc4394c Merge pull request #1107 from nguyenhuy/improve_reload_data
[ASTableNode, ASCollectionNode] Optimize -reloadData's teardown of state (blow away UIKit perf!)
2016-01-25 18:38:53 -08:00
appleguy
6bd62cbf72 Merge pull request #1110 from yury/fix-truncation
[ASTextNode] Prompt creation of truncater object when the context object is accessed.
2016-01-25 18:05:59 -08:00
appleguy
d70a9551de Merge pull request #1111 from yury/fix-_linkAttributeValueAtPoint-crash
[ASTextNode] Fix out-of-bounds error when truncation string is longer than the original string.
2016-01-25 17:58:07 -08:00
appleguy
1dd6cef58b Merge pull request #1105 from facebook/RangeControlAllNodes
[ASRangeControllerBeta] Scan all nodes after edit operations.
2016-01-25 13:51:09 -08:00
yury
f2012df3af Fix Out of bounds error
Actually it is possible that truncated string is longer then original
string.

For example, original string:

```
hello
this is
very long
message here
and there
```

with maximumNumberOfLines=4, truncationAttributedString = ' ...' and
additionalTruncationMessage = 'read more'

will give

```
hello
this is
very long
message here ... read more
```

So `[attributedString attribute:attributeName atIndex:characterIndex
longestEffectiveRange:&range inRange:visibleRange]` will crash.
2016-01-25 22:25:12 +03:00
yury
313a3cc63c Create Truncater with context. So it will actually truncate string in its initializer 2016-01-25 16:48:55 +03:00
Huy Nguyen
50e5cffbe1 Fix ASCollectionView data inconsistency after reloadData
Fix by using `_superIsPendingDataLoad` introduced in #672
2016-01-24 23:38:30 -08:00
Huy Nguyen
209425c22c Revert commit 83aaa46, thus bring 2e4d716 back 2016-01-24 23:38:05 -08:00
Scott Goodson
e0e019ebcb [ASRangeController] Enable new range controller by default (!!! yay !!!) 2016-01-24 22:50:36 -08:00
appleguy
b3239b6d36 Merge pull request #1106 from lappp9/ASVideoNode
[ASVideoNode] Performance enhancements
2016-01-24 22:29:14 -08:00
Scott Goodson
7ecc302e10 [ASImageNode] remove nullability from imageModificationBlock for Swift bridging.
https://github.com/facebook/AsyncDisplayKit/issues/1092
2016-01-24 22:26:42 -08:00
Luke Parham
526b2ab0cf removed beta range controller 2016-01-24 23:51:34 -06:00
Luke Parham
41721aa42a merged with master 2016-01-24 23:14:43 -06:00
Luke Parham
98fb2e46d4 wip but currently adding first frame as placeholder until it should play and removed extraneous 'pause' 2016-01-24 23:13:17 -06:00
Scott Goodson
e6d5e2666c [ASRangeControllerBeta] Scan all nodes after edit operations. 2016-01-24 18:42:02 -08:00
appleguy
5a96985b55 Merge pull request #1104 from facebook/ASTextNodeInvalidationOptimization
[ASLayout, ASTextNode] Create -calculatedLayoutDidChange and use it in text node.
2016-01-24 18:19:27 -08:00
Scott Goodson
2713bdd72e [ASTextNode, ASDisplayNode] Create -calculatedLayoutDidChange and use it in text node.
This allows the change in size for the NSTextContainer to occur off the main thread, whenever that size change
is necessary.  Then the text relayout can occur earlier, during the process of computing ASLayoutSpecs.
2016-01-24 17:14:14 -08:00
Matej Knopp
51e4476068 [ASRangeController] don't get index paths twice if tuning parameters are same
Signed-off-by: Matej Knopp <matej.knopp@gmail.com>
2016-01-24 23:41:46 +01:00
Scott Goodson
92ce6ce4d3 [ASRangeControllerBeta] Improve comments, code clarity, cache respondsToSelector: 2016-01-24 14:07:39 -08:00
Scott Goodson
351f4a9afc Utilize NSMutableOrderedSet in ASRangeControllerBeta to ensure visible items are prioritized.
This also adopts Objective-C generics for the various collections in this class.
2016-01-24 13:11:15 -08:00
Scott Goodson
9ddf68fa96 [ASTextNode] Optimize handling of constrained size to almost never recreate NSLayoutManager
This also fixes two fairly subtle but serious bugs, #1076 and #1046.
2016-01-24 00:50:43 -08:00