mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-09-17 01:08:05 +00:00
Update automatic range mode at the beginning of the update pass to consider new information in a possible next pass
This commit is contained in:
parent
b2eaf83264
commit
568aa6c2fb
@ -23,6 +23,7 @@
|
|||||||
ASScrollDirection _scrollDirection;
|
ASScrollDirection _scrollDirection;
|
||||||
NSSet<NSIndexPath *> *_allPreviousIndexPaths;
|
NSSet<NSIndexPath *> *_allPreviousIndexPaths;
|
||||||
ASLayoutRangeMode _currentRangeMode;
|
ASLayoutRangeMode _currentRangeMode;
|
||||||
|
BOOL _didUpdateCurrentRange;
|
||||||
BOOL _didRegisterForNotifications;
|
BOOL _didRegisterForNotifications;
|
||||||
CFAbsoluteTime _pendingDisplayNodesTimestamp;
|
CFAbsoluteTime _pendingDisplayNodesTimestamp;
|
||||||
}
|
}
|
||||||
@ -39,6 +40,7 @@
|
|||||||
|
|
||||||
_rangeIsValid = YES;
|
_rangeIsValid = YES;
|
||||||
_currentRangeMode = ASLayoutRangeModeInvalid;
|
_currentRangeMode = ASLayoutRangeModeInvalid;
|
||||||
|
_didUpdateCurrentRange = NO;
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
@ -74,6 +76,7 @@
|
|||||||
- (void)updateCurrentRangeWithMode:(ASLayoutRangeMode)rangeMode
|
- (void)updateCurrentRangeWithMode:(ASLayoutRangeMode)rangeMode
|
||||||
{
|
{
|
||||||
_currentRangeMode = rangeMode;
|
_currentRangeMode = rangeMode;
|
||||||
|
_didUpdateCurrentRange = YES;
|
||||||
|
|
||||||
[self scheduleRangeUpdate];
|
[self scheduleRangeUpdate];
|
||||||
}
|
}
|
||||||
@ -139,8 +142,8 @@
|
|||||||
|
|
||||||
ASInterfaceState selfInterfaceState = [_dataSource interfaceStateForRangeController:self];
|
ASInterfaceState selfInterfaceState = [_dataSource interfaceStateForRangeController:self];
|
||||||
ASLayoutRangeMode rangeMode = _currentRangeMode;
|
ASLayoutRangeMode rangeMode = _currentRangeMode;
|
||||||
if (rangeMode == ASLayoutRangeModeInvalid) {
|
if (!_didUpdateCurrentRange) {
|
||||||
rangeMode = ASLayoutRangeModeMinimum;
|
rangeMode = [ASRangeController rangeModeForInterfaceState:selfInterfaceState currentRangeMode:_currentRangeMode];
|
||||||
}
|
}
|
||||||
|
|
||||||
ASRangeTuningParameters parametersFetchData = [_layoutController tuningParametersForRangeMode:rangeMode
|
ASRangeTuningParameters parametersFetchData = [_layoutController tuningParametersForRangeMode:rangeMode
|
||||||
@ -179,8 +182,8 @@
|
|||||||
[allIndexPaths unionSet:_allPreviousIndexPaths];
|
[allIndexPaths unionSet:_allPreviousIndexPaths];
|
||||||
_allPreviousIndexPaths = allCurrentIndexPaths;
|
_allPreviousIndexPaths = allCurrentIndexPaths;
|
||||||
|
|
||||||
// Update the current range mode based on interface state
|
_currentRangeMode = rangeMode;
|
||||||
_currentRangeMode = [ASRangeController rangeModeForInterfaceState:selfInterfaceState currentRangeMode:_currentRangeMode];
|
_didUpdateCurrentRange = NO;
|
||||||
|
|
||||||
if (!_rangeIsValid) {
|
if (!_rangeIsValid) {
|
||||||
[allIndexPaths addObjectsFromArray:ASIndexPathsForMultidimensionalArray(allNodes)];
|
[allIndexPaths addObjectsFromArray:ASIndexPathsForMultidimensionalArray(allNodes)];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user