Commit Graph

877 Commits

Author SHA1 Message Date
Felipe Leme
85d1c2d290 Minor fixes on Autofill Framework:
- Removed default implementation of onProvideAutofillVirtualStructure() that
  was using accessibility API (it's useless because without the View calling
  AutofillManager.notifyViewEntered(), it would never be triggered).
- Fixed obsolete TODOs.
- Removed obsolete service class name constant.
- Removed unused debug constant.

Fixes: 37078783
Fixes: 33197203
Bug: 33802548
Bug: 35956626

Test: CtsAutoFillServiceTestCases pass
Merged-In: I834d34b8af8bf0d781dc7e0ffcd6e600bfa2d183
Change-Id: I834d34b8af8bf0d781dc7e0ffcd6e600bfa2d183
2017-04-24 16:01:12 -07:00
TreeHugger Robot
13ba34bf37 Merge changes from topic 'virtual-display-api' into oc-dev
* changes:
  Add command line option to set compatibility display properties
  Make VR mode virtual display properties customizable
2017-04-24 21:33:59 +00:00
Kang Li
0f80719a6f Moved LRResolverRankerService to ExtServices, and added a permission to
ensure that ResolverRankerServices are from trust sources.

Test: manually shared images in Camera, and in PTP to confirm it works
as expected.

Change-Id: I3549292d424fec949e9115faea7a0c5bdec06e87
(cherry picked from commit 61cf4d145e)
2017-04-21 19:56:59 +00:00
Felipe Leme
0d3db06d1d Removed deprecated SaveInfo methods.
Test: CtsAutoFillServiceTestCases pass
Bug: 37563972
Bug: 33197203

Change-Id: Ie90fa78c31f033c47e7b2f018355ae87759c622b
2017-04-21 08:25:44 -07:00
Felipe Leme
01ded104a1 Implemented FillResponse.setIgnoredIds().
Fixes: 37424141

Test: existing CtsAutoFillServiceTestCases pass
Test: PartitionedActivityTest.testIgnoredFieldsDontTriggerAutofill

Change-Id: I09bd95230c45d2970080514e25cb53320de49b56
2017-04-20 17:38:27 -07:00
Felipe Leme
fe1bddfbb5 Merge "Some Autofill API changes." into oc-dev 2017-04-19 05:05:48 +00:00
Felipe Leme
e5f9c30688 Some Autofill API changes.
- Added View.IMPORTANT_FOR_AUTOFILL_YES_INCLUDE_DESCENDANTS
- Added View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS
- Added FillResponse.Builder.setIgnoredIds()
- Fixed javadoc links.

These changes are not implemented yet....

Bug: 37424141
Bug: 36171235
Test: m update-api

Change-Id: I604960443ab08cd3f2a84a70b0a2cece7cb0a00c
2017-04-18 19:27:58 -07:00
Philip P. Moltmann
cc684ed41f Add a way to read the last AutofillSelection.
- Check UID to make sure one service cannot read FillSelections of other
  services
- Add id to Dataset to allow to tag the datasets. This id is then found
  in the FillSelection.Event
- Add clientState to FillSelection to allow service to store more data

Fixes: 36871500
Test: CtsAutoFillServiceTestCases
Change-Id: Ice894245508227265294a1c59ea97842175e5aec
2017-04-18 16:59:40 -07:00
Philip P. Moltmann
9023d14fb3 Change saveOnAllViewsInsible from boolean to flags
Change-Id: Ibd6f283479bad841eb7b20bb8d006562c4398e9f
Fixes: 35708237
Test: CtsAutoFillServiceTestCases
2017-04-18 10:24:48 -07:00
TreeHugger Robot
1ed2771450 Merge "Add user to channel/group modification callbacks." into oc-dev 2017-04-17 21:26:54 +00:00
Karthik Ravi Shankar
cdf9ce7229 Make VR mode virtual display properties customizable
Currently the virtual display created in VR mode is of fixed size. This
may not work for all the devices. Add APIs to make the resolution and
DPI adjustable from VrCore.

Bug: 37260266
Test: Sample reflection which works - cl/153039188
Test: adb shell set-persistent-vr-mode-enabled true
      adb shell vr set-compatibility-display-properties 500 500 500
      adb shell dumpsys display
      >>   DisplayDeviceInfo{"VR 2D Display":
      uniqueId="virtual:android,1000,VR 2D Display,0", 500 x 500, modeId
      6, defaultModeId 6, supportedModes [{id=6, width=500, height=500,
      fps=60.0}], colorMode 0, supportedColorModes [0], HdrCapabilities
      null, density 500, 500.0 x 500.0 dpi, appVsyncOff 0, presDeadline
      16666666, touch NONE, rotation 0, type VIRTUAL, state ON, owner
      android (uid 1000), FLAG_PRIVATE, FLAG_NEVER_BLANK,
      FLAG_OWN_CONTENT_ONLY}

