Commit Graph

335 Commits

Author SHA1 Message Date
TreeHugger Robot
d0888e9e5b Merge "Clean-up settings slices" into pi-dev 2018-05-17 00:26:32 +00:00
Matthew Fritze
11916e00ab Merge "Set slice summary text to screentitle first" into pi-dev am: e7f321c3c0
am: caf745ea13

Change-Id: If59b408370dccd5d77fd0adab038307c51c76a58
2018-05-16 16:39:05 -07:00
Matthew Fritze
7d565e97a3 Clean-up settings slices
- Set TTL to Infinity
- Set color of each slice to color accent

Change-Id: I7de4530880725ba3282602135bdc1fa85d786905
Fixes: 79780418
Test: robotests
2018-05-16 08:20:05 -07:00
Matthew Fritze
f9c13fc305 Set slice summary text to screentitle first
To improve context on search surfaces where the
setting may be ambiguous, we set the screentitle
as the summary text as the top priority. If there is
no screentitle or the it matches the title, then we
try to use the controller summary. If the controller
summary is not valid, then we show nothing.

Bug: 79780762
Test: robotests
Change-Id: If4f7f8d4a072125604ede14e3df2afd667fa24b7
2018-05-16 08:13:22 -07:00
Jason Monk
284ca4f356 Hook up slice deep links
Device indexing might launch them on occassion.

Test: existing test passes
Test: launch deep link
Change-Id: Ie4d3cef2cc384ca809e74b27638d2c5a1d4d98a2
Fixes: 79435996
2018-05-15 16:23:49 -04:00
Naina Nalluri
15602b3f48 Merge "DO NOT MERGE Add Slices for WifiCalling" into pi-dev 2018-05-14 22:59:11 +00:00
Naina Nalluri
e6bf71abed DO NOT MERGE Add Slices for WifiCalling
Add Slices for WifiCalling
WifiCalling Slice Provider:
  1. If there is no activation needed or if the Wifi calling
     is currently turned on - provide the slice to toggle the
     value
  2. Else display appropriate message with further instructions
WifiCalling Slice Broadcast Receiver:
  1. If the action is turning off wifi or if there is no
     activation needed. Change the setting with ImsManager.
  2. And Ask to requery the slice in one second to display
     updated settings if 1 is valid or display appropriate message

Bug: 63731862
Bug: 78192106
Test: Use support-slices-demos-debug.apk to test on device
Test: Robotests
Change-Id: I29e1822fd24ebcff575fa48ad93f84ed91bf4d87
2018-05-14 20:16:01 +00:00
Naina Nalluri
6885d85a7c Add Slices for WifiCalling
Add Slices for WifiCalling
WifiCalling Slice Provider:
  1. If there is no activation needed or if the Wifi calling
     is currently turned on - provide the slice to toggle the
     value
  2. Else display appropriate message with further instructions
WifiCalling Slice Broadcast Receiver:
  1. If the action is turning off wifi or if there is no
     activation needed. Change the setting with ImsManager.
  2. And Ask to requery the slice in one second to display
     updated settings if 1 is valid or display appropriate message

Bug: 63731862
Bug: 78192106
Test: Use support-slices-demos-debug.apk to test on device
Test: Robotests
Change-Id: I29e1822fd24ebcff575fa48ad93f84ed91bf4d87
2018-05-14 10:19:15 -07:00
Fan Zhang
80376a5b46 Make pref unsearchable for more availibility status.
Bug: 72748524
Test: robotest
Change-Id: I12b13ac3503f851857787df98a2d2f599c71b9b7
2018-05-11 11:45:02 -07:00
Fan Zhang
93d3b5174d Fix a strict mode violation in SystemUpdatePrefController
Change-Id: I4770b878b6f69318f08f8974c5c4d2690c5611d4
Bug: 78626509
Test: robotests
2018-05-11 03:45:48 +00:00
Fan Zhang
4ca363470b Fix a strict mode violation in SystemUpdatePrefController
Change-Id: I4770b878b6f69318f08f8974c5c4d2690c5611d4
Merged-In: I4770b878b6f69318f08f8974c5c4d2690c5611d4
Fixes: 78626509
Test: robotests
2018-05-11 00:32:01 +00:00
Fan Zhang
33b585a831 Merge "Fix a concurrent modification exception in Slice provider." into pi-dev am: 350c5b3c40
am: b8b9e69a94

