Update ranking (#1772)

* Add LibraryUpdateRanker

This class provides various functions to generate Comparators that can 
be used to order the manga to update.

One such ordering is by relevance:
It prioritises manga that were updated more recently.

Another Ordering is by lexicographic order:
This is the default behaviour.

* Use relevanceRanking scheme

Instead of default(noRanking/lex ranking) now mangaList is sorted with 
relevanceRanking.

* Add UI and associated variables & strings for Update Ranking.

* Use user preferences to determine update ranking scheme.

* Refactor relevanceRanking to latestFirstranking.

This name seems to better reflect the ranking scheme and frees up the 
name relevanceRanking for future use.

* Set latestFirst scheme as default.

(Changing over from lexicographic scheme)

* Fix 1

[Convert LibraryUpdateRanker to a object.](./files/82f263749f0ae775385b23dd919f1865360db969#r287513539)

[Nitpick: Add lines](./files/82f263749f0ae775385b23dd919f1865360db969#r287540256)

[Replace Java comparator](./files/82f263749f0ae775385b23dd919f1865360db969#r287539976)

[Nitpick: Add local variable](./files/82f263749f0ae775385b23dd919f1865360db969#r287514805)

* Fix 2

[Weird import](./files/82f263749f0ae775385b23dd919f1865360db969#r287513709)

[Default value](./files/82f263749f0ae775385b23dd919f1865360db969#r287540064)

[Use existing Strings](./files/82f263749f0ae775385b23dd919f1865360db969#r287514476)

[Use Library update order](./files/82f263749f0ae775385b23dd919f1865360db969#r287540204)
This commit is contained in:
Harsh Parekh
2019-06-09 08:32:12 -04:00
committed by inorichi
parent 9ba7312caf
commit 5d8dc241d8
6 changed files with 68 additions and 0 deletions
@@ -159,6 +159,22 @@ class SettingsGeneralController : SettingsController() {
selectedCategories.joinToString { it.name }
}
}
intListPreference{
key = Keys.libraryUpdatePrioritization
titleRes = R.string.pref_library_update_prioritization
// The following arrays are to be lined up with the list rankingScheme in:
// ../../data/library/LibraryUpdateRanker.kt
entriesRes = arrayOf(
R.string.action_sort_alpha,
R.string.action_sort_last_updated
)
entryValues = arrayOf(
"0",
"1"
)
defaultValue = "1"
summaryRes = R.string.pref_library_update_prioritization_summary
}
intListPreference {
key = Keys.defaultCategory
titleRes = R.string.default_category