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
- DimmableIconPreference is not a support pattern.
- Also updated a few icon tint colors to match with the rest of screen.
Bug: 68426851
Test: visual
Change-Id: Ia18d9f74458237403b94d3474cf09050d2039428
Settings app crashes when tapping Home key while adding new user because
UserSettings#showDialog() is called after onSaveInstanceState().
To fix this issue, a dialog should not be shown after onPause().
Fixes: 68485787
Test: manual - tap Home key while adding new user
Change-Id: I2ddd119b6558927798a52c7977e6fd8137734c93
- Remove code and resource for ProcessStatsMemDetail
- Remove TintablePreference (tinting icon is not a supported
pattern starting in Android O)
Bug: 68426851
Test: robotests
Change-Id: Ib9c2fc8332255fe29c8f3dce378456403d7af8a3
- Remove additional_system_update pref device_info page, we don't need
it.
- Update keys in xml and Preference controller, and search index
provider.
- Clean up in ScreenZoomPreference, it's anti-pattern to set fragment in
constructor.
- Whitelist 2 that are super hard to remove.
Change-Id: Ibab6e2cb074513042a2ae007d9085aa64046eec8
Fixes: 67852637
Test: uniquePreferenceTest
- Add synchronization locks to data structures in
SettingsShadowResources to avoid ConcurrentModificationException
- Make temporary variables final variables
Change-Id: I39a894c67d0b5e5b21bc0b9aa89180ba6989f01d
Fixes: 67850343
Test: make RunSettingsRoboTests -j40
Remove the the indexing check for the
index data's locale to match the locale of
the device. We don't require locale for
indexables, and we reindex on locale change.
It had introduced a bug where when locale
changed, the default us-en results would
not be added to the db.
Change-Id: I43a4284f5c23bc51ee3efdfcabe511eac2d3317d
Fixes: 66916397
Fixes: 68380443
Test: robotests
- change it back to launch the fragment instead of intent activity.
- update the test case to launch special app access from Apps &
notifications page instead of directly launching it.
Change-Id: I61289ba0fa6cc4585c87cf337aa2007fb578450f
Fixes: 68397751
Test: visual, make SettingsUnitTests
- functionality for hiding portions of the preferences in the preference
screen is added to the support lib. So, changing the settings
implementation to use the feature from the support lib instead.
- remove ProgressiveDisclosureMixin and the related code
Fixes: 63985174
Test: make RunSettingsRoboTests
Change-Id: Ib1d39b2db93d78a56c7adf90abcae5226f9564c2
- Automatic zen rules have their own page like in N
- Minor string changes to page and add rule dialog
- Zen mode visual effects was moved into behavior settings
Bug: 63077372
Test: $ make SettingsUnitTests -j40
$ adb install -r ${OUT}/data/app/SettingsUnitTests/SettingsUnitTests.apk
$ adb shell am instrument -w com.android.settings.tests.unit/android.support.test.runner.AndroidJUnitRunner
Change-Id: I9635f8f7969b76d036bc06ec44705815e540777a
Normalize Hiragana and Katakana in Settings search.
Fixes: 28410478
Test: manual - set the device language to Japanese
and search in Settings.
Test: manual
Change-Id: Iee76da6a895ea006959c23f4eb64f62af0917c34