Skip to content

✨ feat: add like/dislike & favorites for wallpapers#1

Merged
colachg merged 3 commits intomainfrom
cola/feat/add-dislike
Feb 24, 2026
Merged

✨ feat: add like/dislike & favorites for wallpapers#1
colachg merged 3 commits intomainfrom
cola/feat/add-dislike

Conversation

@colachg
Copy link
Copy Markdown
Owner

@colachg colachg commented Feb 24, 2026

Summary

  • Thumbs down: Dislike wallpapers to skip them on refresh, wake, and navigation (previews only in popover without applying to desktop)
  • Thumbs up: Like/favorite wallpapers and browse them later via a dedicated favorites view reusing the image card frame
  • Persistence: Preferences stored in ~/Library/Application Support/BingWallpaper/preferences.json surviving restarts

Changes

File Description
BingAPI.swift Add Hashable, Identifiable, formattedDate to BingImage
PreferencesStore.swift New@Observable persistence layer for dislikes and favorites
WallpaperManager.swift Like/dislike/favorite methods, preview-only for disliked images, preserve favorite caches
WallpaperApp.swift Hover action buttons (thumbs up/down), favorites toolbar button, favorites card browser

Test plan

  • Hover over image → thumbs up/down buttons appear at top corners
  • Thumbs down → wallpaper skipped, next non-disliked applied
  • Navigate to disliked image → shown in preview only, not applied to desktop
  • Thumbs down again → undo dislike
  • Thumbs up → added to favorites (blue highlight)
  • Heart toolbar button → favorites browser with navigation arrows
  • Apply favorite from browser → sets as wallpaper
  • Remove last favorite → returns to first non-disliked wallpaper
  • Quit and relaunch → preferences persist
  • Auto-refresh → disliked wallpapers not auto-applied

false

Users can now thumbs-down wallpapers they don't enjoy (skipped on
refresh/navigation) and thumbs-up to save favorites. A heart button in
the toolbar opens a favorites browser that reuses the image card frame
with navigation arrows.

Preferences persist to ~/Library/Application Support/BingWallpaper/
so dislikes and favorites survive restarts.

false
Cover formattedDate, Hashable/Identifiable conformance,
WallpaperPreferences Codable round-trip, and PreferencesStore
dislike/favorite operations including persistence and edge cases.
@colachg colachg changed the title feat: add like/dislike & favorites for wallpapers ✨ feat: add like/dislike & favorites for wallpapers Feb 24, 2026
@colachg colachg self-assigned this Feb 24, 2026
@colachg colachg merged commit 4ddd293 into main Feb 24, 2026
1 check passed
@colachg colachg deleted the cola/feat/add-dislike branch February 24, 2026 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant