Commit Graph

246 Commits

Author SHA1 Message Date
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
Fan Zhang
a79c377fbc Declare "searchable" attribute for preferences.
Now we can easily mark a preference nonIndexable in xml instead of
adding key into searchIndexProvider.

Bug: 112608186
Test: robotests
Change-Id: I0ff16d44bb7b6ad148d3d35f09ca0da0163f73f4
2018-08-16 09:06:39 -07:00
Doris Ling
882bef3962 Disable changing lock when device is not provisioned.
When the device is not yet provisioned and settings is launched:
- disable the entry point for changing device lock
- remove the search panel from settings home page
- remove the search menu

Bug: 110034419
Test: make RunSettingsRoboTests
Change-Id: Ieb7eb0e8699229ec0824ccc19d7b958ac44965a2
2018-08-01 10:18:01 -07:00
tmfang
f12e6adcdc Settings Fragment Migration (Fix test cases)
Fix all Roboletric test cases.
In this CL, some test cases are broken.
So, We ignored these test cases temporarily.

Test: make RunSettingsRoboTests -j56
Bug: 110259478
Change-Id: I1a3075438a614432a2de4f2d96d8abf9a83ce58c
2018-07-11 18:24:51 -07:00
Fan Zhang
78ea7da54c Misc tweaks to Indexable usage and tests.
- Make SettingsPreferenceFragment implement Indexable directly
- Add existing fragments that are SettingsPrefFragment but not Indexable
  to grandfather list.
- Fix "font size" fragment so it shows up in search properly.
- Remove duplicates for "lock screen display", "Screen saver".

Bug: 70720645
Test: robotests
Change-Id: I44ce0cac0fdf5e882b315861bb4bebc45dbe01e6
2018-07-02 16:46:23 -07:00
Fan Zhang
7431c91de6 Remove search indexing pipeline from Settings
Index is already handled by SettingsIntelligenec. No longer needed in
Settings.

Change-Id: Id43fb3100dc2759185744441cff8cb9cd2d2da20
Fixes: 69808376
Test: robotests
2018-06-21 09:38:36 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
Fan Zhang
74ba1a51d7 Skip device index job if caller is not Settings app.
Change-Id: I96184f111e83477b46ddf321ec74917bab330048
Fixes: 80437512
Test: robotests
2018-05-30 10:38:58 -07:00
Fan Zhang
0b5f345e87 Merge "Fix a bug where device index is not skipped correct." into pi-dev am: 75b3e6f302
am: 9bc1f54268

Change-Id: Id2979eaf1f08bd2c67bd6bba31a62eb5d0acf8e2
2018-05-29 12:53:47 -07:00
TreeHugger Robot
75b3e6f302 Merge "Fix a bug where device index is not skipped correct." into pi-dev 2018-05-29 18:48:24 +00:00
Fan Zhang
548485336f Fix a bug where device index is not skipped correct.
When checking language/build fingerprint to skip reindex, language check
was comparing Locale object and String object, so they would never be
equal, so we accidentally reindex every time.

- Switched Objects.equal to TextUtils.equal, this catches the error at
compiler level.

Bug: 80065409
Test: compile/robotest
Change-Id: I2b3c68bb1c2fd876338f42321605567d7e64d64b
2018-05-25 16:25:14 -07:00
Jason Monk
7c3c3b1154 Merge "Follow SliceManager API changes" into pi-dev am: d68ed5c92c
am: 667d662d85

Change-Id: I42f6774aed0638e9c6574c0f5332c3c235ac07f2
2018-05-24 23:51:44 -07:00
Matthew Fritze
e656ffd83c Merge "Clear indexing before adding all Slices" into pi-dev am: 842ea91baa
am: 6f8bfd5fec

Change-Id: I4a56f4af28b980480c17b4de918b3aeb052f40e5
2018-05-23 16:02:00 -07:00
Jason Monk
20495a8c36 Follow SliceManager API changes
Test: make
Bug: 78898947
Change-Id: I5a46ccafe36ad2e0fdac745606d9907f07a86d0c
2018-05-23 17:09:03 -04:00
Matthew Fritze
4b26969839 Clear indexing before adding all Slices
Before we index, add a call to clear indexed data before
indexing again. It's an optional call.

