Commit Graph

335 Commits

Author SHA1 Message Date
Matthew Fritze
8db4358f76 Prioritize dynamic summaries
If both Xml and a controller provide a summary,
the controller's should be prioritized.

Change-Id: I030746b0f253ce4884a7868e385069b208f63082
Fixes: 77602860
Test: robotests
2018-04-06 14:11:50 -07:00
TreeHugger Robot
b299122e08 Merge "Updates to match prebuilts drop" into pi-dev 2018-04-04 22:40:27 +00:00
Jason Monk
20210122bd Updates to match prebuilts drop
Test: build
Bug: 77482321
Change-Id: I65a2cffb0a921ef6acb58ff500a7da8a8f870e76
2018-04-04 16:08:17 -04:00
Fan Zhang
87b2634fc0 Log when settings slice is requested/updated.
Change-Id: Ie6b7000729b3a414a29e3dfc25a29e1f2f939ddd
Fixes: 71503986
Test: robotests
2018-04-03 10:15:56 -07:00
Fan Zhang
b5c651c939 Register most app info related controllers in xml
Bug: 77216595
Test: robotests
Change-Id: I79afa38820b7518d8b3112148802797ebcf6d184
2018-03-29 17:55:41 -07:00
Matthew Fritze
fcdfc2d83f Return back-up slices for unavailable settings
When an inline slice is requested, and the setting is unavailable,
we should present more useful information to the user. This CL handles:
- Unsupported: return intent slice to Settings home page
- Disabled for user: intent to the setting page
- Unknown reason: intent to setting page
- Disabled dependency: Create intent-based Slice rather
than the requested inline slice.

Bug: 71640747
Test: robotests
Change-Id: I9c1a0ee36119d4f9f3b205e0824c251f4356db55
2018-03-23 12:47:36 -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
Matthew Fritze
ad6678f9fc Add Slider template for Slices
Add the Seekbar preference equivalent
to the TwoStatePreference (toggle) preference
controller abstract controller.

Change-Id: I6ff91f2f72a7f72c18ddbc27b2b1fda4b6ce6ca9
Fixes: 67996707
Test: Robotests
2018-03-22 11:46:47 -07:00
Matthew Fritze
79c6395295 Index SliceType and Official Platform flag
Extend slices_index.db to include SliceType and platform flag.
This will be used when we generate a list of all available slices
for different authorities & separated intent/action paths.

Bug: 62807132
Test: robotests
Change-Id: I1cce49d077c02ab79153db9bfdfc894dbab5e16a
2018-03-19 14:51:31 -07:00
Alan Viverette
4734b3448a Restore "Update for 1.0.0-beta1"
This reverts commit b4fe52343c.

Bug: 74950017
Test: manual
Change-Id: I9749b9ae8f2f75b1bbdf7c6686a036db1f6f8a74
2018-03-16 02:13:11 +00:00
Alan Viverette
b4fe52343c Revert "Update for 1.0.0-beta1"
This reverts commit 6b1fd5cfa9.

Reason for revert: broke Settings

Bug: 74950017
Test: revert only
Change-Id: If56a4dcac4671d8e2c5f2c0de30d13e3cf58666a
2018-03-15 18:48:00 +00:00
Alan Viverette
6b1fd5cfa9 Update for 1.0.0-beta1
Bug: 74449147
Test: make
Change-Id: I664b5f29efbb5d6c40420c0d8aaa8629ddfcd31b
2018-03-12 23:08:35 +00:00
Matthew Fritze
a4a3dfffa2 Declare official platform slice
Create the notion of an official platform slice.
This includes:
- Adding a second authority to the provider
- tagging slices in xml with a platform slice flag
- Including authority in the getUri method

Bug:73359139
Test: robotests
Change-Id: I5382be138a262dbc5a8324c34aab131c5d0d5516
Merged-In: I581ee6dfcdf935f452a15e89e5d055e375ff1877
2018-03-09 18:04:06 +00: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
Alan Viverette
aaa5643d86 Merge "Revert "Revert "Update to match now slice APIs""" 2018-03-02 15:08:14 +00:00
TreeHugger Robot
3a7404ec69 Merge "Support Slice type in SliceData" 2018-03-02 00:48:08 +00:00
Matthew Fritze
1e9d9c7054 Support Slice type in SliceData
Add a getter for Slice type for BasePreferenceController.
This facilitates the generation of all possible Slices for Settings
search and discovery for AGSA.

