less logs

This commit is contained in:
Avently
2025-01-21 18:35:06 -08:00
parent ed5ddc1884
commit da328ca9ff
3 changed files with 14 additions and 39 deletions
@@ -98,19 +98,18 @@ struct MergedItems {
// found item that is considered as a split
if let unclosedSplitIndex, let unclosedSplitIndexInParent {
// it was at least second split in the list
splitRanges.append(SplitRange(itemId: items[unclosedSplitIndex].id, indexRangeInReversed: unclosedSplitIndex ... index - 1, indexRangeInParentItems: unclosedSplitIndexInParent ... visibleItemIndexInParent - 1))
splitRanges.append(SplitRange(indexRangeInReversed: unclosedSplitIndex ... index - 1, indexRangeInParentItems: unclosedSplitIndexInParent ... visibleItemIndexInParent - 1))
}
unclosedSplitIndex = index
unclosedSplitIndexInParent = visibleItemIndexInParent
} else if index + 1 == items.count, let unclosedSplitIndex, let unclosedSplitIndexInParent {
// just one split for the whole list, there will be no more, it's the end
splitRanges.append(SplitRange(itemId: items[unclosedSplitIndex].id, indexRangeInReversed: unclosedSplitIndex ... index, indexRangeInParentItems: unclosedSplitIndexInParent ... visibleItemIndexInParent))
splitRanges.append(SplitRange(indexRangeInReversed: unclosedSplitIndex ... index, indexRangeInParentItems: unclosedSplitIndexInParent ... visibleItemIndexInParent))
}
indexInParentItems[item.id] = visibleItemIndexInParent
index += 1
}
logger.debug("LALAL STEP 7")
logger.debug("LALAL SPLITs IN MERGED \(String(describing: splitRanges)) in state \(chatState.splits)")
var snapshot = NSDiffableDataSourceSnapshot<ReverseListSection, MergedItem>()
snapshot.appendSections([ReverseListSection.main])
snapshot.appendItems(mergedItems)
@@ -225,9 +224,6 @@ enum MergedItem: Hashable, Equatable {
}
struct SplitRange {
// added in iOS only to check whether the state is synchronized.
// TODO: find a better way to synchronize MergedItems with ActiveChatState && reversedChatItems
let itemId: Int64
/** range of indexes inside reversedChatItems where the first element is the split (it's index is [indexRangeInReversed.first])
* so [0, 1, 2, -100-, 101] if the 3 is a split, SplitRange(indexRange = 3 .. 4) will be this SplitRange instance
* (3, 4 indexes of the splitRange with the split itself at index 3)
@@ -80,7 +80,6 @@ func preloadItems(_ mergedItems: MergedItems, _ allowLoadMoreItems: Bool, _ list
if let split, split.indexRangeInParentItems.lowerBound + remaining > firstVisibleIndex {
let index = items.count - 1 - split.indexRangeInReversed.lowerBound
if index >= 0 {
logger.debug("LALAL SPLITS \(String(describing: splits)) \(index) \(split.indexRangeInParentItems.debugDescription) \(items.firstIndex(where: { item in item.id == ItemsModel.shared.chatState.splits.first! }) ?? -1) \(ItemsModel.shared.chatState.splits.first!) \(items[index].id) \(String(describing: items.map({ item in item.id })))")
let loadFromItemId = items[index].id
_ = await loadItems(ChatPagination.after(chatItemId: loadFromItemId, count: ChatPagination.PRELOAD_COUNT))
}
+12 -32
View File
@@ -371,45 +371,25 @@ struct ReverseList<Content: View>: UIViewControllerRepresentable {
nil
}
let nowFirstIndex: Int? = if let wasFirstId { indexInParentItems[wasFirstId] } else { nil }
// let countDiff = if let wasFirstIndex, let nowFirstIndex {
// nowFirstIndex - wasFirstIndex
// } else {
// 0
// }
//if countDiff > 0 {
//self.stopScrolling()
//}
self.prevSnapshot = snapshot
self.prevMergedItems = mergedItems
dataSource.apply(
snapshot,
animatingDifferences: false
)
// logger.debug("LALAL WAS0 \(self.prevSnapshot.itemIdentifiers.map({ item in item.newest().item.id}))")
// logger.debug("LALAL WAS1 \(snapshot.itemIdentifiers.map({ item in item.newest().item.id}))")
// sometimes it moved position but there is no reason for it - dataset has same item indexes
let tableViewProducedDiff = if let wasFirst = listState?.firstVisibleItemIndex, let nowFirst = self.getListState()?.firstVisibleItemIndex {
0//wasFirst - nowFirst
} else {
0
}
let countDiff = if let wasFirstIndex, let nowFirstIndex {
nowFirstIndex - wasFirstIndex - tableViewProducedDiff
nowFirstIndex - wasFirstIndex
} else { 0 }
logger.debug("LALAL NEARSPLIT split lower WAS LISTSTATE \(listState?.firstVisibleItemIndex ?? -3) now \(self.getListState()?.firstVisibleItemIndex ?? -4) countDiff \(countDiff) (tableDiff \(tableViewProducedDiff)) wasFirstIndex \(wasFirstIndex ?? -5) nowIndex \(nowFirstIndex ?? -1) wasFirstId \(wasFirstId ?? -1) count \(self.prevSnapshot.itemIdentifiers.count)")
//logger.debug("LALAL NEARSPLIT split lower WAS LISTSTATE \(listState?.firstVisibleItemIndex ?? -3) now \(self.getListState()?.firstVisibleItemIndex ?? -4) countDiff \(countDiff) wasFirstIndex \(wasFirstIndex ?? -5) nowIndex \(nowFirstIndex ?? -1) wasFirstId \(wasFirstId ?? -1) count \(self.prevSnapshot.itemIdentifiers.count)")
if countDiff <= 0 && tableViewProducedDiff == 0 {
if countDiff <= 0 {
// added new items to top, nothing to do, scrolling position is correct
} else {
logger.debug("LALAL NEARSPLIT split lower added on BOTTOM")
self.stopScrolling()
// added new items to bottom
// logger.debug("LALAL WAS HEIGHT \(wasContentHeight) now \(self.tableView.contentSize.height), offset was \(wasOffset), now \(self.tableView.contentOffset.y), will be \(self.tableView.contentOffset.y + (self.tableView.contentSize.height - wasContentHeight)), countDiff \(countDiff), wasVisibleRow \(wasFirstVisibleRow), wasFirstVisibleOffset \(wasFirstVisibleOffset)")
logger.debug("LALAL BEFORE SCROLLTOROW \(snapshot.numberOfItems - 1) \(countDiff) \(wasFirstIndex ?? -5) \(self.tableView.contentOffset.y) \(wasFirstVisibleOffset) \(String(describing: self.representer.mergedItems.splits))")
self.getListState()
//logger.debug("LALAL BEFORE SCROLLTOROW \(snapshot.numberOfItems - 1) \(countDiff) \(wasFirstIndex ?? -5) \(self.tableView.contentOffset.y) \(wasFirstVisibleOffset) \(String(describing: self.representer.mergedItems.splits))")
//self.getListState()
self.tableView.scrollToRow(
at: IndexPath(row: max(0, min(snapshot.numberOfItems - 1, countDiff + (wasFirstIndex ?? 0))), section: 0),
at: .top,
@@ -419,9 +399,9 @@ struct ReverseList<Content: View>: UIViewControllerRepresentable {
CGPoint(x: 0, y: self.tableView.contentOffset.y - wasFirstVisibleOffset),
animated: false
)
logger.debug("LALAL AFTER SCROLLTOROW")
let state = self.getListState()!
logger.debug("LALAL NOW FIRST VISIBLE \(state.firstVisibleItemIndex) \(state.firstVisibleItemOffset)")
//logger.debug("LALAL AFTER SCROLLTOROW")
//let state = self.getListState()!
//logger.debug("LALAL NOW FIRST VISIBLE \(state.firstVisibleItemIndex) \(state.firstVisibleItemOffset)")
if let t = translationToApply {
// self.tableView.panGestureRecognizer.setTranslation(CGPointMake(t.x, t.y), in: self.tableView.superview!)
@@ -444,7 +424,7 @@ struct ReverseList<Content: View>: UIViewControllerRepresentable {
)
prevSnapshot = snapshot
prevMergedItems = mergedItems
self.getListState()
//self.getListState()
logger.debug("LALAL STEP 5 3")
updatingInProgress = false
tableView.panGestureRecognizer.isEnabled = true
@@ -458,10 +438,10 @@ struct ReverseList<Content: View>: UIViewControllerRepresentable {
if representer.scrollState == .atDestination, let listState = self.getListState() {
if nearSplit(remaining: 30, ignoreTopOfTopSplit: true, listState, prevMergedItems) {
logger.debug("LALAL IN SPLIT OR NO YESSSSSS \(listState.firstVisibleItemIndex)..\(listState.lastVisibleItemIndex) \(String(describing: self.prevMergedItems.splits))")
//logger.debug("LALAL IN SPLIT OR NO YESSSSSS \(listState.firstVisibleItemIndex)..\(listState.lastVisibleItemIndex) \(String(describing: self.prevMergedItems.splits))")
stopScrolling(disable: false)
}
logger.debug("LALAL IN SPLIT OR NO \(self.nearSplit(remaining: 40, ignoreTopOfTopSplit: false, listState, self.prevMergedItems)) \(listState.firstVisibleItemIndex)..\(listState.lastVisibleItemIndex) \(String(describing: self.prevMergedItems.splits))")
//logger.debug("LALAL IN SPLIT OR NO \(self.nearSplit(remaining: 40, ignoreTopOfTopSplit: false, listState, self.prevMergedItems)) \(listState.firstVisibleItemIndex)..\(listState.lastVisibleItemIndex) \(String(describing: self.prevMergedItems.splits))")
if let block = runBlockOnEndDecelerating, nearSplit(remaining: 40, ignoreTopOfTopSplit: false, listState, prevMergedItems) {
if !updatingInProgress {
runBlockOnEndDecelerating = nil
@@ -499,7 +479,7 @@ struct ReverseList<Content: View>: UIViewControllerRepresentable {
let lastVisibleIndex = listState.lastVisibleItemIndex
for split in prevMergedItems.splits {
// before any split
logger.debug("LALAL NEARSPLIT split lower \(split.indexRangeInParentItems.lowerBound) last \(lastVisibleIndex) first \(firstVisibleIndex) remaining \(remaining)")
//logger.debug("LALAL NEARSPLIT split lower \(split.indexRangeInParentItems.lowerBound) last \(lastVisibleIndex) first \(firstVisibleIndex) remaining \(remaining)")
if split.indexRangeInParentItems.lowerBound > lastVisibleIndex {
if lastVisibleIndex > (split.indexRangeInParentItems.lowerBound - remaining) {
return true