Change-Id: I7827b526be72fb2678d7bb662e6c13f722a8aaa9
2018-05-09 16:53:43 -07:00
TreeHugger Robot
350c5b3c40 Merge "Fix a concurrent modification exception in Slice provider." into pi-dev 2018-05-09 23:28:45 +00:00
TreeHugger Robot
ab68a8107c Merge "Establish permanently unavailable settings" into pi-dev 2018-05-09 21:13:44 +00:00
Salvador Martinez
bfcedc54b0 Merge "Remove the Settings search keywords from Slices" into pi-dev am: 26453818b9
am: 7e34ffdb6a

Change-Id: Ib4abbf9c4b4db45ab99846b7377ecaea4c0e9745
2018-05-09 13:45:05 -07:00
Fan Zhang
a55993c12c Fix a concurrent modification exception in Slice provider.
Change-Id: I87449dda9a56b5e8932dc4c6bec462195cb89348
Fixes: 79372493
Test: monkey
2018-05-09 12:51:20 -07:00
android-build-team Robot
02ec86a17b Merge "Establish permanently unavailable settings" 2018-05-09 18:14:32 +00:00
Matthew Fritze
bd376296cd Establish permanently unavailable settings
Distinguish between settings which are permanently unavailable on
the device, and temporarily unavailable. This enables us to restrict
which setting slices are exposed in onSliceGetDescendants.

The primary changes in this CL are renaming:
"DISABLED_UNSUPPORTED" -> "UNSUPPORTED_ON_DEVICE"
to be more clear the the setting will cannot be accessed on the device, and,
adding a new enum to encapsulate settings which are currently unavailable, but
could be enabled in the future.

Also remove UNAVAILABLE_UNKNOWN. Devs should never need this enum.

Bug: 78910582
Fixes: 79245656
Test: robotests
Change-Id: I42c2cedab66be2d76999795f46470a079cc1ec71
Merged-In: I58821a6cfd6134b3b351657b6edf5f74ead00643
2018-05-09 10:03:40 -07:00
Matthew Fritze
ff865c898f Remove the Settings search keywords from Slices
The keywords used for settings search are good when we are highly
confident the user is searching for as setting (settings search),
but not effective in a more general search setting (launcher,
an assistant). Thus, we should not index these keywords as Slice
keywords, and rely on the setting title and screen title as baseline
keywords.

Change-Id: I99e44834454b5949c4883f877e02be47498e06e2
Fixes: 78911847
Test: robotests
2018-05-09 09:01:58 -07:00
Matthew Fritze
f87a1f3f41 Establish permanently unavailable settings
Distinguish between settings which are permanently unavailable on
the device, and temporarily unavailable. This enables us to restrict
which setting slices are exposed in onSliceGetDescendants.

The primary changes in this CL are renaming:
"DISABLED_UNSUPPORTED" -> "UNSUPPORTED_ON_DEVICE"
to be more clear the the setting will cannot be accessed on the device, and,
adding a new enum to encapsulate settings which are currently unavailable, but
could be enabled in the future.

Also remove UNAVAILABLE_UNKNOWN. Devs should never need this enum.

Bug: 78910582
Bug: 79245656
Test: robotests
Change-Id: I58821a6cfd6134b3b351657b6edf5f74ead00643
2018-05-09 08:36:59 -07:00
android-build-team Robot
d284fe11aa Merge "Prevent crashes on null intent in Slice Builder" into pi-dev am: 69fce6df71
am: 46dd838e8d

