1523 Commits

Author SHA1 Message Date
Scott Goodson
ff8ffffb7b [ASCellNode] Upgrades to ASCellNodeVisibilityEvent to ensure it is always synchronized with visibilityDidChange: 2016-03-10 20:21:00 -08:00
Scott Goodson
0e460ca00a [ASRangeController] Don't bother asking UIKit for the visible index paths if view is zero-sized, as it triggers a reloadData. 2016-03-10 19:10:25 -08:00
Scott Goodson
aab2ecc26e [ASWeakSet] Properly cast kCFNull so that build settings for unit tests don't flag it (warnings as errors). 2016-03-10 17:22:26 -08:00
Scott Goodson
c3fb665ec1 [ASWeakSet] Support -allObjects to return a retained array of contents.
Use this array while enumerating ASRangeController instances in response to UIApplication notifications,
as it is possible for these events to trigger the mutation of the ASWeakSet and cause an enumeration error.
2016-03-10 16:20:21 -08:00
appleguy
d40b6c61c8 Merge pull request #1352 from ejensen/deprecated-enum
[ASTextKit] Update usage of deprecated NSControlCharacterAction value
2016-03-10 00:28:02 -08:00
appleguy
7f623412dc Merge pull request #1351 from ejensen/videonode-currentItem-getter
[ASVideoNode] Correct currentItem getter
2016-03-10 00:27:13 -08:00
Scott Goodson
21bebb9d29 [ASRangeController] Improvements to application state change and memory warning handling.
Introduces ASLayoutRangeModeVisibleOnly, allowing the preservation of decoded backing stores without any extra padding to
strictly minimize memory usage while supporting immediate re-display of content.  Set visible range controllers to this mode
upon app suspend / memory warning, while more aggressively clearing others to the ASLayoutRangeModeLowMemory mode.

By default, when the app is running and recieves a memory warning, we set the range mode for non-visible controllers to
ASLayoutRangeModeVisibleOnly.  This is because, unlike in the app suspend case where on app resume we can restore controllers
from LowMemory to VisibleOnly, the memory warning doesn't provide a good opportunity to do this.

A new +Beta API to control this behavior is called +setRangeModeForMemoryWarnings:, as some apps may prefer to use LowMemory
in the memory warning scenario.  For these apps, optimal user experience will require manually setting the range mode back
to some larger value as the user navigates the app, or they will encounter controllers that are temporarily blank and need
a moment to re-display their contents as they start to become visible.
2016-03-09 21:22:45 -08:00
Scott Goodson
27b8bcc3c6 [ASRangeController] Support observing UIApplicationState methods, notifying cells of invisibility & freeing memory on backgrounding. 2016-03-09 19:22:57 -08:00
appleguy
32bc6c2125 Merge pull request #1357 from maicki/AddASLayoutRangeModeLowMemory
[ASRangeController] Cleanup code
2016-03-09 18:58:17 -08:00
Michael Schneider
f45d4ac4fb Cleanup code 2016-03-09 18:56:39 -08:00
Eric Jensen
7119dc3d59 Correct ASVideoNode's currentItem getter method 2016-03-09 18:54:31 -08:00
appleguy
fbbfd14130 Merge pull request #1355 from maicki/AddASLayoutRangeModeLowMemory
[ASRangeController] Add ASLayoutRangeModeLowMemory
2016-03-09 17:19:19 -08:00
Michael Schneider
a788f5e2d9 Enable ASRangeControllerAutomaticLowMemoryHandling 2016-03-09 16:59:01 -08:00
appleguy
620fdfc059 Merge pull request #1346 from tomizimobile/buttonNodeSelectedHighlightedState
[ASButtonNode] Support the combined [.Selected, .Highlighted] state
2016-03-09 16:54:12 -08:00
appleguy
58544e2217 Merge pull request #1347 from aaronschubert0/astextnode-truncation-fix
[ASTextNode] Fix default ellipsis not showing for line breaks
2016-03-09 16:50:25 -08:00
appleguy
5fde235d87 Merge pull request #1356 from rcancro/textShrinkningOptimizations
[ASTextNode] More refinements to the new font size adjuster behavior.
2016-03-09 16:48:29 -08:00
appleguy
0bc60605e5 Merge pull request #1348 from eanagel/fix-collection-hang
[ASCollectionView] Ensure that we use the correct default size for collection nodes when constrainedSize delegate method not implemented.
2016-03-09 16:41:51 -08:00
rcancro
bcb1832fcd Fixed some text shrinking issues
Previously I was multiplying the calculated height of the text by the scale factor. This fails in the case where we have a long string that doesn't fit, but it is shrunk so much that it now has more than enough room in the renderer's constrained size. In this case we fail to update the calculated size's width.