Fixes: 80065409
Test: robotests

Change-Id: Iddb0ce02c50d84b51fbf6fc2be0bdc9aa1f5987a
2018-05-22 20:02:20 -07:00
Fan Zhang
fc6ce6de32 Merge "Do not perform device index before device provision." into pi-dev am: 1fe4512596
am: 8a8b58d381

Change-Id: Ie111e38c79735090a0cedae253d97d638f974209
2018-05-17 12:56:44 -07:00
Fan Zhang
4b04ba5903 Do not perform device index before device provision.
Bug: 79841744
Test: robotests
Change-Id: I74243b6f31364220156e91fe63b56138a0240714
2018-05-16 13:26:24 -07:00
Jason Monk
0d3322a57b Merge "Push full slice index to device index" into pi-dev am: 3d29ca2893
am: 2332aad2a6

Change-Id: I3563eb7ed2ab93b35b1a950d89ca2466abaa59e3
2018-04-26 14:26:38 -07:00
Jason Monk
3d29ca2893 Merge "Push full slice index to device index" into pi-dev 2018-04-26 20:48:41 +00:00
Matthew Fritze
8c9e0354b4 Merge "Index database before getting Uri Descendants" into pi-dev am: a7fd137e2d
am: 03f1fafaaf

Change-Id: I700fd063084ad0e41289feb552b3a1bfafd3cd57
2018-04-26 13:36:00 -07:00
Jason Monk
fcd5f0f1aa Push full slice index to device index
Test: make RunSettingsRoboTests
Bug: 74555610
Change-Id: I3f0aa1218e1d7e736dc918d83e76423fa81ac6ab
2018-04-26 11:16:04 -04:00
Matthew Fritze
838d69da50 Index database before getting Uri Descendants
onGetSliceDescendants would return empty results if
the call was made before the database was indexed.
This CL checks the index before building the list.

Change-Id: I2e0f88893138a048dbd529d465d68fa4b1a3dc12
Fixes: 78196823
Test: robotests
2018-04-25 15:53:16 -07:00
Tony Mantler
0fcd6cbaa8 Autogenerate SearchIndexableResources subclass
Bug: 77148954
Test: RunSettingsLibRoboTests RunSettingsRoboTests RunSettingsGoogleRoboTests RunArcSettingsRoboTests
Change-Id: I842c42c55014c3310070ef22bd4f0d9a70dfd804
2018-04-03 10:26:55 -07:00
Jason Monk
f6edc7c80a Add option for settings to push to a device index
The index implementation is optional and left up to the OEM.

Test: Open settings, see content in index
Test: robo tests
Bug: 68378569
Bug: 76102600
Change-Id: Idb8bb1e0cabbbe92e7a852e2eadbdcd8c2ab7d56
2018-03-23 09:36:57 -04:00
Fan Zhang
59520b028a Fix tests
Change-Id: I8b750a87e6852d60ac2f8f61a955b1296cef759b
Fixes: 74234076
Test: robotests
2018-03-06 09:09:31 -08:00
Fan Zhang
3b47e5bc9f Reuse xml parser logic to scrape preference xml files.
Bug: 73668763
Test: atest
Test: robotests
Change-Id: Ifc241b5b4ec6d2935c4c532ff902a7ba352a98d6
2018-03-05 14:20:19 -08:00
James Lemieux
22a39c2b93 Use external/robolectric-shadows/run_robotests.mk
This allows Settings to test against the latest framework changes.

Also replaced TestConfig with traditional robolectric.properties.

Bug: 73173204
Bug: 73892008
Test: make -j56 RunSettingsRoboTests
Change-Id: I3135b4fa5f095ba79b282a76f45dd9baa2584bc7
2018-03-04 03:50:08 -08:00
Fan Zhang
f7843adabd More renaming in DashboardFragment
getPreferenceControllers() -> createPreferenceControllers() for the same
reason as in ag/3647936

