msasikanth / twine

Twine: A multiplatform RSS reader built using Kotlin and Compose
Apache License 2.0
1.78k stars 73 forks source link

Add support for loading fav icons using Coil based on feed homepage link #710

Closed msasikanth closed 3 months ago

msasikanth commented 3 months ago

Previously Twine used icon.horse to load the fav icons, but looks like that service has issues, which means the app no longer loads the images. That shows how brittle the system was.

So, rather than relying on just another favicon APIs cache APIs from Google or Duckduckgo. We are using Coil to load the favicon based on the given homepage link.

If a favicon is not found, only then we will fallback to Google favicons cache.

The reason why I went with this approach is mainly so that we can find the best possible size and also prioritise getting Apple touch icons from HTML metadata, since they are usually high quality.