feat: fit-contain letterbox + smart queue refill

- Replace center-crop with fit-contain (no photo cropping)
- Letterbox bars filled with adjacent edge average color
- Queue fetches in batches until 50 usable assets
- Auto-refill queue on exhaustion, dedup via shown history
- Filter RAW files from asset selection

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-03 14:39:55 -04:00
parent 630e924485
commit 4ae0e61610
10 changed files with 985 additions and 411 deletions

View File

@@ -22,8 +22,17 @@ private:
SettingsManager* _settings = nullptr;
std::vector<String> _queue;
std::vector<String> _shown; // Recently shown IDs for dedup on refill
size_t _cursor = 0;
unsigned long _lastSyncTime = 0;
unsigned long _lastSyncAttempt = 0;
unsigned long _syncRetryDelay = 10000;
static constexpr unsigned long SYNC_RETRY_MIN = 10000; // 10 seconds
static constexpr unsigned long SYNC_RETRY_MAX = 300000; // 5 minutes
static constexpr size_t TARGET_QUEUE_SIZE = 50;
static constexpr int MAX_FETCH_ROUNDS = 5;
static constexpr size_t MAX_SHOWN_HISTORY = 200;
void shuffle();
void sortChronological(bool reverse);