Change-Id: Ibb2d03b7f7f8f62fcce97fcc2b373ae3f09cef01
Signed-off-by: Karthik Ravi Shankar <karthikrs@google.com>
2017-04-17 14:23:08 -07:00
Julia Reynolds
f27d6b2b82 Add user to channel/group modification callbacks.
Because listeners can see notifications on managed profiles.

Test: runtest systemui-notification and testing with a sample app
(reading and updating channels and getting change
callbacks on a managed profile)
Change-Id: I5d7af3c417e3a3d18f992cc9ad01fbd7959de398
Fixes: 36783632
2017-04-17 08:44:35 -04:00
Philip P. Moltmann
494c3f5da2 Allow to finish session when all views are gone
An service can option to finish the session once all views that it
declared as important. Views that are important are all autofillable
views of any partition and the saveable fields of the last partition.

Test: CtsAutoFillServiceTestCases
Fixes: 35708237
Change-Id: I0ccade8ebb427e5d8928697ef0007c75d3f83df0
2017-04-16 21:36:25 -07:00
Jorim Jaggi
6acf7a7b45 Merge "Wallpaper color extraction API stub" into oc-dev 2017-04-15 04:52:24 +00:00
Svetoslav Ganov
41200eac71 Merge "Add support for multiple fill contexts" into oc-dev 2017-04-15 03:29:13 +00:00
Lucas Dupin
c40608c041 Wallpaper color extraction API stub
Now it's possible to listen to changes on wallpaper colors by
registering a listener on WallpaperManager. It's also possible
to get the current wallpaper text color hints.

Bug: 36856508
Test: compilation
Change-Id: I5102cb7be9a4af60b85fc8913154a79dfe5c21a0
2017-04-14 18:33:08 -07:00
Svet Ganov
013efe173e Add support for multiple fill contexts
When saving data filled by the user the platform provides to
an autofill provider the state of the UI allowing the provider
to interpret this state and store relevant information.

A limitation of the current design is that the fill provider
needs to interpret the screen content twice, once handling a
fill request and once handling a save request. To address this
we are introducing a id for each fill request allowing the
autofill provider to associate arbitrary state with each fill
request and store it in the client data bundle later passed
to save.

Another limitation of the current design is that if the screen
changes dynamically while the user interacts with the app the
UI state passed on save represents a static snapshot, therefore
it is not possible to the autofill provider to determine the
context in which the data in the UI was filled. We could
keep the views and have deltas for views being removed/added
/moved/changed but this is not enough as the fill provider
needs to know not only what changed but what changed for every
fill request and in one session there could be multiple fill
requests. To address this we provide a list of fill contexts
on save each of which has the id of the corresponding fill
request. This allows the fill provider to know the exact context
in which the data was popuplated and also use its custom client
state for this fill request if desired.

This change deprecates the old APIs and the new ones delegate
to the old ones. Once the clients migrate to the new APIs we
will remove the old ones.

Test: all autofill CTS tests pass

Change-Id: Idcebcc671aa3c078a305d8c358e225274fccc588
2017-04-14 17:37:31 -07:00
TreeHugger Robot
b7f0db8d89 Merge "Update more implementations of findViewById()" into oc-dev 2017-04-14 16:26:27 +00:00
Andrew Scull
e52a1bfede Merge "Service for OEM lock management." into oc-dev 2017-04-14 11:31:06 +00:00
Alan Viverette
04fd470ce0 Update more implementations of findViewById()
Bug: 24137209
Test: make checkbuild -j32
Change-Id: I104969fc74d6dc1d159e3d1ff5926640b124a540
2017-04-13 16:50:32 -04:00
TreeHugger Robot
a402d6dd2f Merge "Add autofill feature API" into oc-dev 2017-04-12 21:17:33 +00:00
Svet Ganov
43574b03e5 Add autofill feature API
We now have a software feature for autofill which can be used
by partners to disable it on low-end devices or form factors
for which autofill doesn't make sense.

bug:35956220

Test: manual (requires a custom build)

Change-Id: I6c06462ed9ca3ae93331700dce38a8c08dfd0722
2017-04-12 09:53:38 -07:00
Julia Reynolds
73ed76bc6f Allow companion device mgrs channel access
- Callbacks when channels and groups are modified
- Allow them to read and update channels and groups