Change-Id: I2048cd12599e9d2ad115f2e6b1a6371feb2e72ae
2018-05-08 19:32:29 -07:00
Matthew Fritze
c301964167 Prevent crashes on null intent in Slice Builder
Change-Id: Ia429dd00fce785bc9d23ac8cf15f6855d7fca7c2
Fixes: 79147458
Test: Robotests
2018-05-08 15:37:42 -07:00
Jason Monk
069bfaa33d Merge "Add auto-granting of slice permissions" into pi-dev am: f778a91a88
am: 8ead7e26f2

Change-Id: I27cf09c0875b72d9e9478eed410884fa3813daf1
2018-04-26 15:38:21 -07:00
Jason Monk
f778a91a88 Merge "Add auto-granting of slice permissions" into pi-dev 2018-04-26 22:05:19 +00: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
Matthew Fritze
a7fd137e2d Merge "Index database before getting Uri Descendants" into pi-dev 2018-04-26 20:14:53 +00: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
Jason Monk
50e2a99a43 Merge "Fix settings slice caching" into pi-dev am: ab3aa6989a
am: fa5e0ece68

Change-Id: Ia88dc12ead0cab4b335062cba4fbf7db8066e285
2018-04-26 05:56:47 -07: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
Jason Monk
4913183def Fix settings slice caching
Previously if there were multiple clients it would trigger an infinite
loop as the cache gits dropped after the first bind, and the second
client would trigger another load. Instead now cache as long as slices
are pinned since thats the intended behavior of caching.

Test: make RunSettingsRoboTests
Change-Id: I7d29fab87573120b34cd55e1696c4c5b70fc891c
Fixes: 78471335
2018-04-24 17:08:26 -04:00
Jason Monk
0ef0c367e9 Add auto-granting of slice permissions
Allow things that can read the index to access slices too.

Test: existing tests unaffected
Bug: 77313888
Change-Id: I54c4b89eefb4354aa6b7dcafb7ac09dc96cbdbeb
2018-04-23 18:42:21 -04:00
Matthew Fritze
04926f35b7 Merge "Add keywords to Slices" into pi-dev am: 2f911e2e9e
am: 21521826d9

Change-Id: I38d9efabcdecf3c40f1af28ecd167e58c2586ca7
2018-04-20 20:27:02 -07:00
TreeHugger Robot
524babb389 Merge "Catch exception when failing to create slice" into pi-dev 2018-04-21 02:03:49 +00:00
Fan Zhang
0e5a3273af Catch exception when failing to create slice
- Created a non-generic exception type when failing SliceData.build()
- Catch exception and log error instead of crash.
- Added a presubmit test

Fixes: 78347031
Test: robotests, atest
Change-Id: I06e528cb5e1cd328f82f9561553f3c4b5b0bed26
Merged-In: I06e528cb5e1cd328f82f9561553f3c4b5b0bed26
2018-04-20 23:55:39 +00:00
Fan Zhang
2a7fcc4d6f Catch exception when failing to create slice
- Created a non-generic exception type when failing SliceData.build()
- Catch exception and log error instead of crash.
- Added a presubmit test

Fixes: 78347031
Test: robotests, atest
Change-Id: I06e528cb5e1cd328f82f9561553f3c4b5b0bed26
2018-04-20 15:46:35 -07:00
Matthew Fritze
47a44e8fa4 Add keywords to Slices
Attach the keywords used for Settings search to Slices.
Their primary use is helping match synonyms for presenters
which display slices without explicit Uri requests, like a launcher.

This changes:
- Updates database scheme
- Adds to SliceData object
- Grab keywords in the SliceDataConverter
- Set keywords on all slices

