A Lemmy client forked from the Infinity for Reddit project https://lemdro.id/c/infinityforlemmy
Go to file
Sergei Kozelko 0f1c4d1e11
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
2022-11-11 13:32:58 +08:00
.github Add description to Steps to reproduce 2022-09-15 15:40:41 +02:00
app Switch loading more comments to /morechildren endpoint (#1186) 2022-11-11 13:32:58 +08:00
fastlane/metadata/android/en-US Add Fastlane file structure for app metadata. 2020-06-21 22:26:03 +02:00
gradle/wrapper Update gradle wrapper (#1006) 2022-09-09 23:24:18 +08:00
.gitignore add VScode 2022-09-14 15:42:07 +02:00
build.gradle Update gradle wrapper (#1006) 2022-09-09 23:24:18 +08:00
gradle.properties Downloading video without sound is now available. Minor bugs fixed. 2019-12-01 20:05:27 +08:00
gradlew Update gradle wrapper (#1006) 2022-09-09 23:24:18 +08:00
gradlew.bat Update gradle wrapper (#1006) 2022-09-09 23:24:18 +08:00
LICENSE Adopt AGPLv3 license 2019-10-29 00:14:05 +08:00
README.md Update README.md 2022-10-23 10:31:55 +08:00
settings.gradle First commit 2018-07-26 23:04:44 +08:00

Infinity For Reddit Patreon

A Reddit client on Android written in Java. It does not have any ads and it features a clean UI and smooth browsing experience


Infinity for Reddit is available on Google Play and F-Droid

Get it on Google Play Get it on F-Droid

release license GitHub issues

Donation

Patreon: https://www.patreon.com/docile_alligator

Bitcoin: bc1qxtkd5ap9na7uy8nr9qpt6jny6tdwaj4v43ddle

Table of Contents

About The Project

Key features of Infinity For Reddit:

  • Lazy mode: Automatic scrolling of posts enables you to enjoy amazing posts without moving your thumb.
  • Browsing posts
  • View comments
  • Expand and collapse comments section
  • Vote posts and comments
  • Save posts
  • Write comments
  • Edit comments and delete comments
  • Submit posts (text, link, image and video)
  • Edit posts (mark and unmark NSFW and spoiler and edit flair) and delete posts
  • See all the subscribed subreddits and followed users
  • View the messages
  • Get notifications of unread messages
  • etc...

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7

(back to top)

Contributing

First off, thanks for taking the time to contribute! Contributions are what makes the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. It's better to also open an issue describing the issue you want to fix. But it is not required.

Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Here are other ways you can help:

(back to top)

License

Distributed under the AGPL-3.0 License. See LICENSE for more information.

(back to top)

Contact

u/Hostilenemy - docilealligator.app@gmail.com (Owner)

or u/Wladefant - wladefant@gmail.com (Collaborator)

Project Link: https://github.com/Docile-Alligator/Infinity-For-Reddit

(back to top)