Test: runtest systemui-notification
Change-Id: Ie4d02bd4583f71f9faf27603bcc59a1ec0eeaf46
2017-04-11 19:08:59 +00:00
Svet Ganov
fc4a3004e3 Keep a removed API to not break GCore presubmit
Change-Id: Ica38b7aad2a5a8792917d0da1d497f373b118077
2017-04-11 11:40:14 -07:00
Svet Ganov
f20a037ba2 Move API for disabling an autofill service to the manager
Test: the topic has a CTS test

bug:37170723

Change-Id: I2be18968ea8df0fd3fb070fe2efc3e811b0e5a76
2017-04-10 17:43:44 -07:00
Philip P. Moltmann
eab62baabf Restore session on new window after app kill
Also:
- Give the session an integer ID as the activityToken is not stable over
  restarts of the activity
- Verify that session is only accessed by one UID
- stabilize AccessibilityViewIds over activity lifecycle at least for
  the IDs we can do that. This required to split the ID namespace in
  "per-app" and "per-activity" views. Only the later ones can be
  restored.
- Do not end session when app is killed (as it can be restarted)

Bug: 35484143
Fixes: 36392498
Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases --test=android.autofillservice.cts.SessionLifecycleTest
      cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases
Change-Id: I229acc1b3ce35fb57262da7d7466b5d4328b49d4
2017-04-08 00:48:55 +00:00
Felipe Leme
7d5adb5b86 Autofill Partitioning: support multiple SaveInfos.
Bug: 35707731
Test: CtsAutoFillServiceTestCases (with new tests) pass

Change-Id: I2f234ca13c7e74f84c762473e38f938ed47f216f
2017-04-06 22:19:22 -07:00
TreeHugger Robot
7a7c0ace82 Merge "Removed deprecated onFillRequest() method" into oc-dev 2017-04-06 22:20:49 +00:00
Kang Li
38a6da6473 Add a service to rank apps for ResolverActivity.
bug: 36952725,30982298

Test: used PTP before and after this fix.

Change-Id: I5b249af2dd0d9fe32d1e524e8d2675c863e92b5b
2017-04-06 18:08:14 +00:00
Julia Reynolds
9a8f641801 Merge "Remove unneeded methods" into oc-dev 2017-04-06 15:13:13 +00:00
Felipe Leme
52d5d3dfc7 Pass FillResponse bundle on subsequent onFillRequest() calls.
BUG: 35707731

Test: existing CtsAutoFillServiceTestCases pass
Test: more tests on PartitionedActivityTest

Change-Id: I510aff54d0d9d7e0cce90f9786e3e1f6cab180f9
2017-04-05 19:34:33 -07:00
TreeHugger Robot
aaca304a31 Merge "Created SaveInfo types for email and username." into oc-dev 2017-04-06 00:15:30 +00:00
Julia Reynolds
6031533702 Remove unneeded methods
Test: make, make cts, make cts-verifier, runtest systemui-notification
Change-Id: I25b559cfcc30f2d85f468adf840f9124e80f00b0
2017-04-05 18:36:07 -04:00
Felipe Leme
a9baa4c851 Merge "Changed FillResponse.setAuthentication() to require field ids." into oc-dev 2017-04-05 22:25:16 +00:00
TreeHugger Robot
b44feb154b Merge "Removed deprecated auto(F)ill classes." into oc-dev 2017-04-05 20:25:40 +00:00
Kang Li
b24399547c Merge "Revert "Add a service to rank apps for ResolverActivity."" into oc-dev 2017-04-05 19:50:10 +00:00
Kang Li
c88749fb5a Revert "Add a service to rank apps for ResolverActivity."
This reverts commit 90370e0b24.

b: 36952725

Change-Id: Ifa8f182c707cdbbc989b1f61630f7a8fa856d32d
2017-04-05 19:44:02 +00:00
Felipe Leme
b3c3537566 Changed FillResponse.setAuthentication() to require field ids.
Currently, authenticate FillResponses do not support partition and follows
the "Highlander approach" (There can be just only one), which causes the
authentication UI to show on all views.

This CL overloads FillResponse.setAuthentication() so it requires the
AutofillIds of the autofillable fields, although behind the scenes it
calls the old method - once clients use the new method, the old method
will be removed and the underlying implementation changed.

The new behavior will be tested by testFillResponseAuthJustOneField()
on LoginActivityTest, although currently it's testing the old behavior.

Test: LoginActivityTest.testFillResponseAuthJustOneField

Bug: 35707731
Bug: 36855717

