Commit Graph

40 Commits

Author SHA1 Message Date
Matthew Fritze
b759516cbf Create whitelist for the most popular settings
As a temporary solution to getting the most popular
settings to be the top rank, we have created a white list.
If a prioritized setting shows up somewhere in the results
then it will be given an elevated rank to be at the top.

Bug: 35048659
Test: make RunSettingsRoboTests
Change-Id: I92b563a17b42d8f91d980dd1d8e5f8f29ca5aa9c
2017-03-06 12:31:41 -08:00
Matthew Fritze
52b6f8887b First pass at removing duplicate results
Removes the duplicate results which match Title and
Summary. Prioritizes higher ranked items and inline
results.

Bug: 33701673
Test: make RunSettingsRoboTests
Change-Id: I28d4f85b276c7bf5c7f3e1273eeec02066be097d
2017-02-22 14:47:53 -08:00
TreeHugger Robot
3135409d4e Merge "Rank results that match the prefix of the first word higher" 2017-02-21 22:46:49 +00:00
Matthew Fritze
b7b286cb89 Rank results that match the prefix of the first word higher
Differentiates the results that match the first word in
the title from matches farther into the title.

Change-Id: I69f9804a51d1c2b0e476b0f082d634b3a598997c
Fixes: 34975472
Test: make RunSettingsRoboTests
2017-02-18 22:22:29 +00:00
TreeHugger Robot
f1c80deab0 Merge "SearchView keyboard opens and closes appropriately" 2017-02-18 01:41:36 +00:00
TreeHugger Robot
5985ff098d Merge "Log search result click and its rank." 2017-02-18 00:09:01 +00:00
Matthew Fritze
592e4d739b SearchView keyboard opens and closes appropriately
- Keyboard opens when Search View opens
- Keyboard closes on query text submit
- Keyboard closes when user scrolls through results

Change-Id: I7cef383a2799eeb456fbaa07b8577c88cd35a997
Fixes: 34723251, 35164545
Test: SearchFragmentEspressoTest, manual test requested from QA
2017-02-17 23:37:26 +00:00
Matthew Fritze
04615bc1b6 Blocks resources from adding headers that match settings
Certain Xml resources have a single setting for the page
which often means the header and setting have the same
title. This CL stops the header from being indexed in
that case.

Bug: 33701673
Test: make RunSettingsRoboTests
Change-Id: Ie617414010e654c41fd014aa2fe297e6d2088ca5
2017-02-17 09:39:21 -08:00
Fan Zhang
8fc4e819a2 Log search result click and its rank.
Bug: 34975477
Test: RunSettingsRoboTests
Change-Id: I86e72dbd27ac5daeafa4fb35ad55662de7b3eca9
2017-02-16 14:53:49 -08:00
Fan Zhang
c6ca314c0b Log source with visibility change
- Add a method in VisibilityLoggerMixin to log visible event using
  LogMaker, which allows logging additional FIELD_CONTEXT field.
- In Utils.startFragment, add current page's metricsCategory as an extra
  to next page.
- In next page's onResume(), extract the previous page's metricsCategory
  and send it to VisibilityLoggerMixin.visible()
- Update all caller with additional paramters

Change-Id: I8e1f2597fa465b7d3aa16fa1d21c052a3219694a
Fix: 35359289
Test: RunSettingsRoboTests
2017-02-15 17:17:19 -08:00
Matthew Fritze
40ce0fab75 Sync search result loaders
The loaders should be syncronized so the results can be
properly ranked without sudden insertions.

This means InstalledAppsLoader needs to finish faster,
which is accomplished by delaying icon loading to bind time
rather than as the apps are queried.

