feat: add favicons, drag-to-reorder sites, and SVG support

- Load site favicons (svg → png → ico fallback) via Coil 3 with
  SubcomposeAsyncImage; globe icon as final fallback
- Register SvgDecoder in ImplausiblyApp for SVG favicon support
- Add drag-to-reorder via sh.calvin.reorderable library with a
  drag handle per site row; order persisted to sort_order column
- Add sort_order column to stored_sites with schema migration (1.sqm)
- New SiteRepository methods: reorderSites(), deleteSitesForInstance(),
  getAllSites() now includes sort_order
- Dependencies: coil-compose, coil-network-okhttp, coil-svg,
  reorderable (all Apache 2.0)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2026-03-20 14:52:06 +01:00
commit 26467d9047
9 changed files with 248 additions and 36 deletions

View file

@ -91,6 +91,14 @@ dependencies {
implementation(libs.sqldelight.android.driver)
implementation(libs.sqldelight.coroutines)
// Coil (favicon loading)
implementation(libs.coil.compose)
implementation(libs.coil.network.okhttp)
implementation(libs.coil.svg)
// Reorderable (drag-to-reorder sites)
implementation(libs.reorderable)
// Serialization
implementation(libs.kotlinx.serialization.json)