1964 Commits

Author SHA1 Message Date
Garrett Moon
e296cad8ee Add support for visibility depth
Summary:
This adds support for the concept of visibility depth.

Visibility essentially defines the number of user actions it would
take a user to have a view controller visible. Knowing a view controllers
visibility depth allows view controllers to take action such as clearing
out memory that can be restored at a later date.

This patch also add two new view controller subclasses which adopt
the ASManagesChildVisibilityDepth protocol. Any view controller
that has child view controllers can adopt this protocol to indicate
to the child what they're visibility is. For example, ASNavigationController
will return a visibility depth of it's own visibilityDepth + 1 for
a view controller that would be revealed by tapping the back button.

Move common implementations to macros

Turn off visibility logging

Differential Revision: https://phabricator.pinadmin.com/D90395
2016-05-12 13:42:05 -07:00
Garrett Moon
b7b8ad54fd Move common implementations to macros 2016-05-12 13:42:05 -07:00
Garrett Moon
af7a2f09d7 Add support for visibility depth
This adds support for the concept of visibility depth.

Visibility essentially defines the number of user actions it would
take a user to have a view controller visible. Knowing a view controllers
visibility depth allows view controllers to take action such as clearing
out memory that can be restored at a later date.

This patch also add two new view controller subclasses which adopt
the ASManagesChildVisibilityDepth protocol. Any view controller
that has child view controllers can adopt this protocol to indicate
to the child what they're visibility is. For example, ASNavigationController
will return a visibility depth of it's own visibilityDepth + 1 for
a view controller that would be revealed by tapping the back button.
2016-05-12 13:42:05 -07:00
Garrett Moon
b34e8d78de ASViewController.m -> ASViewController.mm upstream 2016-05-12 13:40:32 -07:00
rcancro
8e444092be [ASEnvironment] Remove unneeded locking on environmentState 2016-05-12 13:13:30 -07:00
Erekle
ae5440ad11 updated example 2016-05-12 13:26:39 +04:00
Erekle
d0345549f6 Merge remote-tracking branch 'facebook/master' into ASVideoPlayerNode
# Conflicts:
#	AsyncDisplayKit.xcodeproj/project.pbxproj
2016-05-12 13:05:24 +04:00
Erekle
e0074524c3 new ASVideoPlayerNodeDelegate methods. comments in header 2016-05-12 12:59:32 +04:00
appleguy
efc81f5a1c Merge pull request #1592 from rcancro/displayTraits
[ASViewController] Add support for ASTraitCollection
2016-05-11 21:19:55 -07:00
Erekle
441f9632cd ASVideoPlayer layout delegation 2016-05-12 01:29:54 +04:00
rcancro
cfa9dcda56 typo and comment 2016-05-11 14:08:06 -07:00
Erekle
58101feeee event better duration handling. time label attributes delegation 2016-05-11 23:22:17 +04:00
Michael Schneider
9b3ecd28a9 Fix position of loading spinner in ASVideoNode 2016-05-11 20:14:22 +02:00
Erekle
9fe57ea583 ASVideoPlayerDelegate first steps 2016-05-11 21:55:53 +04:00
rcancro
4b54144f55 Levi's comments 2016-05-11 10:21:11 -07:00
Erekle
975690744b Merge remote-tracking branch 'facebook/master' into ASVideoPlayerNode 2016-05-11 20:43:57 +04:00
appleguy
25feefeafb Merge pull request #1643 from levi/patch-14
[ASAsyncTransactionGroup] Create a new hash table on commit to prevent copy
2016-05-10 16:53:02 -07:00
rcancro
ffde31a1b2 Fixed a crash in ASTextNode that I made
fixes a crash introduced by https://github.com/facebook/AsyncDisplayKit/pull/1637
2016-05-10 15:25:34 -07:00
Levi McCallum
905f3a23b0 Create a new hash table on commit to prevent copy
Resolves #1342
2016-05-10 15:00:31 -07:00
rcancro
2995271346 add ASTraitCollection to umbrella header 2016-05-10 14:45:26 -07:00
rcancro
0806f529a3 change ASCOllectionNode back .mm file 2016-05-10 14:45:16 -07:00
rcancro
9d622c7eac changed DisplayTraits to TraitCollection 2016-05-10 14:45:03 -07:00
rcancro
a04cbb6e4f include displayContext in equality check 2016-05-10 14:44:48 -07:00
rcancro
f828d079fa added nsobject based ASDisplayTraits class 2016-05-10 14:44:43 -07:00
rcancro
35820e58a0 add locking to collection state propagation 2016-05-10 14:44:37 -07:00
rcancro
b4a6f87ca6 addressed some comments 2016-05-10 14:44:32 -07:00
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
Erekle
03444a9807 minor layout change 2016-05-11 00:18:26 +04:00
Erekle
52b40f8004 ASVideoPlayerNodeControlType and fixes
* changed static string to ASVideoPlayerNodeControlType
* public property for duration
* public method for seek
* new _controlFlexGrowSpacerSpec; used to use flexible space in
controlbar. for example if user does not want to have scrubber, he can
replace it with flexible spacer and duration text node will be kept at
the right edge.
2016-05-10 23:57:47 +04: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
Erekle
716082d411 better duration handling. new ASVideoNode states 2016-05-10 22:48:32 +04:00
Erekle
3367b4fc49 slider changes 2016-05-10 22:05:07 +04:00
Erekle
b09d0dca9e Merge remote-tracking branch 'facebook/master' into ASVideoPlayerNode 2016-05-10 20:19:13 +04: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