Bug: 34772522
Test: make RunSettingsRoboTests
Change-Id: I7f5244c574d37c6cfd8bbd0d3d40488f38211be3
2017-02-10 10:10:55 -08:00
TreeHugger Robot
b692056232 Merge "Add Adaptive brightness as an inline result in Search" 2017-02-07 20:12:37 +00:00
Matthew Fritze
516b0f1b83 Add Adaptive brightness as an inline result in Search
Bug: 34740449
Test: make RunSettingsRoboTests
Change-Id: I71acdcc04780a76263171a9d312d88a1eb61624a
2017-02-06 17:49:34 -08:00
Matthew Fritze
43f7fb1b8f Installed App loader only matches on prefixes
Change-Id: Iefc6d681a1b616acf3c1354ff4d0f6c2c268895e
Fixes:34688403
Test: make RunSettingsRoboTests
2017-02-02 13:00:31 -08:00
TreeHugger Robot
0f36f3b5fe Merge "Search only matches prefixes rather than any substring" 2017-01-25 20:37:16 +00:00
Matthew Fritze
314b09eb4b Search only matches prefixes rather than any substring
Test: make RunSettingsRoboTests
Change-Id: I4da7e4c75c461fad96dedf5277ddba02e067928d
Bug: 34688403
2017-01-25 18:07:29 +00:00
Matthew Fritze
5ab7ecd775 Prevent crash when rotating screen in Settings Search
Change-Id: If8134a1e96f791aacedf2e907272cee33dfc85fe
Fix: 34690393
Test: make RunSettingsRoboTests
2017-01-24 18:07:52 -08:00
Matthew Fritze
3f3b547e4a Index everything into the database and disable invalid ones
Change-Id: I7eb931009b722c10487f6212113a8993463b7bce
Fixes: 34142852
Test: make RunSettingsRoboTests
2017-01-24 11:15:29 -08:00
Fan Zhang
a96b11f65d Build a sitemap manager to keep track of breadcrumbs
- Have a new db to track parent-child page relation at index time.
- Make a registry class to track (in IA) which page host what type of
  sub pages.
- Make a manager class that queries the db as well as IA to compute
  breadcrumbs

Fix: 32936784
Test: RunSettingsRoboTest

Change-Id: I5f1583fae772c3d477d2ad186e111b79cc3e41aa
2017-01-23 20:41:39 -08:00
Fan Zhang
248d95c618 Add basic breadcrumb on search result.
- Some line formatting
- Some UI tweak to make it more polished
- Updated the way we generate docid
- Use screen title as leaf level breadcrumb and display on UI (TBD how
  to get parent level titles)
- Hardcode breadcrumb for installed app results

Bug: 32936784
Test: make RunSettingsRoboTests
Change-Id: I18e0780f91b1123bbf25cd99adf2e2a5f684a83c
2017-01-21 14:02:09 -08:00
TreeHugger Robot
2ecdc2514f Merge "Showing recents in search" 2017-01-21 00:41:25 +00:00
Fan Zhang
ba83109807 Fix installed app search query.
Now it shows system apps when user query match name.

Change-Id: Ic4d622d2d4872554172e34aa9be250b36a3c3da3
Fix: 34257148
Test: make RunSettingsRoboTests
2017-01-20 14:53:37 -08:00
Fan Zhang
a8b089db8a Showing recents in search
A list of recent queries will display when search first launches, or
when text query is empty.

Fix: 32452066
Test: make RunSettingsRoboTests
Change-Id: Ic697f8c0795f2315a01406537c7ce1bbf9a813be
2017-01-20 14:50:15 -08:00
Matthew Fritze
34c27609d6 Move indexing into the Search Fragment
Cold start latency for Settings increased drastically
from the indexing of the Search Database. Moving it into
the Search Fragment moves that latency to cases where
users are actually searching.

Change-Id: I11368af610ac9e80f9901654f980c2c1e26342a5
Fixes: 34142852
Test: make RunSettingsRoboTests
2017-01-19 10:27:37 -08:00
TreeHugger Robot
9b5cd25a34 Merge "Add logging to search fragment." 2017-01-13 00:51:23 +00:00
Fan Zhang
39f4f6ee60 Add logging to search fragment.
- User leaves screen without any query
- Number of results clicked before leaving screen
- Event of each result click

Bug: 34204146
Test: RunSettingsRoboTests

Change-Id: I357fbb4cdfd4d02370791b4a2ddeb2127fdddf97
2017-01-11 16:37:36 -08:00
Fan Zhang
6c423bd518 Parse external intent from cursor correctly for search.
Test: RunSettingsRoboTests
Change-Id: I7f4d442729b3376f28679a3372244a87924b96a1
2017-01-11 15:22:00 -08:00
Matthew Fritze
7fda314980 Update DatabaseLoader querying.
Change the way the queries are built and sorted for the
database loader. It now constructs 3 queries that match
different columns. Each query returns their results
and gets sorted, then merged into the master list of
results.