Bug: 73668763
Test: robotests
Change-Id: I97670a91a2a38d1c844d1b9d37f4222c5e6f45a0
2018-02-23 16:56:30 -08:00
Fan Zhang
aed8994f6f Rename Indexable::getAllPreferenceControllers.
To getPreferenceControllers. "all" is redundant. Then internally, the
old getPreferenceControllers() is renamed to
createPreferenceControllers() to emphasize the controllers are created
from code (versus the ones created from xml).

Bug: 73668763
Test: robotest
Change-Id: Ifec46aefdc2a418031c8e152028b30bdcd396fc7
2018-02-23 16:37:28 -08:00
Fan Zhang
917f101899 Instantiate pref controllers from xml if it's defined.
- If a <preference> tag also defines a controller, we will try to
  instantiate it before displaying the UI. The same logic is shared by
  BaseSearchIndexProvider so it also drives search suppression.

- If user also defines a list of controllers programatically, the
  programatically created ones takes precedence.

Bug: 73668763
Test: WIP
Change-Id: I7aecec270bcd3af261e012ef1f6995d2a523cfa1
2018-02-23 14:08:51 -08:00
Fan Zhang
1ac5a01253 Move xmlParserUtils to core
This class is currently used by both search and slice, in the future
will be used by DashboardFragment to build controller list. So the scope
of this class is beyond search now.

Test: rerun robotests
Change-Id: If43ebca065aac31ad24f95a94bfe5be784109605
2018-02-20 17:43:28 -08:00
TreeHugger Robot
373a33bb87 Merge "Fix double search icon in wifi calling page" 2018-02-09 22:39:30 +00:00
Fan Zhang
b91db42100 Fix double search icon in wifi calling page
- Moved fragments into wifi sub-package.
- Cleaned up inheritance for WifiCallingSettings
- Attach help and search action menu controller correctly.

Change-Id: I0bc8ab99df5d8c5ea64fb64de5ae70c2c9bd6f31
Fixes: 72958674
Test: robotest
2018-02-09 11:26:16 -08:00
Jan Nordqvist
4fbe0f8354 Update DataUsageSummary to include carrier provided information.
This CL augments the existing data usage display with carrier provided
information about data usage and plans when available from the new
frameworks API.

Test: manual
Test: make RunSettingsRoboTests
Bug: 70950124

Change-Id: Idde1ff786e8c5dbc04e58ffbcc0fd18789682699
2018-02-08 10:13:42 -08:00
Fan Zhang
d75baf7e85 Remove some dead code from search
Test: rebuild
Change-Id: If736f58c546fa9eafc405525c11640ca2576d446
2018-02-07 16:56:28 -08:00
Ben Lin
4d163fcc93 Add capability for OEMs to supply their own SearchIndexableResources.
This moves SearchIndexableResources to be supplied by FeatureFactory
rather than its own singleton, which in effect allows OEMs to supply their
own, in the case where they have their own classes they want to be
indexed (or, remove certain classes that used to be indexed).

Bug: 72179744
Test: All tests pass.

Change-Id: Ia06b2026df7eca4c53b44a5a589c4aaa0b69d96c
2018-01-19 11:49:51 -08:00
Fan Zhang
74706b6ed1 Remove more things from search v1
Test: robotests
Change-Id: Ide54d1cec69ae3a6782a979d3eeb7f3fc44f09b3
2018-01-18 15:43:34 -08:00
Fan Zhang
85cd77c9f2 Remove search v1
Fixes: 69851037
Test: robotests
Change-Id: I53bc6408116031619053066055cb26cac67b9945
2018-01-16 14:19:51 -08:00
James Lemieux
99d10a4e62 Adopt robolectric 3.6.1
Bug: 71596155
Test: make RunSettingsRoboTests
Change-Id: I46362bae1e3ddd3ce19ade1c93250d272f3366e6
2018-01-12 13:49:29 -08:00
Matthew Fritze
13c43f1900 Index Data to build Slices in Settings
The indexing is done by taking the indexable fragments from
search, grabbing their XML via SearchIndexableResources, and
then looking for controllers defined in preferences.

