aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/res/xml/download_location_preferences.xml
diff options
context:
space:
mode:
authorSergei Kozelko <KozelkoS@yandex.ru>2022-11-11 05:32:58 +0000
committerGitHub <noreply@github.com>2022-11-11 05:32:58 +0000
commit0f1c4d1e11a3b072d2bb1a60c52f858c79c6e0ae (patch)
tree81a22bceb512583f0411453a97839b1a356a9aeb /app/src/main/res/xml/download_location_preferences.xml
parent8326e6c4a20eb84ebfbbd23e594aec2a8c8a56e3 (diff)
downloadinfinity-for-reddit-0f1c4d1e11a3b072d2bb1a60c52f858c79c6e0ae.tar
infinity-for-reddit-0f1c4d1e11a3b072d2bb1a60c52f858c79c6e0ae.tar.gz
infinity-for-reddit-0f1c4d1e11a3b072d2bb1a60c52f858c79c6e0ae.tar.bz2
infinity-for-reddit-0f1c4d1e11a3b072d2bb1a60c52f858c79c6e0ae.tar.lz
infinity-for-reddit-0f1c4d1e11a3b072d2bb1a60c52f858c79c6e0ae.tar.xz
infinity-for-reddit-0f1c4d1e11a3b072d2bb1a60c52f858c79c6e0ae.tar.zst
infinity-for-reddit-0f1c4d1e11a3b072d2bb1a60c52f858c79c6e0ae.zip
Switch loading more comments to /morechildren endpoint (#1186)
* Load more comments from /morechildren endpoint Previous implementation requested comments from /api/info which returned the comments themselves but did not include any information about their children. Also /api/info does not allow to specify sort type. On the other hand /morechildren supports sort type and it will be added in a later commit. I am not proud of this implementation, but I had to fight with both Reddit api response and existing code. The problem with api response is that it is a flat list of comments, not a tree structure. So the tree has to be rebuilt on our end. And the problem with existing code is that it merges "more children" node into its parent but then adds a placeholder anyways. The code relies on the fact that parent comment will be located before any of its children in the response. The code sequentially processes comments, tries to find their parents and either adds them to the tree or puts in a "top-level" array which will be handled by outside code. One possible problem is the removal of `depth` argument from parsing as I couldn't find a way to fit it in the new logic. However I also didn't experience any problems with it during my testing and the response seems to always contain depth key. Moreover current depth handling logic in ParseComment#parseCommentRecursion is broken because it does not increment depth when making a recursive call. * Store moreChildren ids instead of fullnames /morechildren endpoint accepts ids instead of fullnames so there is no point in converting ids to fullnames and back * Send all comment ids to Reddit so it can select what to display itself Sending all ids allows Reddit to sort them properly. Since the number of comments can be very bing, it requires using POST request instead of GET. This commit changes the meaning of Comment#moreChildrenIds field, now it stores only ids of comments that are not yet loaded. This simplifies the code and removes the need for Comment#moreChildrenStartingIndex * Fetch more comments with current sort type
Diffstat (limited to 'app/src/main/res/xml/download_location_preferences.xml')
0 files changed, 0 insertions, 0 deletions