Benchmarking shows lower sorting latencies with with TreeSet, specially
with larger lists:
Average Latencies(ms):
list size in [0, 115] list size in [40, 115]
Collection.sort 39.22 77.57
TreeSet 30.23 52.06
Test: RunSettingsRoboTests
Bug: 38197948
Bug: 37312700
Change-Id: I1dd7c77900e8e98e26a8417f2b77582532e1a5f3
Move the majority of the Setting set & get logic into
InlinePayload, but add formatting of input to each
concrete payload class.
Bug: 62022517
Test: make RunSettingsRoboTests
Change-Id: I08932871554beb4a04625f05f8555a5b3a887fe2
- Ranking API is modified to run the ranking asynchronous to the main thread.
Therefore, it can now run in parallel to loading the results from DB
which decreases the overall latency.
- Ranking API now supports reporting failure from the ranker
implementation side.
- Settings that are not ranked by the ranker algorithm are now ranked at
the end of the list. This is added for dynamic settings (e.g., apps).
- Failure handling mechanism is added for cases that ranker catches an
exception or it takes a long time to respond.
Bug: 37312700
Fixes: 36866337
Fixes: 36867476
Fixes: 36866736
Fixes: 36866838
Test: RunSettingsRoboTests
Change-Id: I3a2a97e3a07a8d4afbb090061d92172a27588ee7
This will avoid unnecessary static ranking if smart ranking is used.
Since loader does not need to provided sorted collection of results,
the loading data type has changed from List<> to Set<>. This will also
faster lookup in the Adapter.
Fixes: 38447799
Test: make RunSettingsRoboTests
Change-Id: I448b29bd4e8700c8ec4b5766cbeab4b3087ae39a