Bug: 62807132
Test: robotests
Change-Id: I2cba1fc72c95769ecc26c76d1f2faa49a285d077
2018-03-01 15:25:14 -08:00
Fan Zhang
906572b127 Change PreferenceController#getSummary return type.
Return CharSequence instead of String.

All user visible string should be modeled as CharSequence.

Bug: 73950519
Test: robotest
Change-Id: I30befef0c33f94351d4a2774e283bd1ed804aa8b
2018-02-27 22:30:12 -08:00
Alan Viverette
24ac51ce3a Revert "Revert "Update to match now slice APIs""
This reverts commit 80c806abd6.

Bug: 73250914
Test: make && make checkbuild, manual testing
2018-02-27 22:12:02 +00:00
Alan Viverette
80c806abd6 Revert "Update to match now slice APIs"
This reverts commit 2d96005aba.

Reason for revert: prebuilt revert

Bug: 73903252
Bug: 73876473
Bug: 73875529
Bug: 73866916
Change-Id: I5d47a7c5ddebc16c1c508f5bb48ace809cbaf273
2018-02-27 22:07:12 +00:00
Jason Monk
2d96005aba Update to match now slice APIs
Test: make
Change-Id: Ie74e1b179f80e1d0faf259bd22b3ae4e953a0726
2018-02-22 16:33:51 -05:00
Fan Zhang
fc520ee38a Move instantiation-through-reflection method to controller
Bug: 73668763
Test: rerun robotest
Change-Id: If1b263dfd6a8c40f563ce53ce3f368aef5ca5a9f
2018-02-21 11:28:41 -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
Matthew Fritze
64aa50c006 Add bluetooth as a supported Slice
To add bluetooth as a valid slice requires adding
support for Context-only preference controller
constructors, which was already planned work.

Fixes: 67997327
Test: robotests
Change-Id: I7efd20a05d5796c3327a26b1fc535d5436d1070f
2018-01-23 16:16: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
TreeHugger Robot
b0e89cd1c3 Merge "Add dynamic summaries to Slices" 2018-01-18 20:37:42 +00:00
Matthew Fritze
0cb918a1de Asynchronously load SliceData from SliceProvider
The slices paradigm is to return a slice as soon as possible
whith whatever information is currently available. Then, load the
longer information in the background and broadcast on the Uri when
the changes are ready.

This CL incorprates a cache system for SettingsSliceProvider to
load that data in the background to solve the issues of multiple
simultaneous callers.

Bug: 67996923
Test: robotests
Change-Id: I0e3f9984181e1c989fed139707cdb27956cf6de6
2018-01-17 16:31:58 -08:00
Matthew Fritze
82254b08fd Add dynamic summaries to Slices
Summary on slices will now determined by checking that
summaries in the following order are valid:
1) SliceData summary
2) Preference Controller summary
3) SliceData screen title

Valid is currently defined as:
- Not empty / null
- Not whitespace
- Not sumamry placeholder

Fixes: 71640678
Test: robotests
Change-Id: I5e699e8566ece80742d311617b7dc4e9a9bda8cf
2018-01-15 16:05:16 -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
Jason Monk
5ef0a604a9 Follow slice refactor
Test: make
Bug: 68378561
Change-Id: Ifb35d39e54b2c292017b7866d7a52b120b4f6685
2018-01-12 09:19:14 -05:00
Matthew Fritze
8c96843fe3 Build slice from indexed data in SliceProvider
Connect the SliceIndexing data to the SliceProvider,
such that a query to SliceProvider can build a Slice
via the indexed data from SlicesIndexingManager.

We take the key from the Uri supplied to the SettingSliceProvider
and find a potential matching row in the indexed data. The
matched data is then used to Build a slice for the caller.

Bug: 67996923
Test: robotests
Change-Id: If51bfd1a05c3f3817ae720554f95a98fc7b002e1
2018-01-10 10:58:33 -08:00
Mady Mellor
ee5eed13b9 Merge "Update settings slice provider to use new API" 2017-12-20 21:14:15 +00: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
Mady Mellor
ca5304413a Update settings slice provider to use new API
Test: build with new API
Change-Id: I2513b23166848d7729547dc56987766aab48b016
2017-12-15 11:36:42 -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