mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
Readd ASDisplayShouldFetchBatchForContext
This commit is contained in:
@@ -32,4 +32,24 @@ ASDISPLAYNODE_EXTERN_C_BEGIN
|
|||||||
*/
|
*/
|
||||||
BOOL ASDisplayShouldFetchBatchForScrollView(UIScrollView<ASBatchFetchingScrollView> *scrollView, ASScrollDirection scrollDirection, CGPoint contentOffset);
|
BOOL ASDisplayShouldFetchBatchForScrollView(UIScrollView<ASBatchFetchingScrollView> *scrollView, ASScrollDirection scrollDirection, CGPoint contentOffset);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@abstract Determine if batch fetching should begin based on the state of the parameters.
|
||||||
|
@param context The batch fetching context that contains knowledge about in-flight fetches.
|
||||||
|
@param scrollDirection The current scrolling direction of the scroll view.
|
||||||
|
@param bounds The bounds of the scrollview.
|
||||||
|
@param contentSize The content size of the scrollview.
|
||||||
|
@param targetOffset The offset that the scrollview will scroll to.
|
||||||
|
@param leadingScreens How many screens in the remaining distance will trigger batch fetching.
|
||||||
|
@return Whether or not the current state should proceed with batch fetching.
|
||||||
|
@discussion This method is broken into a category for unit testing purposes and should be used with the ASTableView and
|
||||||
|
* ASCollectionView batch fetching API.
|
||||||
|
*/
|
||||||
|
extern BOOL ASDisplayShouldFetchBatchForContext(ASBatchContext *context,
|
||||||
|
ASScrollDirection scrollDirection,
|
||||||
|
CGRect bounds,
|
||||||
|
CGSize contentSize,
|
||||||
|
CGPoint targetOffset,
|
||||||
|
CGFloat leadingScreens);
|
||||||
|
|
||||||
ASDISPLAYNODE_EXTERN_C_END
|
ASDISPLAYNODE_EXTERN_C_END
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
BOOL ASDisplayShouldFetchBatchForScrollView(UIScrollView<ASBatchFetchingScrollView> *scrollView, ASScrollDirection scrollDirection, CGPoint contentOffset)
|
BOOL ASDisplayShouldFetchBatchForScrollView(UIScrollView<ASBatchFetchingScrollView> *scrollView, ASScrollDirection scrollDirection, CGPoint contentOffset)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Don't fetch if the scroll view does not allow
|
// Don't fetch if the scroll view does not allow
|
||||||
if (![scrollView canBatchFetch]) {
|
if (![scrollView canBatchFetch]) {
|
||||||
return NO;
|
return NO;
|
||||||
@@ -21,7 +20,16 @@ BOOL ASDisplayShouldFetchBatchForScrollView(UIScrollView<ASBatchFetchingScrollVi
|
|||||||
CGRect bounds = scrollView.bounds;
|
CGRect bounds = scrollView.bounds;
|
||||||
CGSize contentSize = scrollView.contentSize;
|
CGSize contentSize = scrollView.contentSize;
|
||||||
CGFloat leadingScreens = scrollView.leadingScreensForBatching;
|
CGFloat leadingScreens = scrollView.leadingScreensForBatching;
|
||||||
|
return ASDisplayShouldFetchBatchForContext(context, scrollDirection, bounds, contentSize, contentOffset, leadingScreens);
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ASDisplayShouldFetchBatchForContext(ASBatchContext *context,
|
||||||
|
ASScrollDirection scrollDirection,
|
||||||
|
CGRect bounds,
|
||||||
|
CGSize contentSize,
|
||||||
|
CGPoint targetOffset,
|
||||||
|
CGFloat leadingScreens)
|
||||||
|
{
|
||||||
// Do not allow fetching if a batch is already in-flight and hasn't been completed or cancelled
|
// Do not allow fetching if a batch is already in-flight and hasn't been completed or cancelled
|
||||||
if ([context isFetching]) {
|
if ([context isFetching]) {
|
||||||
return NO;
|
return NO;
|
||||||
@@ -41,11 +49,11 @@ BOOL ASDisplayShouldFetchBatchForScrollView(UIScrollView<ASBatchFetchingScrollVi
|
|||||||
|
|
||||||
if (ASScrollDirectionContainsDown(scrollDirection)) {
|
if (ASScrollDirectionContainsDown(scrollDirection)) {
|
||||||
viewLength = bounds.size.height;
|
viewLength = bounds.size.height;
|
||||||
offset = contentOffset.y;
|
offset = targetOffset.y;
|
||||||
contentLength = contentSize.height;
|
contentLength = contentSize.height;
|
||||||
} else { // horizontal / right
|
} else { // horizontal / right
|
||||||
viewLength = bounds.size.width;
|
viewLength = bounds.size.width;
|
||||||
offset = contentOffset.x;
|
offset = targetOffset.x;
|
||||||
contentLength = contentSize.width;
|
contentLength = contentSize.width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user