Commit Graph

56 Commits

Author SHA1 Message Date
Soroosh Mariooryad
172f888ad5 Adding APIs for smart search ranking.
Test: RunSettingsRoboTests
Bug: 36866337

Change-Id: I20a26e5ac7a57582cea24951120717a4f2c93ce0
2017-04-04 10:33:58 -07:00
Matthew Fritze
8a42b074a7 Reserve full indexing for SearchFragment
Full Index should only be accessible from Search Fragment,
and when only full index should declare a locale to be
indexed.

Test: make RunSettingsRoboTests
Fixes: 36656637
Change-Id: Ie673067118ac6b184570e116ea24a169be027053
2017-03-29 23:55:48 +00:00
Matthew Fritze
28f389e553 Rename remaining layouts to original search names
Change-Id: Ibb0aa087e797c3e7ae93556cf4a00d9746694532
Fixes: 32590887
Test: make RunSettingsGoogleRoboTests
2017-03-22 16:05:24 +00:00
Matthew Fritze
5c83cfa278 Remove Index.java from old Search and its dependents
Test: make RunSettingsRoboTests
Bug: 35763944, 36192909
Change-Id:  If216e1eeb4c29e7372720c6228fa4e99ea2a9904
2017-03-17 14:26:05 -07:00
TreeHugger Robot
8c451742d0 Merge "Purify SettingsActivity from old search code." 2017-03-16 23:01:45 +00:00
Matthew Fritze
0b431fc003 Purify SettingsActivity from old search code.
Bug:35763944, 32590887
Test: make RunSettingsRoboTests
Change-Id: Id8140b68a676e595bff095546fa119cd3ced2c4a
2017-03-16 14:14:44 -07:00
Matthew Fritze
aa15a8e9c6 Remove ranking code for Old Search
Test: make RunSettingsRoboTests
Bug:35763944
Change-Id: I30b1d22f2de293bd6ff03352ca5793b00beec61a
2017-03-16 08:53:14 -07:00
TreeHugger Robot
54c962f55e Merge "SearchFragment removes stale data from the database" 2017-03-16 00:17:12 +00:00
Matthew Fritze
ebb5b7f73d SearchFragment removes stale data from the database
When search fragment is created, it will get a list of
the non-indexable keys and verify that each of the results
are not a part of that list.

This CL moves the non-indexable keys logic into a
controller for shared use between SearchFragment
and DatabaseIndexingManager.

Bug:33209418
Test: make RunSettingsRoboTests
Change-Id: I4ed3812ecc5ee9e63b75ba6edbc7ff8712e8e9c9
2017-03-15 15:34:49 -07:00
Fan Zhang
8c3dc96b21 Refactor all saved query related logic into a controller
Change-Id: I96f7dd91d7d2715141a9905cb59262d927560da4
Fix: 27391895
Test: make RunSettingsRoboTests
2017-03-15 12:41:00 -07:00
Fan Zhang
fe44549626 Add button to remove saved search query
TODO: move all saved query related logic into its own manager instead of
leaving them in SearchFragment.

Change-Id: I9635140eb507331246f9035a23138421cfa4b50a
Fix: 27391895
Test: make RunSettingsRoboTests
2017-03-15 10:43:10 -07:00
TreeHugger Robot
be0e3f376e Merge "Display recents when search fragment open." 2017-03-14 21:46:34 +00:00
Fan Zhang
199b0fd697 Display recents when search fragment open.
Bug: 27391895
Test: make RunSettingsRoboTests
Change-Id: I62cfa35af96babf85a795910aa76dc774e2b80f2
2017-03-14 11:59:57 -07:00
Fan Zhang
c49ab99007 Add misc logging:
- Button clicks in app detail page:
  uninstall/disable/clear data/clear cache
- More logging in search:
  log inline search result click, and its metadata such as
  name/value/rank.

Fix: 32652772
Fix: 32798201
Test: make RunSettingsRoboTests
Change-Id: I90cef7c9ea9ea69ea9cf083013a38417097f8594
2017-03-13 16:30:55 -07:00
Matthew Fritze
2beb03f4b7 Add optional feedback button for settings search
Adds mechanism for adding a button in the search screen
and stubs to show and hide the button.

Fixes: 35164702
Test: make -j40 RunSettingsRoboTests
Change-Id: I34d245e84b62cedf2dc6e5de4ea336c5a99ffd31
2017-03-13 09:55:05 -07:00
Fan Zhang
1f5fdab61e Misc fixes
- Remove tiny icon in bluetooth subheader
- Turn new search on

Fix: 35917435
Test: make RunSettingsRoboTests

Change-Id: I97a02319108a46a0c3df2295ddec49d47f13b597
2017-03-09 14:06:43 -08:00
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