For each controller found, we take the combination of the
fragment providing the XML and the Preference info to create
an indexable row.

Buiding a Slice will be handled in a subsquent CL, but a
prototype can be found here: ag/3324435

Test: robotests
Bug: 67996923
Change-Id: I48668618079bcc3da55ab77b7323ee8e467073af
2017-12-19 09:47:07 -08:00
Matthew Fritze
7fddfebf6c Add Slices Data object and DB Contract
Add in a Data object used to represent one row
in a new SQLite database used for building Slices.

The database has the following schema:
- Key
- Title
- Subtitle
- Screentitle
- Icon
- Fragment
- Controller

The key is the preference key.
Title, subtitle and Icon are for UI info.
Screentitle and fragment are for the intent.
Controller is used to get dynamic ui info (like summary),
and to take actions on the slice (like a toggle).

The actual indexing and a Slice will be handled in a subsquent CL,
but a prototype can be found here: ag/3324435

Test: robotests
Bug: 67996923
Change-Id: Id91deb58a3ab89ce1dab5a3f34cdb9ade6263aa8
2017-12-13 10:59:47 -08:00
Matthew Fritze
7d2b4f5fc7 Add PrefController in XML support
Add the ability to define a Preference Controller
in xml using the 'controller' tag.

This is useful for two reasons:
- It allows the controllers to be instantiated via
reflection for Slices and Dashboard fragment
- Removes the requirement that controllers be defined manually
in Fragments

In order to be instantiable, they must have a unified construction
following either:

  ClassName(Context)
  ClassName(Context, String)

Also added a robotest that verifies that all controllers defined
in XML follow the constructor schema, and extend
BasePreferenceController.

Test: robotests
Bug: 67996923
Change-Id: I304b35dc666daebecf0c9e286696f3f2a510704a
2017-12-12 14:21:12 -08:00
TreeHugger Robot
91fff3093d Merge "Rename SDK_VERSION_O to SDK_VERSION" 2017-12-06 02:45:15 +00:00
jeffreyhuang
cbfb099a40 Rename SDK_VERSION_O to SDK_VERSION
Test: make RunSettingsRoboTests -j40
Change-Id: I6715062d8addadda441e32809db1af55f15e3a90
2017-12-05 16:43:54 -08:00
Fan Zhang
0503686b37 Remove broken tests
The test case is broken due to NoSuchField error from robolectric. Since
the code its testing is being deprecated, test can be removed to keep
build green.

Test: robotests
Change-Id: I22f8ea58fceeb85940447f70b10add877344ba05
2017-12-05 14:36:47 -08:00
Fan Zhang
dff6dd687e Move away from deprecated FakeFeatureFactory.setupForTest()
Test: rerun
Change-Id: I896ba414315ddb1664c0499264f4992f0554ef98
2017-12-05 10:12:10 -08:00
TreeHugger Robot
61691b5a4f Merge changes I8ce427ea,If33c3d3a,I579be569,I755c04da
* changes:
  move search test package to sdk 26
  Update accessibilityserviceresult test to sdk 26
  Update IntentSearchViewHolderTest to sdk 26
  fix DatabaseIndexingManagerTest hanging in tests
2017-12-02 01:32:49 +00:00
jeffreyhuang
e67e8fa9c7 move search test package to sdk 26
Test: make RunSettingsRoboTests -j40
Change-Id: I8ce427ea853c474f751a14c499c72a2642533ada
2017-12-01 15:33:23 -08:00
jeffreyhuang
d267ec2742 Update accessibilityserviceresult test to sdk 26
Test: make RunSettingsRoboTests -j40
Change-Id: If33c3d3a13cb52aee2b69afbd1ee97b8e1bbc01c
2017-12-01 15:33:23 -08:00
jeffreyhuang
f28803ec83 Update IntentSearchViewHolderTest to sdk 26
Test: make RunSettingsRoboTests -j40
Change-Id: I579be569a9a56175e45abc329b61cb1b9daf3ac7
2017-12-01 12:32:52 -08:00