Scott Goodson
b8602d1073
Fix ASBasicImageDownloader tests - prevent use of init / new instead of +sharedImageDownloader.
2015-12-20 15:42:57 -08:00
Scott Goodson
92126f0d66
Support surprisingly nice automatic behavior for the unsupported case of view-backed nodes as children of layer-backed ones.
2015-12-19 20:33:28 -08:00
Scott Goodson
bbc0452a7a
Improve UIView & CALayer handling of -addSubnode:, and ensure node hierarchies are hooked up even when addSubview: is used directly.
2015-12-19 18:29:05 -08:00
Scott Goodson
578d0f4f78
Final cleanup for initial version of removing the UIWindow-based render range.
...
The UIWindow mode remains enabled by default, but rendering and the test suite works correctly both enabled and disabled.
2015-12-18 18:47:08 -08:00
Scott Goodson
6ad1503556
Merge branch 'master' into RemoveWorkingWindow
2015-12-11 22:42:13 -08:00
Scott Goodson
00fe336ae7
Merge branch 'master' into RemoveWorkingWindow
2015-12-11 21:34:45 -08:00
Garrett Moon
941a732fd6
Rename and move ASMainSerialQueue to its own class
2015-12-11 10:53:06 -08:00
Garrett Moon
066596314e
Fix deadlock when an editing transaction needs to perform its work on the main thread, and then elsewhere, on the main thread, we block waiting for all editing transactions to finish
2015-12-11 10:45:23 -08:00
Garrett Moon
f94229796c
Fixes out of order blocks running on main queue in ASDataController
...
ASDataController’s completedNodes is accessed by treating the main thread as a serial queue. The *problem* is, operations can cut in line by being added while on the main thread. I.e. it just calls the block instead of dispatch_async’ing to the main thread. This results in data inconsistency.
To address this, I've added a queue of operations which get run serially (not to be confused with a serial dispatch queue). Instead of running blocks directly on the main thread, if it’s called while not on the main thread, it dispatch_asyncs to the main thread and runs any blocks in the queue. If it *is* on the main thread, it runs any blocks already in the queue and then runs the block.
2015-12-11 10:45:22 -08:00
appleguy
c9a0a3d46f
Merge pull request #918 from levi/master
...
Inline supplementary kind iteration in data controller
2015-12-07 12:58:25 -08:00
Scott Goodson
88b36f58e7
Ensure an empty array is returned if visibleNodes is called before any nodes are complete.
2015-12-06 21:45:46 -08:00
Levi McCallum
223cac1784
Inline supplementary kind iteration in data controller
2015-12-06 21:31:40 -08:00
appleguy
f6cc2067e9
Merge pull request #917 from levi/master
...
Ensure that newly inserted section supplementary nodes are added to backing store
2015-12-06 21:25:47 -08:00
Levi McCallum
64da9e7ece
Ensure that new section supplementary nodes are inserted into backing store
2015-12-06 20:07:29 -08:00
Scott Goodson
840884272d
Introduced ASHierarchyState. Created ASDisplayNode+FrameworkPrivate.h. Fixed deadlock.
2015-12-05 22:20:16 -08:00
Scott Goodson
ee917ae210
Disable verbose logging, re-enable working window to merge WIP and avoid conflicts.
2015-12-01 16:48:59 -08:00
Scott Goodson
7f59beb195
Initial experimental commit with functioning preloading, without the working window.
2015-11-30 19:01:57 -08:00
Levi McCallum
a0c05ebffc
Rename CK classes to AS classes
2015-11-30 06:44:53 -08:00
appleguy
937b72b64a
Merge pull request #879 from levi/levi/custom-layout-example
...
Add custom collection view layout example project
2015-11-29 22:14:31 -08:00
Scott Goodson
936730d46b
ASInterfaceStateVisible is now being driven by a new ASRangeHandlerVisible.
2015-11-29 13:24:42 -08:00
Scott Goodson
1ed22866b1
Working implementation of ASInterfaceState for Display and FetchData behaviors.
2015-11-28 22:48:30 -08:00
Levi McCallum
36d24950e0
Add custom collection view layout example project
2015-11-27 18:58:44 -08:00
appleguy
15f718ddc9
Merge pull request #868 from levi/levi/remove-deprecated
...
Clean up syntax and organization of ASRangeController
2015-11-23 21:24:58 -08:00
Levi McCallum
c6d4ed0dc3
Update documentation on the ASRangeController layoutController property
2015-11-19 18:26:50 -08:00
Levi McCallum
e05c4b7419
Separate range controller delegate methods into separate data source
2015-11-19 16:01:38 -08:00
Levi McCallum
09a2e086b0
Clean up syntax and method ordering in ASRangeController
2015-11-19 14:03:53 -08:00
Levi McCallum
e9a32bfd3c
Remove deprecated layout controller methods
2015-11-19 11:48:06 -08:00
Scott Goodson
2a0b9c8e14
Substantially improve behavior of nested Table & Collection Nodes
...
This ensures memory cleanup happens correctly and introduces a new test project
to support developing new features while stressing tough use cases for correctness.
2015-11-14 15:25:35 -08:00
Scott Goodson
bfe908bc8a
Fix for behavior difference between CA and UIKit that causes mutation crash
2015-11-09 13:41:25 -08:00
Scott Goodson
40237a52fc
Patch for properly tearing down Working Window
2015-11-08 18:24:58 -08:00
Scott Goodson
e0f40d5644
Fix unusual cell content blanking issue when making existing cells much taller.
2015-11-07 23:08:53 -08:00
appleguy
0598935957
Merge pull request #793 from nguyenhuy/ImproveCellNodeRelayout
...
ASCellNode delegate to automatically resize in table & collection when -setNeedsLayout called.
2015-11-01 11:11:32 -08:00
Scott Goodson
3175ce2fe7
Fix retain cycle in basic, cache-less ASNetworkImageNodes
...
This should not directly affect more complex apps that don't use the ASBasicImageDownloader.
Also disables the default-on text placeholders, as they churn memory during the measurement pass.
These were intended to be written with pure layers (without using backing stores), so I don't
think it is a reasonable default-on behavior until that is fixed.
2015-10-30 22:42:05 -07:00
Huy Nguyen
cd31f884dd
Move ASDisplayNodePerformBlockOnMainThread to ASInternalHelpers
2015-10-29 16:09:36 +02:00
appleguy
2c8626e1f6
Merge pull request #753 from nguyenhuy/DataControllerSortedTransaction
...
Sort edit commands during batch updating of table and collection views
2015-10-26 13:40:06 -07:00
Huy Nguyen
b77522bf4f
Remove debugging names of ASDisplayNode and _ASDisplayLayer
...
- They are neither considered internally nor in tests. And when they are accidently considered, they cause tests to fail.
- Developers can easily set debugging names themselves whenever needed.
2015-10-26 07:44:59 +02:00
Huy Nguyen
fd0b3aaf52
Revert "Revert "Make ASDisplayNode.name Thread Safe""
...
This reverts commit 906d7c759b .
2015-10-26 06:29:01 +02:00
Huy Nguyen
8745a478ec
Add documentation to ASChangeSetDataController.
2015-10-26 06:22:30 +02:00
Huy Nguyen
5ea4b1b92d
Implement ASChangeSetDataController.
2015-10-26 06:22:30 +02:00
appleguy
8dddcaa74b
Merge pull request #766 from levi/levi/synchronous-reloaddata
...
Add synchronous reloadData methods to ASTableView and ASCollectionView
2015-10-25 21:05:52 -07:00
Levi McCallum
722b90f1cf
Implement basic immediate reloadData method on table and collection view
2015-10-22 21:28:44 -07:00
Levi McCallum
c33d6efa8a
WIP synchronous reload data on collection view
2015-10-22 21:28:30 -07:00
Levi McCallum
6569893c23
Reset inspector selector implementation cache correctly
2015-10-22 18:54:07 -07:00
Levi McCallum
e8ce7fcbb2
Clean up caching of collection view delegate selectors on the inspector
2015-10-21 23:17:38 -07:00
Levi McCallum
45ff74b604
Remove array fallback on editing node index paths
2015-10-21 23:17:38 -07:00
Levi McCallum
5736e7c2d2
Clarify editing transaction documentation
2015-10-21 23:17:37 -07:00
Levi McCallum
5645724984
Use pointer comparison helpers for string equality
2015-10-21 23:17:37 -07:00
Levi McCallum
ad82c72eb4
Cache flow layout delegate in local variable
2015-10-21 23:17:37 -07:00
Levi McCallum
413307a973
Assert flow layout inspector always initializes with a flow layout
2015-10-21 23:17:37 -07:00
Levi McCallum
5ca14486b6
Make array instantiation consistent
2015-10-21 23:17:37 -07:00