Hide Live Photo folder entirely from UI

ExifFilter.isHiddenFolder(): returns true for 'Live Photo' folder.
buildFolderList: filters hidden folders before building FolderInfo list.
Live Photo MOVs are now completely invisible — the LIVE badge on the
HEIC is the only signal needed. No placeholder thumbnails in the panel.
This commit is contained in:
Kyle Bolen
2026-07-30 04:55:18 +00:00
parent 595d583f6e
commit 347f182c30
3 changed files with 11 additions and 1 deletions

View File

@@ -296,6 +296,7 @@ class AppState(private val configStore: ConfigStore) {
val zoneId = java.time.ZoneId.systemDefault()
return photos
.groupBy { it.sourceFolder }
.filterKeys { !ExifFilter.isHiddenFolder(it) } // hide Live Photo MOV folder
.map { (name, folderPhotos) ->
val dates = folderPhotos.map {
it.dateTaken.atZone(zoneId).toLocalDate()

View File

@@ -134,7 +134,8 @@ fun BrowseScreen(state: AppState) {
private fun buildFolderSections(pl: PhotoListState.Loaded): List<FolderSection> {
val zoneId = ZoneId.systemDefault()
return pl.folders.map { folder ->
return pl.folders // already filtered by buildFolderList (no hidden folders)
.map { folder ->
val photos = pl.all
.filter { it.sourceFolder == folder.name }
.sortedByDescending { it.dateTaken }

View File

@@ -114,6 +114,14 @@ object ExifFilter {
screenshotFilePrefixes.none { lower.startsWith(it) }
}
/**
* Folders that should be completely hidden from the UI (not even in Other).
* Live Photo companions are proven by the LIVE badge on the HEIC — showing
* the MOVs separately adds noise with unverifiable placeholder thumbnails.
*/
fun isHiddenFolder(folderName: String): Boolean =
folderName == "Live Photo"
/**
* Returns photos that are HEIC files (and not Live Photo motion clips).
* Used to determine whether to show the HEIC conversion warning.