Commit Graph
5091 Commits
Author SHA1 Message Date
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
appleguy 17d1cbec7b Merge pull request #1359 from facebook/RangeMemory
[ASRangeController] Improvements to application state change and memory warning handling
2016-03-09 23:15:13 -08:00
Scott Goodson f2409bdc0a Merge remote-tracking branch 'origin/RangeMemory' into RangeMemory
Conflicts:
	AsyncDisplayKit/Details/ASRangeController.mm
2016-03-09 21:23:25 -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 c385423fb3 [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:06:23 -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
Eric Jensen a3331b42ae Replace sleep() in ASBasicImageDownloaderTests with XCTest asynchronous expectations 2016-03-09 18:57:31 -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
Levi McCallum 52391dcc27 Change method name in implementation 2016-03-09 10:42:56 -08:00
Levi McCallum a07f7b73f0 Change method name in header 2016-03-09 10:42:35 -08:00
Levi McCallum d4a0c34d86 Add ASSizeRangeMakeWithExactCGSize method 2016-03-09 10:39:46 -08:00
Levi McCallum 167b7d404e Add header for extern ASSizeRangeMakeWithExactCGSize 2016-03-09 10:38:25 -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
appleguy 9759ed0848 Merge pull request #1336 from hannahmbanana/ASImageNodeScaleFactorLabel
[ASImageNode] An ASImageNode debug feature showing pixel scaling amount
2016-03-09 02:11:57 -08:00
Hannah Troisi 3f4b4b9f3c [ASImageNode] More refined naming and documentation for [ASImageNode shouldShowImageScalingOverlay] 2016-03-09 00:43:10 -08:00
Hannah Troisi 51eccb3d96 [ASImageNode] More refined naming and documentation for [ASImageNode shouldShowImageScalingOverlay] 2016-03-08 23:30:17 -08:00
Hannah Troisi 3fe44b4e23 Merge branch 'ASImageNodeScaleFactorLabel' of https://github.com/hannahmbanana/AsyncDisplayKit into ASImageNodeScaleFactorLabel 2016-03-08 23:16:11 -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
Hannah Troisi 91b81d0e80 Merge remote-tracking branch 'facebook/master' 2016-03-08 23:12:42 -08:00
Scott Goodson 8703920d55 [Xcode Project] Add new file to the framework target. Update to recommended build settings to resolve 1 of 1 warnings. 2016-03-08 22:58:27 -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
appleguy 8cbb5d86dc Merge pull request #1344 from eanagel/fix-collection-hang
[ASCollectionView] Ensure that we use the correct default size for collection nodes even if layoutSubviews has not been called yet
2016-03-08 18:10:05 -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