feat: batch processing for recommendations & sort by relevancy (#1383)

* refactor: use NoResultsException

* refactor: cleanup RecommendationPagingSources

* refactor: turn wake/wifi lock functions into reusable extensions

* feat: implement batch recommendation (initial version)

* fix: serialization issues

* fix: wrong source id

* refactor: increase performance using virtual paging

* refactor: update string

* refactor: handle 404 of MD source correctly

* style: add newline

* refactor: create universal throttle manager

* refactor: throttle requests

* chore: remove unused strings

* feat: rank recommendations by match count

* feat: add badges indicating match count to batch recommendations

* fix: handle rec search with no results

* fix: validate flags in pre-search bottom sheet

* feat: implement 'hide library entries' for recommendation search using custom SmartSearchEngine for library items

* style: run spotless

* fix: cancel button

* fix: racing condition causing loss of state
This commit is contained in:
Tim Schneeberger
2025-03-02 17:36:07 +01:00
committed by GitHub
parent 28cca49635
commit 254980695b
37 changed files with 1028 additions and 167 deletions
@@ -480,6 +480,21 @@
<string name="action_stop">Stop</string>
<string name="skipping_">(skipping %1$d)</string>
<!-- Bulk recommendation search -->
<string name="rec_search">Find common recommendations</string>
<string name="rec_hide_library_entries">Hide results already in your library</string>
<string name="rec_services_to_search">Recommendation services to search</string>
<string name="rec_group_source">Source recommendations</string>
<string name="rec_group_tracker">Tracker recommendations</string>
<string name="rec_common_recommendations">Common recommendations</string>
<string name="rec_search_short">Find recommendations</string>
<string name="rec_no_results">No recommendations found</string>
<string name="rec_error_title">Search failed</string>
<string name="rec_error_string">An error occurred during the search process: %1$s</string>
<string name="rec_processing_state">Processing entry %1$d of %2$d</string>
<string name="rec_collecting">Collecting recommendations</string>
<string name="rec_initializing">Initializing</string>
<!-- Library -->
<!-- Library Actions -->
<string name="no_valid_entry">No valid entry selected</string>