Change-Id: Id643422ddfe26bfec89e04ee9f5832b99148e22a
Test: make RunSettingsRoboTests
Bug: 32904057, 32903623
2017-01-10 14:27:31 -08:00
Fan Zhang
a875924100 Wrap old search index update logic behind FeatureProvider.
Change-Id: I31024d2e7900a90b4f7dc8cc81951bf6a0e533fa
Fix: 34123028
Test: RunSettingsRoboTests
2017-01-06 09:18:59 -08:00
Fan Zhang
e96b5b9faa Apply LightActionBar theme to Settings app.
Bug: 33558692
Test: visual
Test: RunSettingsRoboTests
Change-Id: I9f0fb71eb0cd0c58ac3b0f69544adec963faf2dd
2017-01-04 12:28:03 -08:00
Matthew Fritze
65fb01b520 Add first inline switch result.
Adds gestures as Inline switch results to Settings Search.

Change-Id: Ie9b69ac2a54756d5b756401e348cae0a02c907c9
Fixes: 33669037
Test: make RunSettingsRoboTests
2016-12-21 10:52:59 -08:00
Matthew Fritze
9955db6360 SearchFeatureProvider's context field is removed
SearchFeatureProvider was holding on to a context and
outlived the SettingsActivity, thus leaking the activity.
The context was passed into most methods, and thus it
makes more sense to pass it in to every method.

Bug: 33677967
Test: Run MakeSettingsRoboTests
Change-Id: Ia82f30e7e0b83587b4baeef28e81da6b8e4303fe
2016-12-20 11:39:10 -08:00
TreeHugger Robot
08951ab12f Merge "Update the Settings database to enable Payloads" 2016-12-15 22:51:32 +00:00
Matthew Fritze
1dec073528 Update the Settings database to enable Payloads
Add Payload and Payload type columns to the settings
database. This includes extending preference controllers
to map their settings to UI components so that the
payload results can be consumed by a front end.

Change-Id: I889dcc4ff7793306718d12e1e5993386b58f21cc
Fixes: 33451851, 33390556
Test: RunSettingsRoboTests
2016-12-15 21:00:52 +00:00
TreeHugger Robot
1a71c05c7c Merge "Handle tap on intent based search results." 2016-12-09 23:04:03 +00:00
Fan Zhang
12daf6830d Handle tap on intent based search results.
Also fix how icon is loaded. IconResId is specific to the package of the
indexed result. If result comes from external app, icon needs to be
decoded against the external app's package context.

Bug: 33432310
Test: RunSettingsRoboTests
Change-Id: Ia0c53e63be757405dfaeceb2d865e7d8de87c5ee
2016-12-09 13:27:00 -08:00
Matthew Fritze
18fcb08308 First step in refactoring Index.java
Handles the following refators:
 - Indexing code into: DatabaseIndexingManager
 - Indexing utility methods into: DatabaseIndexingUtil
 - XML Parsiing utility methods into XMLParserUtil

Bug: 33451851
Test: make RunSettingsRoboTests
Change-Id: I4264ad3806d1bd3a66d879c16ad6c8315ecb832b
2016-12-09 20:51:32 +00:00
Fan Zhang
36d0d143be Add search loader for installed apps.
- The loader filters out system apps.
- Loader performs case-insensitive match with app names.
- SearchResultAdapter combines results from multiple loaders into a
  single list.

Fixes: 33347966
Test: make RunSettingsRoboTests
Change-Id: I228ca6fb82f0ac5151b2346c079c2de41104a4df
2016-12-07 13:00:26 -08:00
Fan Zhang
413eaa4070 Clean up search fragment loader lifecycle.
- Programatically create SearchView to make it always expand across
  entire action bar.
- Store current query text during screen rotation
- Restart loader when query text changes

Bug: 33354491
Test: RunSettingsRoboTests
Change-Id: I63838a38514569aac60c5d67ac52ac06a7acd5a3
2016-12-06 14:43:01 -08:00
Matthew Fritze
0ed37c3513 Fork Search code to independantly develop and test search.
This is the start of the new search in Settings. It is a nearly complete
replacement of the old search code in a more modular and flexible
architecture. It is expanding the datasources that it queries, including
the same Settings database, which will now include more first party apps
and be extended to support inline results where the user can change
settings directly from the search view. Search will also fan out to
query new sources (local or remote), and is built in a way
such that adding additional sources is roughly the same amount of work
had they been added in the initial writing of this code.

Query interpretation will now be source-dependant, allowing for future
upgrades to fuzzy search where it is applicable.

Change-Id: Ib0bac1fe92bf8a662d33abf9a99bb6ee2090ec8f
Fixes: 32115225, 32378927
Test: make RunSettingsRoboTests
2016-11-17 14:34:29 -08:00