Commit Graph
1881 Commits
Author SHA1 Message Date
rcancro 8bb4eba080 Initial attempt at implementing Display Traits
Initial attempt to get display traits working with ASEnvironment.

To get proper ASDisplayTraits support, you must use an ASViewController. The ASViewController implements UITraitCollection-related methods (`traitCollectionDidChange:`, `willTransitionToTraitCollection:withTransitionCoordinator:`, viewWillTransitionToSize:withTransitionCoordinator`) to update the internal ASDisplayTraits and propagate them to subnodes.

ASTableNode and ASCollectionNode don't actually have their cells as subnodes, so a little bit of trickery is involved (on `setEnvironment:` the table/collection node gets its data controllers completedNodes and propagates the new traits. see `ASDisplayTraitsCollectionTableSetEnvironmentState`). The data controller also passes the current display traits when creating new cells.

ASViewController also supports the ability to return a custom set of display traits. So if you have a modal dialog that should always be told it is in a compact size class, you can set the override block before displaying the VC.

A new example, called Display Traits, has been added. It shows how display traits can be used in a ASViewController with a normal ASDisplayNode as its root, as well as in ASViewControllers hosting table nodes and collection nodes. There is also an example of overriding the default display traits of a VC.

Please provide feedback!
2016-05-10 14:44:22 -07:00
appleguy 495f32f0ef Merge pull request #1570 from maicki/FixASTextNodeAttributedStringInconsitency
[ASTextNode] Fix API ASTextNode API inconsistencies
2016-05-10 13:44:56 -07:00
appleguy a1d2f8ccc6 Merge pull request #1571 from maicki/FixASPagerNodeDataSourceSourceInconsistency
[ASPagerNode] Fix ASPagerNode data source and delegate inconsistencies
2016-05-10 13:44:39 -07:00
appleguy d88e170163 Merge pull request #1624 from maicki/FixDelegateProxyCrash
[Accessibility / iOS 8] Fix 8.0 and 8.1-only, VoiceOver crash when clearing delegate / dataSource for Table or Collection
2016-05-10 13:43:40 -07:00
appleguy db14ccf136 Merge pull request #1637 from rcancro/textShrinkFi
[ASTextNode] Fix to truncation when text font shrinking is engaged
2016-05-10 13:42:38 -07:00
appleguy 8da5523de4 Merge pull request #1630 from maicki/FixASVideoNodeLayout
[ASVideoNode] Move layout of ASVideoNode to layout specs
2016-05-10 12:08:48 -07:00
appleguy 1c98daff43 Merge pull request #1632 from Adlai-Holler/ResolveMultiplexImageNodeLoadLoop
[ASMultiplexImageNode] Do Not Request Already-Loaded Images From Data Source
2016-05-09 18:21:01 -07:00
appleguy dcb8ab8d17 Merge pull request #1635 from Adlai-Holler/MultiplexDownloadProgress
[ASPINRemoteImageDownloader] Call Download Progress Handler
2016-05-09 18:20:41 -07:00
appleguy e8a037250c Merge pull request #1636 from garrettmoon/addSupportForDisablingProgressiveRendering
Add support for disabling progressive image rendering
2016-05-09 17:46:26 -07:00
Garrett Moon 36ce9527de Update comments 2016-05-09 17:20:06 -07:00
rcancro 22e026a5e1 fix truncater method to only return the truncater. 2016-05-09 16:36:27 -07:00
rcancro 082ababda6 Fix to text shrinking
Summary: Previously the first thing we did when calculating the size of text was to truncate it. This could lead to ASFontSizeAdjuster being sent a truncated string which, obviously, never needed to shrink. If we change the order then we first shrink, then truncate if still necessary.

Reviewers: scottg, levi, garrett

Differential Revision: https://phabricator.pinadmin.com/D89780
2016-05-09 15:59:08 -07:00
Garrett Moon c0eb6cac09 Add support for disabling progressive image rendering
Differential Revision: https://phabricator.pinadmin.com/D89742
2016-05-09 15:01:05 -07:00
Adlai Holler f9cd9730f7 Add nullability to ASPINRemoteImageDownloader.h 2016-05-07 15:55:00 -07:00
Adlai Holler 2e2ebe8c08 [ASPINRemoteImageDownloader] Replace instancetype with actual class name for shared instance 2016-05-07 15:53:28 -07:00
Adlai Holler 33d0919b1f [ASImageProtocols] Be smarter about nullability with image downloader protocol 2016-05-07 15:50:03 -07:00
Adlai Holler 68e324d2d0 Improve commentary 2016-05-07 15:18:11 -07:00
Adlai Holler 654518b2b9 Fix nullability of ASMultiplexImageNode.imageManager 2016-05-07 15:16:52 -07:00
Adlai Holler fab117b824 [ASPINRemoteImageDownloader] Call download progress handler 2016-05-07 15:14:30 -07:00
Adlai Holler 253692df65 [ASMultiplexImageNode] Do not request already-loaded images from data source to avoid loop 2016-05-06 21:45:31 -07:00
Michael Schneider d1054d6ed9 Move from ASSentinel to a atomic int 2016-05-05 20:25:07 -07:00
Michael Schneider dc6d2e7660 Improve Transition ID handling 2016-05-05 20:25:07 -07:00
Michael Schneider cac4ed5626 Move layout of ASVideoNode to layout specs
- This should fix adjusting a custom play button position
- Fix sample project use of ASVideoNode
2016-05-05 16:49:01 -07:00
appleguy 62a853b3e9 Merge pull request #1618 from garrettmoon/fixLayoutDeadlock
[ASDisplayNode] Fix rare deadlock when performing layout on multiple threads with the same node.
2016-05-05 12:47:08 -07:00
Garrett Moon dc56c060d0 Add comment for why lock is added. 2016-05-05 10:02:29 -07:00
Michael Schneider bc8489528e Fix crash in delegate / dataSource proxies for ASCollectionView and ASTableView 2016-05-04 21:03:43 -07:00
Michael Schneider 90c3dbc324 Add better comments for deprecated ASTextNode properties 2016-05-04 21:03:31 -07:00
Michael Schneider 29ab87a1e4 Fix API ASTextNode API inconsistencies
- Deprecate attributedString in ASTextNode in favor of attributedText to be aligned with UILabel
- Deprecate truncationAttributedString in ASTextNode in favor of truncationAttributedText to be aligned with attributedText
2016-05-04 21:03:31 -07:00
Michael Schneider cad221007e Remove extending NSObject protocol in ASPagerDelegate as ASCollectionDelegate already extends it 2016-05-04 21:03:13 -07:00
Michael Schneider 298b9a2be7 Fix ASPagerNode data source and delegate inconsistencies
- Change ASPagerNodeDataSource -> ASPagerDataSource
- Add ASPagerDelegate
2016-05-04 21:03:13 -07:00
appleguy 3ee6c88ae4 Merge pull request #1608 from Eke/master
[ASVideoNode] Several new delegate methods and ASVideoNodePlayerState to monitor and control playback
2016-05-04 20:33:23 -07:00
Adlai Holler 646797e335 [ASMapNode: Snapshotting] Cancel on dealloc, avoid retaining self 2016-05-04 18:25:22 -07:00
Erekle 5c3770e543 fixes 2016-05-05 02:03:03 +04:00
Erekle 82cc6f49f2 coding style fixes 2016-05-05 01:49:52 +04:00
Garrett Moon 025dd55312 Dang, message local var, not ivar 2016-05-03 15:59:21 -07:00
Garrett Moon 938ecd9b6f Fix deadlock when laying out on multiple threads
Summary:
We observed a deadlock which occurred when two threads were laying out the same set of nodes.

On one thread, layout would occur on a leaf node. It would lock and as part of this layout
process, ASDK walks up the node tree and calls __setNeedsLayout on its supernode until it
reaches the supernode with no supernode. When the supernode gets its call to __setNeedsLayout
it also locks. So leaf node locks and then awaits supernode lock.

On another thread, we're doing a layout pass on the supernode in the above thread. This locks
the supernode and attempts to lock the leaf node. This deadlocks (remember the above thread
is holding onto the leaf lock and awaiting the supernode lock. This thread is holding onto
the supernode lock and awaiting the leaf lock).

This is all exacerbated by the use of recursive locks.
2016-05-03 15:56:38 -07:00
Erekle b3af10d4ad Merge remote-tracking branch
# Conflicts:
#	AsyncDisplayKit/ASVideoNode.mm
2016-05-03 22:59:54 +04:00
appleguy a9e742c92f Merge pull request #1606 from wendylu/render_fix
[ASNetworkImageNode] Fix threading issue in current image quality
2016-05-02 18:02:29 -07:00
Erekle 34e6238391 _delegateFlags
added _delegateFlags like in ASCollectionView
2016-05-01 17:11:40 +04:00
Robin Chou b700eeb32c Use ASPerformOnMainThread helper. -fetchData improvements. 2016-04-30 17:22:11 -04:00
Wendy fd4d18259e Use dispatch_async for setting currentImageQuality to ensure current order 2016-04-29 22:30:56 -07:00
Erekle 2c2a73dc83 playbackBufferEmpty and spinner
added playbackBufferEmpty logic, moved spinner show/hide to separate
methods.
2016-04-29 20:49:14 +04:00
Erekle 399703dbb2 new delegate methods
Added new delegate methods; updated Videos example project
2016-04-29 12:59:15 +04:00
Robin Chou 75b55974b5 Loads asset values with -loadValuesAsync. 2016-04-28 20:02:15 -04:00
Wendy 492d0d7ad6 [ASNetworkImageNode] Fix threading issue in current image quality
Summary:
Because we trampoline to main when setting _currentImageQuality, there would be situations where displayWillStart was called, we get a cached image and set currentImageQuality to 1.0, and then a background thread calling setDefaultImage would enqueue an operation that sets currentImageQuality to 0 and overwrites the correct value
2016-04-28 14:52:31 -07:00
appleguy 1a2184db98 Merge pull request #1599 from ejensen/video-ui-blocking
[ASVideoNode] Fix UI thread blocking with remote assets
2016-04-26 23:26:15 -07:00
Eric Jensen f2ab6ca6dd Restructure conditional logic 2016-04-26 23:15:14 -07:00
Eric Jensen fcf4a4d112 Prevent unnecessary locking when generating a placeholder image on a background thread 2016-04-26 19:44:53 -07:00
Eric Jensen e3817ac42d Prevent UI blocking caused by accessing the AVAsset's 'tracks' property on the UI thread 2016-04-26 19:42:05 -07:00
Wendy fe5c4caf90 Lock properly when setting currentImageQuality 2016-04-26 18:35:03 -07:00