Change-Id: I601f3e4776aa8763415a06d8d802901a930728d2
2017-04-04 20:17:57 -07:00
Felipe Leme
a86aee6ef3 Removed deprecated onFillRequest() method
Bug: 35708229
Test: manual verification
Test: CtsAutoFillServiceTestCases pass

Change-Id: Ie6d146386752273b6a35d16102ccedaf6a161676
2017-04-04 18:30:54 -07:00
Felipe Leme
f78e952d8d Removed deprecated auto(F)ill classes.
Bug: 35956626
Test: manual verification
Test: CtsAutoFillServiceTestCases pass
Change-Id: Icb622589c41e6a286d51e3f85bd5a813e483b5ea
2017-04-04 18:28:09 -07:00
TreeHugger Robot
ba2e284a62 Merge "Initial implementation of autofill partitioning." into oc-dev 2017-04-04 21:42:52 +00:00
Felipe Leme
0962262f42 Created SaveInfo types for email and username.
Bug: 35707731
Test: LoginActivityTest#testCustomizedSaveUsername
Test: LoginActivityTest#testCustomizedSaveEmailAddress
Change-Id: I3598c64e4f6bb9ceff544c3994d6cdeebd760a85
2017-04-04 14:09:07 -07:00
Felipe Leme
f43ca7968f Initial implementation of autofill partitioning.
BUG: 35707731
Test: existing CtsAutoFillServiceTestCases pass
Test: PartitionedActivityTest

Change-Id: If9df5fe63249f0b9e9da058d1c9327dfd3c09cf3
2017-04-04 10:30:54 -07:00
Kang Li
90370e0b24 Add a service to rank apps for ResolverActivity.
bug: 30982298
Test: manual - shared images in Camera, texts in Messenger, and webpages
in Chrome.

Change-Id: If335c269ca54145839ad8fd4b3f9b93a74b550f8
(cherry picked from commit 35b9e30155)
2017-04-03 23:44:59 +00:00
Jason Monk
be436bdefe Merge "Add test API for if the device supports QS" into oc-dev 2017-04-03 19:11:44 +00:00
Andrew Scull
3b8b46f3a4 Service for OEM lock management.
The new service separates OEM lock management from the implementation.
Currently, a user restriction (DISALLOW_OEM_UNLOCK) and the persistent
data block have been used to implement OEM lock management. In future,
other implemention will be used e.g. a secure element.

The new API also allows for a signature to be passed when changing
whether the device is allowed to be OEM unlocked by the carrier which
can be used for cryptographic protection of the flag.

Bug: 34766843
Test: gts-tradefed run gts -m GtsOemLockServiceTestCases -t com.google.android.oemlock.gts.OemLockServiceTest
Test: cts-tradefed run cts -m CtsPermission2TestCases -t android.permission2.cts.PrivappPermissionsTest
Change-Id: I01660d7605d297f273d43436ca03d64ff611b6cf
2017-04-03 19:10:59 +01:00
Felipe Leme
78696bfeb7 Moar pre-partitioning refactoring.
On ViewState: split value into mCurrentValue and mAutofilledValue.
On Session: replacing mAutofilledDataset by mDatasetWaitingAuth and
            ViewState.getAutofilledValue() (mAutofilledDataset is still needed,
	    but will be removed in the first partitioning CL).

Also fixed a missed 'return' on TimePicker.autofill()

Bug: 35707731
Test: CtsAutoFillServiceTestCases pass

Change-Id: Icc32701ae3e499a77d99e6ae1daa7d070a3df631
2017-03-31 10:24:39 -07:00
Jason Monk
213eb4f162 Add test API for if the device supports QS
Test: cts-tradefed run cts-dev -m CtsSystemUiHostTestCases
Change-Id: Ib2dbbab8c4d0b7bae912f29f417e7e245bfd5b71
Fixes: 36363728
2017-03-31 09:26:27 -04:00
Jason Monk
609edbeb86 Speculative fix for QS CTS test
Explicitly send broadcasts to systemui, because thats where they are
going.

Test: cts
Change-Id: I2fdc74f2cf874e818ef52f37a58adf7cd38ca455
Fixes: 35704517
(cherry picked from commit c7f7111095)
2017-03-28 17:12:48 +00:00
Kevin Schoedel
28eae8e551 Manage controller connection from VrCore to VrWindowManager.
Use VrManager as a proxy to pass the controller data file descriptor
from VrCore to VrWindowManager, since the latter is a purely native
service with no Java visibility.

This is intended to be replaced by moving the relevant parts of
VrWindowManager into VrCore (b/36506799).

Bug: 35619424
Test: manual on device
Change-Id: I9545349893ed9b23de4ba8d3cb61c7d403ad0b97
2017-03-24 15:10:29 +00:00