Skip to content

Commit

Permalink
Merge pull request #1233 from Infomaniak/add-relevance-sort
Browse files Browse the repository at this point in the history
Add relevance sort to search
  • Loading branch information
KevinBoulongne authored Mar 6, 2024
2 parents 0372bd7 + 9a7e8cb commit 0b8a3a7
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -772,7 +772,11 @@ object FileController {
SortType.RECENT_TRASHED -> sort(File::deletedAt.name, Sort.DESCENDING)
SortType.SMALLER -> sort(File::size.name, Sort.ASCENDING)
SortType.BIGGER -> sort(File::size.name, Sort.DESCENDING)
// SortType.EXTENSION -> sort(File::convertedType.name, Sort.ASCENDING) // TODO implement
// Because we don't know how to compute relevance here, we fallback
// on the 'last modified' sorting for this pretty unusual case.
SortType.LEAST_RELEVANT -> sort(File::lastModifiedAt.name, Sort.ASCENDING)
SortType.MOST_RELEVANT -> sort(File::lastModifiedAt.name, Sort.DESCENDING)
// SortType.EXTENSION -> sort(File::convertedType.name, Sort.ASCENDING) // TODO: Implement
}
}

Expand Down
8 changes: 5 additions & 3 deletions app/src/main/java/com/infomaniak/drive/data/models/File.kt
Original file line number Diff line number Diff line change
Expand Up @@ -421,13 +421,15 @@ open class File(
NAME_ZA("desc", "name", R.string.sortNameZA),
OLDER("asc", "last_modified_at", R.string.sortOlder),
RECENT("desc", "last_modified_at", R.string.sortRecent),
OLDEST_ADDED("asc", "added_at", R.string.sortOldestAdded),
MOST_RECENT_ADDED("desc", "added_at", R.string.sortMostRecentAdded),
OLDER_TRASHED("asc", "deleted_at", R.string.sortOlder),
RECENT_TRASHED("desc", "deleted_at", R.string.sortRecent),
OLDEST_ADDED("asc", "added_at", R.string.sortOldestAdded),
MOST_RECENT_ADDED("desc", "added_at", R.string.sortMostRecentAdded),
SMALLER("asc", "size", R.string.sortSmaller),
BIGGER("desc", "size", R.string.sortBigger),
// EXTENSION("asc", "extension", R.string.sortExtension); // TODO: Awaiting API
LEAST_RELEVANT("asc", "relevance", R.string.sortLeastRelevant),
MOST_RELEVANT("desc", "relevance", R.string.sortMostRelevant),
// EXTENSION("asc", "extension", R.string.sortExtension), // TODO: Awaiting API
}

enum class SortTypeUsage { FILE_LIST, TRASH, SEARCH }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,28 @@ class SortFilesBottomSheetAdapter(
}

private fun List<SortType>.fileListTypes(): List<SortType> {
return filter { it != SortType.OLDER_TRASHED && it != SortType.RECENT_TRASHED }
val forbiddenSortTypes = setOf(
SortType.OLDER_TRASHED,
SortType.RECENT_TRASHED,
SortType.LEAST_RELEVANT,
SortType.MOST_RELEVANT,
)
return filterNot(forbiddenSortTypes::contains)
}

private fun List<SortType>.trashTypes(): List<SortType> = filter { it != SortType.OLDER && it != SortType.RECENT }
private fun List<SortType>.trashTypes(): List<SortType> {
val forbiddenSortTypes = setOf(
SortType.OLDER,
SortType.RECENT,
SortType.LEAST_RELEVANT,
SortType.MOST_RELEVANT,
)
return filterNot(forbiddenSortTypes::contains)
}

private fun searchTypes(): List<SortType> = listOf(SortType.OLDER, SortType.RECENT)
private fun searchTypes(): List<SortType> {
return listOf(SortType.OLDER, SortType.RECENT, SortType.MOST_RELEVANT, SortType.LEAST_RELEVANT)
}

class SortFilesViewHolder(val binding: ItemSelectBottomSheetBinding) : ViewHolder(binding.root)
}
2 changes: 2 additions & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -617,8 +617,10 @@
<string name="sortBigger">Grösser</string>
<string name="sortDay">Pro Tag</string>
<string name="sortExtension">Erweiterung</string>
<string name="sortLeastRelevant">Am wenigsten relevant</string>
<string name="sortMonth">Pro Monat</string>
<string name="sortMostRecentAdded">Zuletzt hinzugefügt</string>
<string name="sortMostRelevant">Am wichtigsten</string>
<string name="sortNameAZ">Name: von A bis Z</string>
<string name="sortNameZA">Name: von Z bis A</string>
<string name="sortOlder">Älter</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -617,8 +617,10 @@
<string name="sortBigger">Mayor tamaño</string>
<string name="sortDay">Por día</string>
<string name="sortExtension">Extensión</string>
<string name="sortLeastRelevant">Menos relevante</string>
<string name="sortMonth">Por mes</string>
<string name="sortMostRecentAdded">Más recientemente añadidos</string>
<string name="sortMostRelevant">Más relevante</string>
<string name="sortNameAZ">Nombre: de A a Z</string>
<string name="sortNameZA">Nombre: de Z a A</string>
<string name="sortOlder">Más antiguo</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -617,8 +617,10 @@
<string name="sortBigger">Plus grand</string>
<string name="sortDay">Par jour</string>
<string name="sortExtension">Extension</string>
<string name="sortLeastRelevant">Moins pertinent</string>
<string name="sortMonth">Par mois</string>
<string name="sortMostRecentAdded">Plus récemment ajouté</string>
<string name="sortMostRelevant">Plus pertinent</string>
<string name="sortNameAZ">Nom : de A à Z</string>
<string name="sortNameZA">Nom : de Z à A</string>
<string name="sortOlder">Plus ancien</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -617,8 +617,10 @@
<string name="sortBigger">Più grande</string>
<string name="sortDay">Per giorno</string>
<string name="sortExtension">Estensione</string>
<string name="sortLeastRelevant">Meno rilevante</string>
<string name="sortMonth">Per mese</string>
<string name="sortMostRecentAdded">Aggiunte più recenti</string>
<string name="sortMostRelevant">Più rilevante</string>
<string name="sortNameAZ">Nome: dalla A alla Z</string>
<string name="sortNameZA">Nome: dalla Z alla A</string>
<string name="sortOlder">Più vecchio</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -628,8 +628,10 @@
<string name="sortBigger">Larger</string>
<string name="sortDay">Per day</string>
<string name="sortExtension">Extension</string>
<string name="sortLeastRelevant">Least relevant</string>
<string name="sortMonth">Per month</string>
<string name="sortMostRecentAdded">Most recently added</string>
<string name="sortMostRelevant">Most relevant</string>
<string name="sortNameAZ">Name: from A to Z</string>
<string name="sortNameZA">Name: from Z to A</string>
<string name="sortOlder">Older</string>
Expand Down

0 comments on commit 0b8a3a7

Please sign in to comment.