The latency number (10) is fake and doesn't matter, because the page
is going away soon.
Bug: 68017528
Test: rerun robotest
Change-Id: I0a9aba1f0a101bcd7aa4134c7b72aee6708663a4
Settings now collects search results from a single
loader which fetches from an aggregator. This is to
facilitate the separation of search functionalitiy,
where "query" becomes a single synchronous call.
In this case, the aggregator will move to the
unbundled app and would be called on the
other end of the Query call. i.e. the new search
result loader will just call query, and unbundled
search will handle everything else.
An important implication is that the results will
be returned in a ranked order. Thus the ranking and
merging logic has been moved out of the RecyclerView
adapter (which is a good clean-up, anyway).
The SearchResultAggregator starts a Future for each
of the data sources:
- Static Results
- Installed Apps
- Input Devices
- Accessibility Services
We allow up to 500ms to collect the static results,
and then an additional 150ms for each subsequent
loader. In my quick tests, the static results take
about 20-30ms to load. The longest loader is installed
apps which takes roughly 50-60ms seconds (note that
this will be improved with dynamic result caching).
To handle the ranking in DatabaseResultLoader,
we start a Future to collect the dynamic ranking before
we start the SQL queries. When the SQL is done, we
wait the same timeout as before. Then we merge the
results, as before.
For now we have not changed how the Dynamic results
are collected, but eventually they will be a cache
of dynamic results.
Bug: 33577327
Bug: 67360547
Test: robotests
Change-Id: I91fb03f9fd059672a970f48bea21c8d655007fa3
- Log ACTION_SEARCH_RESULTS whenever a search query is performed.
eg, type "qu" will result 2 such logging events.
- Remove historam logging to search result click count (already logged
as ACTION_CLICK_SETTINGS_SEARCH_RESULT)
Change-Id: Ia207b34702e0f24a7885e47d093f6cce1314ebc4
Fixes: 67743512
Fixes: 64939544
Test: robotests
SearchFragment and SavedQueryLoader share a loader manager
and had been using the same loader id for different
loaders.
Occaisionally (in monkey tests) two loaders with the same
IDs would be started and crash when they finished.
The loaders now have different IDs.
Change-Id: I11e9b7365605fbcef44cf7d2323183415422f5c8
Fixes: 64756515
Test: robotests
Convert input device search into a search query loader
And remove old logic from DynamicIndexableContentMonitor
Change-Id: If652b1ea7c8add9185bbd025055e14925d3a8eec
Bug: 64310452
Bug: 63831980
Test: robotests
This is necessary to kill DynamicContentMonitor later
- Removed all logic related to indexing accesiblitysetting from the
monitor class and AccessibilitySetting page itself
- Created a loader to search against A11yServices at runtime
I noticed adding a loader in SearchResultsAdapter is rather manual. It's
something we should consider refactor in the future.
Bug: 64310452
Test: robotests
Change-Id: Iff31aff65ce000991229433f294e2ec69af99da2
- Remove incorrect summary from set date/time
- Remove some unused resources
- Remove ability to clear individual search history
- Add remove all query history menu item
Change-Id: I4383d075310297163fd2206d1a5b9c8f4ed94078
Fix: 62741488
Fix: 31589605
Test: robotests
- This allows the ranking implementations to prepare for predictions and
avoids latency on the first prediction call.
Bug: 38197948
Bug: 37312700
Test: RunSettingsRoboTests
Change-Id: I1878b14765ad7cede5648fa1c7f29c419c2e5535
Updated main page text color, text size, and search bar height.
Also updated results page text size.
Change-Id: Ic4a390136b854741a73e99431b8dd9452871dd2c
Fixes: 63397599
Fixes: 63394285
Test: robotests and manual
- Opens the database indexing to be synchronous for the
external settings api.
- Adds logging to track synchronous and async indexing
times.
Bug: 62826872
Test: make RunSettingsRoboTests
Change-Id: I28b69f3952946c0ae5dd7ea7da66f7a5fd485637
Changes made:
- up button added and in correct place
- text color correct when entering query
- query text aligned with results
- grey background around searchbar
Fixes: 37477506
Test: robotests
Change-Id: Ieb135f81f684032f3d5e4102304e617088c88117
- New suggestion activity
- Removed useless api SuggestionFeatureProvider.isPresent().
- Also updated support activity search indexing icon and summary
Change-Id: Ib52cf26a985f57bf0aac918606b10f75bd024639
Fix: 62034077
Fix: 62196070
Test: make RunSettingsRoboTests
- 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
Styling doesn't look exactly right yet but there's a bar.
Creates an ItemDecoration to add a spacer above the first view.
Removes the action bar and replaces it with a SearchView
inside of a CardView.
Remaining work: pixel pushing
Bug: 37477506
Test: make RunSettingsRoboTests
Change-Id: I4a0f0c91c51ff5820b61a596520d80a3337c3466
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