Also updated `lineCountForString` in `ASTextKitFontSizeAdjuster` to reuse a sizer layout manager and text container.
2016-03-09 15:27:33 -08:00
Michael Schneider
13207dc2da Change memory notification method name 2016-03-09 14:53:37 -08:00
Michael Schneider
bf822dee37 Add ASLayoutRangeModeLowMemory 2016-03-09 14:40:40 -08:00
Eric Jensen
9d4c53b0fa Replace usage of deprecated NSControlCharacterAction value 2016-03-09 11:44:13 -08:00
Ethan Nagel
352247184a Ensure that we use the correct default size for collection nodes even if layoutSubviews has not been called yet. This is a more conservative approach than the previous one. 2016-03-09 09:56:32 -08:00
Tom King
a22278340f fixed indentation 2016-03-09 10:27:38 -05:00
Aaron Schubert
71eb9582fb [ASTextNode] Fix default ellipsis not showing for line breaks 2016-03-09 15:10:26 +00:00
Tom King
cd85389397 support the combined [.Selected, .Highlighted] state in ASButtonNode 2016-03-09 09:23:15 -05:00
appleguy
de4e4db671 Merge pull request #1340 from ejensen/documentation-corrections
[Documentation] Various header documentation corrections and refinements.
2016-03-09 02:52:48 -08:00
appleguy
1ce3834e0e Merge pull request #1343 from rcancro/cacheFontScale
[ASTextNode] Improvements to the implementation of the font scale adjuster.
2016-03-09 02:41:13 -08:00
appleguy
112489927e Merge pull request #1338 from tomizimobile/truncationTokenFix
[ASTextNode] Fix tapping on truncation token for 3D Touch phones
2016-03-09 02:16:45 -08:00
Hannah Troisi
51eccb3d96 [ASImageNode] More refined naming and documentation for [ASImageNode shouldShowImageScalingOverlay] 2016-03-08 23:30:17 -08:00
Hannah Troisi
fbe72a06e4 [ASImageNode] A ASImageNode debug feature showing pixel scaling amount
- shows a red text label overlay on bottom right hand corner of ASImageNodes with pixel scaling factor
- import AsyncDisplayKit+Debug.h and enable using [ASImageNode setEnableImageDebugOverlay]
2016-03-08 23:15:07 -08:00
Hannah Troisi
d64c05a68e [ASImageNode] A ASImageNode debug feature showing pixel scaling amount
- shows a red text label overlay on bottom right hand corner of ASImageNodes with pixel scaling factor
- import AsyncDisplayKit+Debug.h and enable using [ASImageNode setEnableImageDebugOverlay]
2016-03-08 23:13:32 -08:00
Scott Goodson
06ea9461cb [ASScrollDirection] Fix tests to use the more intuitive naming for scroll directions. 2016-03-08 22:48:02 -08:00
Ethan Nagel
5a3dab5610 Ensure that er use the correct default size for collection nodes even if layoutSubviews has not been called yet 2016-03-08 17:03:55 -08:00
rcancro
06a6bd6606 fix typo and kick off build again. 2016-03-08 16:32:24 -08:00
rcancro
3ebdf5928c Made a few changes to font scale adjustment
1) cache the scale in the font adjuster. The adjuster will be dealloc'ed when the renderer that owns it is dealloc'ed (or invalidated). Until that time we can trust the scale that the adjuster has computed.
2) When measuring line count, make sure that we are not bounding the height of the container's size. This will cause the wrong number of lines to be returned.
3) Instead of setting the ascender/descender on an ASTextNode when an attributed string is added, wait until after the renderer calculates size. This way, if there is any need to scale the font to fit we can apply that scale to the ascender/descender.
2016-03-08 12:05:26 -08:00
Eric Jensen
c2f85397ce Mark depreciated protocols with deprivation attribute 2016-03-08 11:56:58 -08:00
Eric Jensen
84357c4a48 Correct a couple more documentation comments 2016-03-08 11:56:58 -08:00
Eric Jensen
3d34c177ed Flatten indentation of parameter hierarchy 2016-03-08 11:56:58 -08:00
Eric Jensen
86ccd33a84 Correct a few documentation comments for method parameters 2016-03-08 11:56:58 -08:00
Tom King
1457e97c59 create local variables for performance and clarity 2016-03-08 08:54:07 -05:00
Scott Goodson
5c28bb8e21 [ASScrollDirection] Ensure definitions of "positive" scroll direction in batch context match the layout controller. 2016-03-08 00:53:06 -08:00
appleguy
6b74ad75a1 Merge pull request #1341 from rahul-malik/rmalik-run-loop-queue
[ASRunLoopQueue] Refactor the run loop implementation code into a reusable queue abstraction.
2016-03-07 23:53:07 -08:00
Rahul Malik
f388180a1d Refactor the run loop implementation code into a proper queue abstraction.
ASRunLoopQueue can process a specified number of items per run loop iteration
via a block based api.
2016-03-07 23:49:50 -08:00
Scott Goodson
9c0d0542dd [ASScrollDirection] Fix scroll direction interpretation after recent changes to this logic. 2016-03-07 22:50:48 -08:00
Scott Goodson
39f5686982 Revert "[_ASAsyncTransaction] Reduce locking overhead by removing C++ stack-allocated MutexLocker objects."
Locking was not quite right here in a certain case where the transaction leaves after other references
were removed.  Will restore this optimization in the future with more time to analyze.

This reverts commit ee524f497d0692a2c0c6ea39bd3840183a00f3ed.
2016-03-07 14:46:06 -08:00
Tom King
f4d5791717 in ASTextNode, bail from touchesMoved:withEvent: if the previousLocationInView is the same as the locationInView. On 3D Touch enabled phones, this gets fired with chages in force, and will usually get fired immediately after touchedBegan:withEvent, causing touches to usually be cancelled 2016-03-07 17:15:30 -05:00
Scott Goodson
9e72679ffd [ASDataController] Swap order of section / item in optimized indexpath creation from yesterday :). 2016-03-07 12:08:31 -08:00
Rahul Malik
5af8b78d78 Transfer node ownership from renderQueue to displayingNodes queue before removing
the node from the renderQueue.
2016-03-07 11:30:23 -08:00
Rahul Malik
62a39c49ea Break up scheduling of node rendering across various run loops 2016-03-06 12:33:31 -08:00
appleguy
e56c3b03f2 Merge pull request #1332 from facebook/ASDataReload
[ASDataController] If app code issues edit commands before first reload, ignore them, as UIKit will call -reloadData.
2016-03-05 23:00:12 -08:00