Test: robotests
Change-Id: I16c40d2380ffddaf0a87fb1b9cd58e95573b308f
Fixes: 78306195
2018-04-20 14:50:55 -07:00
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
Matthew Fritze
f9f72e8c2c Update Slice APIs to current versions
Change-Id: Icf40673e518534487be77f33427df937717735e5
Fixes: 77982356
Test: robotests
2018-04-19 17:29:18 -07:00
Jason Monk
28af23680e Fix wifi launch intent
Test: manual
Bug: 76162313
Change-Id: Ie4d4235026ed72afc68f0e513ec34c8f188badb9
2018-04-18 10:54:35 -04:00
TreeHugger Robot
bc4c392ff4 Merge "Add A11y Slices" into pi-dev 2018-04-18 01:44:58 +00:00
TreeHugger Robot
1257466d0b Merge "Add getDescendants to Settings Slice Provider" into pi-dev 2018-04-17 19:21:20 +00:00
Matthew Fritze
6730a061b1 Add getDescendants to Settings Slice Provider
getDescendants allows another app to collect a list
of all valid Uris for Settings Slices. Important for search,
assistant or launcher apps.

This means searching our database for all valid keys and building
a list of Uris for each of those keys.

Fixes: 77808328
Test: robotests
Change-Id: I3ae27e4661a7dcaab50b091ae2730013118af8a2
2018-04-17 10:48:53 -07:00
Matthew Fritze
7acd13f3e4 Update a Slice Uri when unavailable
When a slice becomes unavailable, it should not update the
underlying data even if the view has not changed.

When we receive a change from an unavailable slice, notifychange
on the Uri and do not change the underlying data.

Change-Id: I91851ab668e4aece669fd65c14e0dc4ec2edefdf
Fixes: 77980406
Test: robotests
2018-04-17 10:43:26 -07:00
Matthew Fritze
a711ed8330 Add A11y Slices
Add AccessibilityPreferenceController, which wraps all a11y settings
since they are share common infrastructure for enabling, current value,
and availability.

We add an overlay for OEMs to declare their bundled a11y services.
This is the only list of services that will be possible to enabled via
Settings slices.

Accessibility Slices are built by getting a list of valid services,
and indexing the service names as a key in the Slices DB. When they are
built at runtime, they use the generic A11yPrefController to get the status
and enable/disable the service.

Bug: 67997836
Bug: 67997672
Test: robotests
Change-Id: I66f905bf1c55eecb937945c4675c12bcbc96d698
2018-04-17 10:27:02 -07:00
Matthew Fritze
59e2d1fff9 Uniquely identify Slice intents
PendingIntents were being cached because they had the same
targets and would not differentiate on extras - thus all Slice
intents would go to the same destination as the first intent fired.

Adding the data stops the system from caching the intents.

Change-Id: Ifccab72ed482e22750422c5c36aa6d205c20ae3d
Fixes: 77650727
Test: robotests
2018-04-11 17:54:41 -07:00
TreeHugger Robot
3ec0e4851c Merge "Unavailable Slices includes DISABLED_DEPENDENT settings" into pi-dev 2018-04-10 19:31:03 +00:00
Jason Monk
9b555bf515 Update slice constant reference
Test: build
Bug: 73123786
Change-Id: I9f38f0298bcaace85256639fd285d38a580c90fe
2018-04-10 10:56:32 -04:00
Matthew Fritze
dba7d1c4b3 Unavailable Slices includes DISABLED_DEPENDENT settings
In the change to mark disabled_dependent as available,
it did not change the check in SliceBuilderUtils for the
unavailable Slices. In the case of DISABLED_DEPENDENT, the
setting is available but the Slice is not.

Though it is a simple change, we can now properly test the contents
of Slices, so this change includes tests which should have been in
place earlier and would have caught this bug - duh.

Bug: 71640747
Test: Robotests
Change-Id: I8db5bc80edb337cbf907ce3669aa2bfd9c72f74a
2018-04-09 17:06:47 -07:00