History log of /frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ce3ae87da943eee81483fab8a786633b358179b4 24-May-2018 Felipe Leme <felipeal@google.com> New Autofill field: FIELD_AUTOFILL_SESSION_ID

This field contains the autofill session id (Thank You, Captain Obvious!), which
is useful to correlate autofill metrics that are not logged on
AUTOFILL_REQUEST.

Test: atest CtsAutoFillServiceTestCases # to make sure it didn't break anything
Test: manually run some test and watched
'adb shell logcat -b events | grep sysui'. Example:
[757,913,758,4,806,android.autofillservice.cts,871,android.autofillservice.cts.LoginActivity,914,2,915,2,1456,-2045861404

Fixes: 80093094

Merged-In: If4b1c9ab616b2ba580745096894997eb7edb3e34
Change-Id: If4b1c9ab616b2ba580745096894997eb7edb3e34
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
212b1614f4328a66c58a27899fe75583c753ef35 22-May-2018 Felipe Leme <felipeal@google.com> Added the class name of activity being autofilled on (most) autofill metrics.

Test: atest CtsAutoFillServiceTestCases # to make sure it didn't break anything
Test: manually run some test and watched
'adb shell logcat -b events | grep sysui'

Fixes: 80151641

Change-Id: I5b83e6ceb549a641d10c39bbfd4f24d0a43d1a23
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
b55cd8ec1e003ba42f6e3ae4843eab4d560b0c52 09-May-2018 Felipe Leme <felipeal@google.com> Added support to run autofill service from instant apps.

Bug: 79422318
Test: m -j CtsAutoFillServiceTestCases && \
cts-tradefed run commandAndExit cts-instant-dev \
-m CtsAutoFillServiceTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Change-Id: I1e885fe7edcbc0ace3a0f60abacb9cea9b6c03e7
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
ed2bba11a29a81a51e423ee4c05d31fb0a8a9cd1 09-May-2018 Felipe Leme <felipeal@google.com> Fixed name of autofill service on save UI.

Test: atest CtsAutoFillServiceTestCases
Bug: 62537081
Fixes: 79201521

Change-Id: I9ae7137719390b61c38da1e52fcb13fd59333792
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
1116652087c5889a98ff6d736e127fc0e97dbe37 07-May-2018 Felipe Leme <felipeal@google.com> New FIELD_AUTOFILL_COMPAT_MODE field.

This field is used on pretty much all Autofill metrics, except
AUTOFILL_USERDATA_UPDATED, AUTOFILL_SERVICE_DISABLED_SELF, and
AUTOFILL_INVALID_PERMISSION.

Test: atest CtsAutoFillServiceTestCases
Test: adb shell logcat -b events | grep sysui

Bug: 79351659

Change-Id: I2e2f3dcc780a3896162b158926f5ee89c7cb342d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
3d84813961a7e33ea1f61803cdcda125760cc4c9 24-Apr-2018 Hongming Jin <hongmingjin@google.com> Unbind autofill service when the service package is updated.

Test: atest FieldsClassificationTest
adb shell cmd autofill get fc_score half kale
m -j50 ExtServices && adb install -r
${OUT}/system/priv-app/ExtServices/ExtServices.apk
adb shell cmd autofill get fc_score half kale

Bug: 77596771
Change-Id: I29f6f5593dbe0155437d01ef73d07a354abe687d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
49f08edf7d08101dfc00920f2abb1dab2280cd7e 27-Mar-2018 Felipe Leme <felipeal@google.com> Recover dataset picker when view fail to autofill.

When a dataset is selected, the framework tries to autofill all views belonging
to it. But if one (or more view) failed to autofill, we should let the user
recover by tapping the view again.

This scenario typically happens when views are recycled.

Test: atest MutableAutofillIdTest#testViewGoneDuringAutofillCanStillBeFilled
Test: atest CtsAutoFillServiceTestCases # manually retrying flaky failures

Fixes: 76149637

Change-Id: I7a6352c68b4a7d5e4cb80a7346c66efd831f21c8
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
1c6b60581f877743f12d6a379724f978a9f2366d 22-Mar-2018 Felipe Leme <felipeal@google.com> Enable Autofill Field Classification by default.

Bug: 76028992
Test: locally changed FieldsClassificationTest to not set it

Change-Id: I842124852f76f599a8ac1cb06271ebc3324c36c9
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
1c7eb0c8eb156c4656f2d3e1b97929797e4e7ec9 09-Mar-2018 Felipe Leme <felipeal@google.com> Moved urlBarResourceId from autofill service manifest to whitelist settings.

The manifest attribute is still public as it might have been used by autofill
services deployed against P DP1; it will be removed after the next developer
previs is branched out. We also need to assumie a default value for the buttons
if not specified by settings, but that will be done in a separate change so it
can be easily reverted.

Also implemented support for multiple buttons, and added unit tests.

Test: atest CtsAutoFillServiceTestCases:VirtualContainerActivityCompatModeTest \
CtsAutoFillServiceTestCases:VirtualContainerActivityTest \
FrameworksServicesTests:AutofillManagerServiceTest

Bug: 74445943
Bug: 72811561
Fixes: 73786629

Change-Id: I066ecf40fde2c5318dd8633a659fca8b7af8aecd
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
9f1921f9ffc20544f22e76dd412523b53cb68a14 12-Feb-2018 Eugene Susla <eugenesusla@google.com> Use PooledLambda in autofill code

This replaces the usage of handler message types with PooledLambda

Bug: 73648631
Test: atest CtsAutoFillTestCases
Change-Id: I3be0870116489c0c831353fe4ab9abed3cac3a93
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
0c200baed436c2c9d4e842f6ca47e4f9d52b2f14 17-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Minor autofill changes to support compat mode CTS tests."
47b37aa03480837a7cbbce8a1201554e102fd781 16-Feb-2018 Svet Ganov <svetoslavganov@google.com> Minor autofill changes to support compat mode CTS tests.

Bug: 72811561
Test: atest CtsAutoFillServiceTestCases:VirtualContainerActivityCompatModeTest

Change-Id: I6ec2563cea75afc77a1598805988d8e6c433c574
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
6ef61b82a07d9c6bc7d19a95a22bad438457291d 16-Feb-2018 Felipe Leme <felipeal@google.com> Another Autofill counter metric fix (plus some minor doc touches).

Test: in TH we trust

Bug: 71863561

Change-Id: I06e2a2915a26b80acb31e82b41b0f075ab105171
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
e9aa338817ed0a7ab1668e4d4fe176311b6476b9 15-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Autofill Field Classification improvements."
febb733c1b170ccba0668e50beef1e230dc51eda 13-Feb-2018 Felipe Leme <felipeal@google.com> Autofill Field Classification improvements.

* Changed the remoteId -> userValue API to userValue -> categoryId so the
category could map to multiple values (for example,
"email" -> "email1", "email2")
* Added method and settings for maximum number of category ids.
* Tuned the default value of some settings.

Bug: 70407264

Test: atest CtsAutoFillServiceTestCases:UserDataTest \
CtsAutoFillServiceTestCases:FieldsClassificationTest \
SettingsBackupTest

Change-Id: I27f348c500077937c0f4bf65db6a899fa3c41cf6
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
a6ebff0f0ba66274b333a157c3f15d7c38527fe5 14-Feb-2018 Svetoslav Ganov <svetoslavganov@google.com> Don't hold the autofill lock when looking up fill compat packages

Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases

Bug:73072565

Change-Id: I773e1e2f4ceedbe45c9389a065dc7f6fb0ab65b1
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
185de72695f4e442febf4f83f79e9a7bba1a1980 14-Feb-2018 Felipe Leme <felipeal@google.com> Add support for url_bar sanitization on autofill compat mode.

Browsers typically use a standard class (like EditView) to hold the URL of the
page being loaded, and the content of that view is sanitized in the initial
autofill request. So, when running in compat mode, we need a mechanism to let
services tell which view contains the URL, so we can convert its contents to
a sanitized webScheme + webDomain pair or properties.

Test: manual verification
Fixes: 72994424

Change-Id: I8be5f3533d6c31f81f28036dc51d5de10a528079
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
5f5211676278f911890527aeeca11fd2ce50cb47 06-Feb-2018 Andreas Gampe <agampe@google.com> Frameworks: Annotate trivial @GuardedBy in services/autofill

Add @GuardedBy for simple functions that require a single lock
and are named XYZLocked.

Derived by errorprone.

Bug: 73000847
Test: m
Test: m javac-check-framework RUN_ERROR_PRONE=true
Change-Id: I76889beb0a992dbd3e638e224111749814d2fe7b
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
d1d0e4ae1a57bc9b0966c6b90706278fffbe7418 05-Feb-2018 felipeal <felipeal@google.com> Dump autofill compat packages.

Test: manual verification
Bug:72811034

Change-Id: Iee815a84e4ff9fa1ace9301b5da7c883d4e753b8
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
24c90450fe3fe097a7bca51edd6a4cffd8fd13aa 28-Dec-2017 Svetoslav Ganov <svetoslavganov@google.com> Autofill compatibility mode.

Autofill helps users fill credentials, addresses, payment methods,
emails, etc without manually typing. When focus lands on a fillable
element the platform captures a snapshot of the screen content and
sends it to an autofill service for analysis and suggestions. The
screen snapshot is a structured representation of the screen content.
If this content is composed of standard widgets, autofill works
out-of-the-box. However, some apps do their own rendering and
the content in this case looks like a single view to the platform
while it may have semantic structure. For example, a view may render
a login page with two input test fields.

The platform exposes APIs for apps to report virtual view structure
allowing autofill services to handle apps that have virtual content.
As opposed to apps using standard widgets, this case requires the app
developer to implement the new APIs which may require a fair amount
of code and could be seen as a processes that could take some time.
The most prominent typs of apps that fall into this category are
browsers.

Until most apps rendering virtual content and specifically browsers
don't implement the virutal APIs, autofill providers need to fall-
back to using the accessibliity APIs to provide autofill support
for these apps. This requires developers to work against two sets
of APIs - autofill and accessibility - which is incovenient and error
prone. Also, users need to enable two plugins - autofill and
accessibility which is confusing. Additionally, the privacy and
perfomance impact of using the accessibility APIs cannot be addressed
while autofill providers need to use thes APis.

This change adds an autofill compatibility mode that would allow
autofill services to work with apps that don't implement the
virtual structure autofill APIs. The key idea is to locally enable
accessibility for the target package and remap accessibility to
autofill APIs and vise versa. This way an autofill provider codes
against a single set of APIs, the users enable a single plugin,
the privacy/performance implications of using the accessibility
APIs are addressed, the target app only takes a performance hit
since accessibility is enabled locally which is still more efficient
compared to the performance hit it would incur if accessibility is
enabled globally.

To enable compatibility mode an autofill service declares in its
metadata which packages it is interested in and also what is
the max version code of the package for which to enable compat
mode. Targeted versioning allows targeting only older versions of
the package that are known to not support autofill while newer
versions that are known to support autofill would work in normal
mode.

Since compatibility mode should be used only as a fallback we
have a white list setting with the packages for which this mode
can be requested. This allows applying policy to target only
apps that are known to not support autofill.

Test:
cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases
cts-tradefed run cts-dev -m CtsAccessibilityServiceTestCases

bug:72811034

Change-Id: I11f1580ced0f8b4300a10b3a5174a1758a5702a0
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
463b307de856a139baabb8c15d1b00e3b9d077c0 24-Jan-2018 Felipe Leme <felipeal@google.com> Fixed AUTOFILL_SERVICE_DISABLED_APP and AUTOFILL_SERVICE_DISABLED_ACTIVITY.

These metric were using the RESERVED_FOR_LOGBUILDER_COUNTER and hence were not
being picked up.

Bug: 71863561

Test: adb shell logcat -b events | grep sysui | egrep '(1231|1232)'

Change-Id: I34136ac3423e819b37fc3c14c1821171af1868d9
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
fe05a529885281ebfb103d1a3ad6bfb862281268 24-Jan-2018 Felipe Leme <felipeal@google.com> Don't crash the app when the assist structure cannot be retrieve.

When an app trigger autofill, system_server will eventually call back into the
app to lazy load the contents of the AssistStructure used for autofill. If that
binder transaction fails, we should simple ignore it, rather than crash the app.

Test: atest CtsAutoFillServiceTestCases
Test: locally changed code to force WTFs and called 'adb shell dumpsys autofill'

Bug: 72398988

Change-Id: I490ad877b067fb37997b734718b90b00f9d318c8
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
e4ac740e39589e3dd3c1696782a39fa8e74764ee 17-Jan-2018 Felipe Leme <felipeal@google.com> Implemented getAlgorithm() and getDefaultAlgorithm() using manifest metadata.

Bug: 70939974
Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest

Change-Id: I8b7028c0acfef164b84821a9e4c99817acc838f8
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
bc055b0ef1c11337b8ec5f681097e7b51e84b9c4 06-Jan-2018 Felipe Leme <felipeal@google.com> Moved Field Classification score logic to ExtServices.

Bug: 70939974
Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest \
CtsAutoFillServiceTestCases:UserDataTest
Test: atest CtsAutoFillServiceTestCases

Change-Id: I75fd59b5d7530fcd7095b26f6e592d7459c7d235
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
67ca6c5d68bb035b9ed738850b8414b72ce86b32 05-Jan-2018 Felipe Leme <felipeal@google.com> YAAFFFCR - Yet Another Android Autofill Framework Field Classification Refactoring.

The field classification service is moving to another process, hence we need
to get the scores in a batch and handle the results in a callback.

Test: atest CtsAutoFillServiceTestCases:FillEventHistoryTest \
CtsAutoFillServiceTestCases:FieldsClassificationTest
Bug: 70939974

Change-Id: I0de91f18828872c455abd1609d3a3890ddc3bd4f
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
27f4573d136949abeacb00f7246ff9911e9cb105 22-Dec-2017 Felipe Leme <felipeal@google.com> Refactored Field Classification score logic so it can be moved to ExtServices.

Bug: 70939974
Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest \
CtsAutoFillServiceTestCases:UserDataTest
Test: atest CtsAutoFillServiceTestCases

Change-Id: If584ab3a55744a62f427065bfd44c8c219df83e9
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
c0f8195b3a437b69aaa54ecf697b301e6eedb8c0 22-Dec-2017 Felipe Leme <felipeal@google.com> Moved logContextCommitted() logic to the handler...

...so it does not block showSaveUi.

Bug: 70939974
Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest

Change-Id: I64bb20c1c617790e7281f287c567cb5c13178a6e
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
0ce51f60b46bc1e8db4803ef901dcabba1398e3a 21-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added @TestApi on new Autofill settings for field classification."
bbfed90230a77b5714fafa5f829cf4f992467eed 21-Dec-2017 Felipe Leme <felipeal@google.com> Added @TestApi on new Autofill settings for field classification.

Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest CtsAutoFillServiceTestCases:UserDataTest

Bug: 70407264

Change-Id: Ia4413e5aa8973bafa0149093c6c17602dd498ae5
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
23c75ffdaec2ab116b5a43f6d0b4ff527047a5dc 14-Dec-2017 Felipe Leme <felipeal@google.com> New Autofill API:AutofillManager.getAutofillServiceComponentName()

Also minor fixes on isFieldClassificationEnabled() to make sure it's ignored
when not called by the service app and its calls are properly synchronized.

Test: atest CtsAutoFillServiceTestCases:LoginActivityTest#testGetAutofillServiceComponentName

Fixes: 70678279

Change-Id: I58ccb313d22c30af907f3da62f727f067240fa66
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
51f6cd70316cdd0662e40ad7b0109effab9cd9ad 18-Dec-2017 Felipe Leme <felipeal@google.com> Implemented multiple matches on FieldClassification.getMatches()

Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest

Bug:70291841

Change-Id: Icc015d7c76f0f11e398c3093b4ea070c8f35f589
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
2a580d18f6b18da97465c46099f779d0f8d6d36f 11-Dec-2017 Felipe Leme <felipeal@google.com> Proper autofill fix to let phone process autofill Settings activity.

Test: adb shell am start com.android.settings/.RadioInfo
Fixes: 70506888

Change-Id: Id29bad2d20b621f7379eb6144c95dcc819949b3d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
70668582a8e2afae38a976819ec692ec0f8edf16 11-Dec-2017 Felipe Leme <felipeal@google.com> Temporaly ignoring UID check when caller is a system app.

The Settings app runs some of its activities in another process, which would
crash it in some cases due to a recent security fix on Autofill.

This CL temporarily fixes the problem by skipping the security check when the
caller is a system app.

Test: manual verification using System.out statements, as it cannot be
reproduced by CTS because the CTS app is an user app.
Bug: 70506888

Change-Id: I08e8a370d93d3473ec5e025afaf3bc6f456e0ab9
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
5e04720ca79801e2f8c76f5ba61a9b925e37df54 06-Dec-2017 Felipe Leme <felipeal@google.com> Autofill metrics improvements:

* Added new metrics:
- AUTOFILL_USERDATA_UPDATED
- AUTOFILL_FIELD_CLASSIFICATION_MATCHES
- FIELD_AUTOFILL_MATCH_SCORE
- FIELD_AUTOFILL_NUM_FIELD_CLASSIFICATION_IDS
* Fixed how FIELD_CLASS_NAME is set for AUTOFILL_SERVICE_DISABLED_ACTIVITY
* Added extra info on some existing metrics:
- FIELD_FLAGS on AUTOFILL_SESSION_STARTED
- TYPE_CLOSE on AUTOFILL_REQUEST to indicate a null response from service
- FIELD_AUTOFILL_NUM_FIELD_CLASSIFICATION_IDS on AUTOFILL_REQUEST to indicate the number of ids in a
field classfification request

Bug: 70241978
Test: verified output of 'adb shell logcat -b events | grep sysui' while
running CTS tests associated with the changes

Change-Id: I05d8d0325e9b338dd3d874e5b95a08cedf4b271c
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
24d583df4d1d7761dc26e0b9aaab25525c0310b0 08-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix NPE on logContextCommitted()"
996e03e562f29101a1ed0bce7964191420c389cc 07-Dec-2017 Felipe Leme <felipeal@google.com> Fix NPE on logContextCommitted()

Test: atest CtsAutoFillServiceTestCases:FillEventHistoryTest

Bug: 68045531

Change-Id: Ieaf9f615ed3a203939713e48db808ff0d00ed059
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
ac74dc42f78267a63bcea1740c00e20a6122cc4b 07-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Further improvements when app forges package info for autofill:"
637e05ee0f5077f2cda8f0defaf29baeb251ad75 06-Dec-2017 Felipe Leme <felipeal@google.com> Further improvements when app forges package info for autofill:

- Dont create a session if the component is not owned by the calling UID.
- Log metrics for forged attempts.
- Avoid possible NPEs on AutofillManager when context or client is null.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.VirtualContainerActivityTest#testAppCannotFakePackageName
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 69981710

Change-Id: I9695bc046f3eb8aeecfe44f80fd0366f68b2c635
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
329d04097e1db9b6f801972d94f56c5b56c09e8a 06-Dec-2017 Felipe Leme <felipeal@google.com> Moar changes for Autofill Field Classification mechanism:

- Changed max score to float (range 0.0 - 1.0).
- Replaced getTopMatch() to getMatches().
- Created a Scorer interface with a default edit-distance implementation.
- Added a isFieldClassificationEnabled() method.

Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest
Test: atest CtsAutoFillServiceTestCases:EditDistanceScorerTest
Test: atest CtsAutoFillServiceTestCases:UserDataTest
Test: atest FrameworksCoreTests:SettingsBackupTest

Bug: 68045531

Change-Id: Ice6cbf548053b86b47980d9664a3a21219c0ff08
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
5672defaa6885bf1ac974fc48fde448ed2d047f1 04-Dec-2017 Felipe Leme <felipeal@google.com> Implemented autofill field classification on multiple fields and user data.

Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest
Test: atest CtsAutoFillServiceTestCases:FieldsClassificationScorerTest
Test: atest CtsAutoFillServiceTestCases:UserDataTest

Bug: 68045531

Change-Id: Ia9252cb5b84236a76a1419f4a2669b2e933f5177
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
bb6bfea6801cff5b50c990bdcfbd2df93ddf9023 04-Dec-2017 Felipe Leme <felipeal@google.com> Refactored the FieldsClassification score mechanism.

Before, FillEvent.getFieldsClassification() returned a map of remote ids and
scores. Now, it returns a Map of FieldClassication by AutofillId, which allows
multiple fields and scores for multiple user datas (although the initial
implementation supports only the top match for a field).

This is mostly a refactoring CL, as the implementation is still saving just one
user data entry and one field. But full support is coming next...

Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest
Test: atest CtsAutoFillServiceTestCases:UserDataTest
Test: atest CtsAutoFillServiceTestCases:FieldsClassificationScorerTest

Bug: 68045531

Change-Id: I08b29f24efbd527216f9bce2343e1bcd4b4554c0
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
452886a5b8d7cb94ba0c53e8976ff558980db1e5 27-Nov-2017 Felipe Leme <felipeal@google.com> Refactored field detection mechanism to support multiple fields.

Now instead of using FillResponse.setFieldDetection() with an object that
contains both the autofill ids an the user data, service must:
- Set global mapping through AutofillService.setUserData()
- Pass just the autofill ids to FillResponse.setFieldClassificationIds()

This CL is purely a refactoring CL - although the new API supports multiple
values and multiple fields, the implementation is still hardcode for one
value and one field (as before).

Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest
Test: atest CtsAutoFillServiceTestCases:UserDataTest
Test: atest CtsAutoFillServiceTestCases:FillResponseTest

Bug: 68045531

Change-Id: I8d846d817dfcde3a4db7abff798bb2250e1c4e7b
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
a834309bd5c8ae276ae7b5e3aedffd47bb517b10 15-Nov-2017 Koji Fukui <koji.fukui@sony.com> Merge "Remove AutofillManagerClient after AutofillManager is finalized" am: dd5384a4fe am: 8d36beec24
am: bb4a13b097

Change-Id: I5f3eea81f662d0396b7fd384b2e91c2087f41c0f
8d36beec2487b2fc14438cffea8ffed1919ce962 15-Nov-2017 Koji Fukui <koji.fukui@sony.com> Merge "Remove AutofillManagerClient after AutofillManager is finalized"
am: dd5384a4fe

Change-Id: If0b092c5e18005fb4b8c1fd8405f4d666c98de5a
ccec6a6ae8b9f9785934e7d97849cbafcfcf3dcb 18-Oct-2017 Koji Fukui <koji.fukui@sony.com> Remove AutofillManagerClient after AutofillManager is finalized

Symptom:
Global reference table overflow happens on system_server.

Root cause:
If a process repeatedly create a context and get AutofillManager
from the context, each BinderProxy of AutofillManagerClient are
registered to AutofillManagerServiceImpl. They aren't removed until
the process is died. BinderProxy consumes global reference and finally
causes crash on system_server.

Solution:
Remove AutofillManagerClient from AutofillManagerServiceImpl after
AutofillManager is finalized.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 68747744
Change-Id: I8b76c5368b54317b8696cac470cc390b36e910e7
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
24d7173cf1e3193bb48c9c6aed0261efe34f890b 20-Oct-2017 Felipe Leme <felipeal@google.com> Very initial field detection prototype.

A.K.A "OMG, It's full of TODOs!"

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.FieldsDetectionTest

Bug: 67867469

Change-Id: I7c8f7c3e35ccbae0134e2a446b7b44e1e57261fc
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
51e29da65e1872745a185284556f4947463ec07d 24-Oct-2017 Felipe Leme <felipeal@google.com> Improvements on autofill debugging.

- Sets the client-side sDebug and sVerbose in the application being autofilled
before it was only set in the service's application
- Logs client class on AutofillManager - useful to detect cases where it's not
an Activity.

Bug: 67742064
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases
Test: manual verification of logs

Change-Id: I1f04b90bae89fd942e5849b4a382f1f54df20e38
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
17292d1a25a4d0c3910a687a4207e7ff5688be1d 24-Oct-2017 Felipe Leme <felipeal@google.com> New Autofill API: FillResponse.disableAutofill(duration)

This API is useful to improve the autofill performance for the scenarios where
the service knows it cannot autofill an app or activity.

Bug: 67867469

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testFillResponseAuthWhenAppCallsCancel

Change-Id: I58e3eb5714db840104e699d614e750c03e26e8ca
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
59c446403c8b54358be57ef569967a19657ff651 13-Oct-2017 Felipe Leme <felipeal@google.com> New Autofill API: TYPE_CONTEXT_COMMITTED events.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts#FillEventHistoryTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Fixes: 65130630

Change-Id: I7f0336752be50f6b5f55e01865fe70b6d44dedbe
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
40a1db725f2cf9fac2a2d9248bfd1c46198cea40 10-Oct-2017 Felipe Leme <felipeal@google.com> Disable autofill service when new service from Settings is invalid.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testServiceIsDisabledWhenNewServiceInfoIsInvalid
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testServiceIsDisabledWhenNewServiceNameIsInvalid
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 67496182

Change-Id: I2ee2b0ff125434feb18e539a07b64b83d390291f
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
021b878a23d4a42eca927161dab0acbc6b0ece12 22-Sep-2017 Felipe Leme <felipeal@google.com> Logs how long it took to show the Autofill UI after a field was focused.

Test: adb shell logcat -b events | grep sysui_
Test: adb dumpsys autofill
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 65376559
Bug: 66508098

Merged-In: Ia17f8b30d6eef0141b020085985b9ebacff7a455
Change-Id: Ia17f8b30d6eef0141b020085985b9ebacff7a455
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
c660c4c994f4bb73cd14d86bfc67c77559260e7b 22-Sep-2017 Felipe Leme <felipeal@google.com> Logs how long it took to show the Autofill UI after a field was focused.

Test: adb shell logcat -b events | grep sysui_
Test: adb dumpsys autofill
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 65376559
Bug: 66508098

Change-Id: Ia17f8b30d6eef0141b020085985b9ebacff7a455
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
15b9eb5dac8c161b16035ccdeda5f40c767f80a9 22-Sep-2017 Felipe Leme <felipeal@google.com> Merge "Add metrics (and moar logging) for when a service disables itself." into oc-mr1-dev am: 6f50d16338
am: cbbc364ec0

Change-Id: Iba0a0e66168a5716aa7cfc2f068fa922d19b02e9
6f50d163387887eb4d311c70b8699644ee51d275 22-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add metrics (and moar logging) for when a service disables itself." into oc-mr1-dev
9d41449ff4efac108268815f67dd35797319e78c 20-Sep-2017 Felipe Leme <felipeal@google.com> Add metrics (and moar logging) for when a service disables itself.

Test: adb shell logcat -b events | grep sysui_
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 65376559
Bug: 65856399

Change-Id: Ieb54bb0a58ecd51da663170a12817d33188ac9f0
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
f04ea961a08e482b21b27af254e8ff2aca2fbdca 21-Sep-2017 Felipe Leme <felipeal@google.com> Merge "Remove finished sessions on ACTION_CLOSE_SYSTEM_DIALOGS." into oc-mr1-dev am: 56e5c3944b
am: 64a6188032

Change-Id: I568c3a67d43b0a1eb1af4350f523ba291c5ea9f2
650f7abc3fb3a7be419124f601a9941f5f7a7d2b 19-Sep-2017 Felipe Leme <felipeal@google.com> Remove finished sessions on ACTION_CLOSE_SYSTEM_DIALOGS.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.SimpleSaveActivityTest#testTapHomeWhileSaveUiIsShowing
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.SimpleSaveActivityTest#testTapHomeWhileDatasetPickerUiIsShowing
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Fixes: 65414762

Change-Id: I7dc9fd8f40341164e0ca320ff49b99cf8614fdbf
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
4b02111abac743e150d07c6ec5d7526dc23032de 20-Sep-2017 Felipe Leme <felipeal@google.com> Merge "Handle autofill auth scenarios where the FillContext cannot be retrieved:" into oc-mr1-dev am: 5488a38465
am: 3ac60cbbe0

Change-Id: Ia59feec4ad1a442f6ade75eab8f3e49946d9f11b
5488a38465d4188eb78f69886bbeb9f161a5ca05 20-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Handle autofill auth scenarios where the FillContext cannot be retrieved:" into oc-mr1-dev
f73795f92689d1ab0e341bd5b8af8c5a44f8a2c4 18-Sep-2017 Felipe Leme <felipeal@google.com> Handle autofill auth scenarios where the FillContext cannot be retrieved:

Test: manually modified code to force a null FillContext and verified the
session is properly cleared (even in the client side)
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Fixes: 65374274

Change-Id: Ica482a48b0be34b89e36f9a34078fdcd48134537
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
f60da8690f7db73246fca677cb74358322170fe8 18-Sep-2017 Felipe Leme <felipeal@google.com> Merge "Added more metrics for Autofill:" into oc-mr1-dev am: d4f72ac3c4
am: b093daa296

Change-Id: Iae09ba2c6a082b87b74bd05320222955bde30dda
b22d635dadea68d91f7601e339f2e0d9f33a12c0 09-Sep-2017 Felipe Leme <felipeal@google.com> Added more metrics for Autofill:

- AUTOFILL_VALUE_RESET
- FIELD_AUTOFILL_PREVIOUS_LENGTH
- AUTOFILL_DATASET_AUTHENTICATED
- AUTOFILL_INVALID_DATASET_AUTHENTICATION
- AUTOFILL_INVALID_AUTHENTICATION
- FIELD_AUTOFILL_SAVE_TYPE
- AUTOFILL_SAVE_CUSTOM_DESCRIPTION
- AUTOFILL_SAVE_CUSTOM_SUBTITLE
- AUTOFILL_SAVE_LINK_TAPPED
- AUTOFILL_SAVE_VALIDATION
- AUTOFILL_PENDING_SAVE_UI_OPERATION

Also tagged all metrics with FIELD_AUTOFILL_SERVICE, and added missing
package name on AUTOFILL_DATASET_APPLIED.

Test: CtsAutoFillServiceTestCases pass

Bug: 65118073
Bug: 65376559
Bug: 65697068

Change-Id: I678193c99d9d1b2dac56a62a88dcf20043d1b401
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
c5ef68120c23ba190bbb7b4d02853f4c85ae7af0 15-Sep-2017 Felipe Leme <felipeal@google.com> Merge "Show Autofill Service icon on Save UI." into oc-mr1-dev am: 0f6599887c
am: db16fb2bbb

Change-Id: Ie681feebfee2dd23a6002c3a81e82199e42c6e16
e11139c73d234efdd672a91830b09c92f6120d5e 09-Sep-2017 Felipe Leme <felipeal@google.com> Show Autofill Service icon on Save UI.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 65465974

Change-Id: Ic495be94763dda1de0edced3f9371190d09783ef
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
627cc3c7ae03d46f775a0e681034c38ad0867bd7 09-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't log TYPE_DATASET_SELECTED on dataset authentication." into oc-mr1-dev
838ba3dbbd0753b3bbf7cff6232e57c488cfdf2d 08-Sep-2017 Felipe Leme <felipeal@google.com> Destroy Save UI when it's hidden without a pending restoration.

This scenario typically happens when the BACK button is tapped after
the SaveUI is restored.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.SimpleSaveActivityTest#testTapLink_launchTrampolineActivityThenTapBackAndStartNewSession
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.PreSimpleSaveActivityTest#testTapLink_launchTrampolineActivityThenTapBackAndStartNewSession
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases
Fixes: 65459113

Merged-In: I07c6d9b6d219889c50caeaff99b883841b87d9cc
Change-Id: I07c6d9b6d219889c50caeaff99b883841b87d9cc
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
c40f7b4bbf3c41a3c90fe72256ddda7f0064009f 08-Sep-2017 Felipe Leme <felipeal@google.com> Destroy Save UI when it's hidden without a pending restoration.

This scenario typically happens when the BACK button is tapped after
the SaveUI is restored.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.SimpleSaveActivityTest#testTapLink_launchTrampolineActivityThenTapBackAndStartNewSession
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.PreSimpleSaveActivityTest#testTapLink_launchTrampolineActivityThenTapBackAndStartNewSession
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases
Fixes: 65459113

Change-Id: I07c6d9b6d219889c50caeaff99b883841b87d9cc
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
63f7906c1de0f4c88e2a3c6034666dc9cf35a3a7 06-Sep-2017 Felipe Leme <felipeal@google.com> Don't log TYPE_DATASET_SELECTED on dataset authentication.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 65007529
Fixes: 65403592

Merged-In: I98f1198cbe1836c8154b73a1227be4f6947abc19
Change-Id: I98f1198cbe1836c8154b73a1227be4f6947abc19
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
8f0fad859c1386397805478e7b47acbd14f24022 06-Sep-2017 Felipe Leme <felipeal@google.com> Don't log TYPE_DATASET_SELECTED on dataset authentication.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 65007529
Fixes: 65403592

Change-Id: I98f1198cbe1836c8154b73a1227be4f6947abc19
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
1c501ebfec42eed5abefdb3b21b45f2f253f7a64 30-Aug-2017 Felipe Leme <felipeal@google.com> Added getClientState() to FillEvent; deprecated it on FillEventHistory.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Fixes: 62830277

Change-Id: Ib99a342c931f4fd44fc8aced1faef0b75588f63d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
c24a56ae065bfc4b21f646d0c754b5f4db7c7be5 03-Aug-2017 Felipe Leme <felipeal@google.com> Hides the Save UI while handling a pending intent from CustomDescription.

When the AutofillService sets a PendingIntent to launch an activity when
clicking a chield view (for example, to lauch a web page displayign the terms
and conditions of saving something), the system must hide the Save UI and
restore it after the new activity is dismissed.

That sounds simple in the surface, but it requires a huge refactoring behind
the scenes, such as injecting a token in the activity intent and using that
token to hide / cancel the UI during some activity lifecycle events.

Test: lotta of brand-new shinning tests on CtsAutoFillServiceTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Change-Id: Ie8ec7aeb2c63cab68467046c1a9dcf85dbcc24ec
Fixes: 64309238
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
cf1ff6ca3dbf90fe9c9a5e161094046394a4004d 17-Aug-2017 Felipe Leme <felipeal@google.com> Revert "Dismiss Autofill Save UI when a new Activity is launched."

This reverts commit 05ea98a3f95a2f5179c01a5bfd4901835a0c1bd8.

Bug: 64693551

Change-Id: I8e7a7b2c5f575cee28f977ae7f3c10752a15d49c
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
05ea98a3f95a2f5179c01a5bfd4901835a0c1bd8 15-Aug-2017 Felipe Leme <felipeal@google.com> Dismiss Autofill Save UI when a new Activity is launched.

Test: manual verification using Settings
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -tandroid.autofillservice.cts.SimpleSaveActivityTest#testDismissSave_byLaunchingNewActivity
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -tandroid.autofillservice.cts.LoginActivityTest#testSaveGoesAwayWhenLaunchingNewActivity
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Fixes: 64693551

Change-Id: I323031c7285a4b49f9f0ca06618425a0ab7833da
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
2f0d1324715ca1fdd6c4ab6c0f7f1c3c9c489503 22-Jun-2017 Felipe Leme <felipeal@google.com> Autofill fixes for secondary users:

- Display the SaveUI on all users.
- Dismiss the UI when switching users.
- Fix security check on disableOwnedAutofillServicesLocked()

Test: manual verification
Change-Id: I4e9167314f1feeda618db6c57735cc31d84486c1
Fixes: 62828906
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
d013bcea9713d178627cc1d3e8a0f291ccbcd293 21-Jun-2017 Felipe Leme <felipeal@google.com> Don't add FillEventHistory events to the wrong session.

The AutofillSession.getFillEventHistory() method returns only the event history
for the last onFillRequest(). In the scenario where the user switches
activities and the server has multiple sessions open, only the events for the
last session should be recorded.

Test: existing CtsAutoFillServiceTestCases pass
Test: LoginActivityTest.checkFillSelectionFromPreviousSessionIsDiscarded

Fixes: 62802026

Change-Id: I447ed77c2167095867b35d616b5cf2ae43aa28db
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
2e30c6f371be6211f1fa2b2257084df24a535795 20-Jun-2017 Felipe Leme <felipeal@google.com> Fixed how FillEventHistory is reset and clarified javadoc.

Test: existing CtsAutoFillServiceTestCases pass
Test: checkFillSelectionIsResetAfterReturningNull()
Test: checkFillSelectionIsResetAfterReturningError()
Test: checkFillSelectionIsResetAfterTimeout()

Bug: 62802026

Change-Id: I389d95fc13c08f1056960e5f67e131c8dc306401
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
9b36dfb2b1377aeb774e1b8090b5b4f29a394df1 31-May-2017 Felipe Leme <felipeal@google.com> Don't call remoteFillService.destroy() until session is removed.

Test: CtsAutoFillServiceTestCases pass

Fixes: 62200831
Bug: 62106708

Change-Id: I4e54e28a347e800c0b8353938399c860f213edfa
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
350b2dca6c252dad099bc8e2d96cbffd6e98dfef 26-May-2017 Felipe Leme <felipeal@google.com> Disable autofill while user setup is not completed.

Test: manual verification with experimental app
Test: manual verification with Autofill with Google on flashed deviced
Test: existing CtsAutoFillServiceTestCases pass
Test: new LoginActivityTest.testSetupComplete pass

Fixes: 62049772

Change-Id: I1e914c44062755f8c88656482338e76aeaafd543
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
7f33cd350be4278ce5d4ef460c11e4dbaf9c473b 11-May-2017 Felipe Leme <felipeal@google.com> Start a new session on manual request after session is "gone".

When the autofill service returns a null FillResponse, the session is marked
"gone" because the service cannot autofill it. But there might be cases where
the view structure change and it's now autofillable, so need to allow users
to manually request autofill again in such cases.

Fixes: 38205945
Test: CtsAutoFillServiceTestCases pass
Test: LoginActivityTest.testAutofillManuallyAfterServiceReturnedNoDatasets()
Test: LoginActivityTest.testAutofillManuallyAndSaveAfterServiceReturnedNoDatasets()

Change-Id: I9b23c255e563dd0646bf266d31ddb10dcc4f7f6d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
a38666bcec2269afb414297ed403fca3a7b6e2b6 11-May-2017 Philip P. Moltmann <moltmann@google.com> Safeguard against uncommon scenarios when pruning

E.g. more than one session by activity token

Also
- use cheaper datastructure to store sessions temporarily.
- Fix dumping when there are not responses

Fixes: 38203308
Test: Created two sessions, put them in background. Killed the apps, killed the tasks.
Waited 30 second and started new sessions -> Saw sessions pruned.
Change-Id: I8fe94773a3381617779e5bdded317f3744c831e5
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
a9379d0b44ca1f68a0036d2b65218e17fa348514 10-May-2017 Svetoslav Ganov <svetoslavganov@google.com> Allow null fill values to support authentication case

If a dataset needs to be authenticated the fill service
may not have the values but needs to tell the system for
which fields to show the fill UI. We now allow passing
a null value to mean the view is a part of the dataset
semantically but its value should remain unchanged.

If a dataset has no values, i.e. the related autofill ids
are mapped to null, we cannot properly filter. In this case
we always match such items regardless what the user typed.

While at this improved accessibility support for filtering
to announce when the number of items being filtered changes.

Also while at this allowed a dataset authentication to return
a response which replaces the current response and refreshes
the UI. Matching datasets with null values to any text plus
allowing a response to be returned from a dataset auth enables
the use case where there is always "Import" item at the
end of the list which when clicked can show arbitrarily more
data entries associated to other apps.

Another change is that we now provide the client state
bundle on both request and dataset auth.

Finally, this change gets rid of dataset waiting auth and
response waiting auth concepts since the reference to the
response and the dataset is piped with the auth request.

Fixed a bug where the width of the autofill UI was not
properly measured by going over all items in the adapter.
Now we measure enough height to fit the first three and the
width id the width of the widest item in the adapter.

Test: Added LoginActivityTest#testDatasetAuthTwoFieldsReplaceResponse
Added LoginActivityTest#testDatasetAuthTwoFieldsNoValues
Added LiginActivityTest#filterTextNullValuesAlwaysMatched
All autofill CTS tests pass

bug:37724701
bug:37424539

Change-Id: Ic19e5d7cbdbb7d110c9e7da0ad60b540cbf1aecf
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
134cee27b8a54ff4c8bebda51c5fe4a4e6f1fd8a 06-May-2017 Philip P. Moltmann <moltmann@google.com> No need to deal with windowTokens

we have a link to the client which is enough to find the views.

Also there was some cases where the windowToken was not updated
properly. This is moot now.

Also: Read a array of views from the client to speed up the
client<->AutofillManager communication.

Fixes: 38070352
Test: CtsAutoFillServiceTestCases
1 Started autofill, saw fill UI
2 Home button
3 Kill activity in background
4 Recents -> back to activity
5 Saw fill UI restored
Change-Id: I7c2c9411204fa5d65867efae9b7296399121c3a2
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
f539389ee9ef6e67162965d0a3a8f5220e7cb86a 05-May-2017 Philip P. Moltmann <moltmann@google.com> Prune abandoned autofill sessions

Regularly check if the sessions are still valid and clear the ones that
are not.

Test: 1. Started session in dialer
2. Home button (dialer goes in background)
3. kill -9 dialer
4. Wait 30 seconds
5. Start session is messenger
6. dialer session stays

1. Started session in dialer
2. Home button (dialer goes in background)
3. kill -9 dialer
4. Swipe dialer from recents
5. Wait 30 seconds
5. Start session is messenger
6. dialer session is removed
Fixes: 38005472

Change-Id: I8199ce44777b313141ee1eab6c8de5ad5089474a
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
9f9ee25515591ef33281708c0ab911962f4364a6 27-Apr-2017 Felipe Leme <felipeal@google.com> Improved Autofill logging.

- Removed ui.Helper.
- Replaced DEBUG and VERBOSE constants by sDebug and sVerbose.
- Added a shell command to dynamically set the constants.
- Removed obsoleted log statements.
- Changed log-level of some log entries.
- Removed unused methods.

Fixes: 36141126

Test: CtsAutoFillServiceTestCases pass
Test: manual verification

Change-Id: Ic08ee9a2adc10e63f49bbcc7ed126455462dc9c1
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
0aa4c5065d1495ec0b2c6fe15324569f31dcbdb1 26-Apr-2017 Felipe Leme <felipeal@google.com> Refactored Autofill to move starting flag out of Session.

Otherwise, all onFillRequest() calls in the same partition would use
the same flags.

Fixes: 37675138
Test: existing CtsAutoFillServiceTestCases pass
Test: CtsAssistTestCases pass
Test: PartitionedActivityTest.testAutofill4ParitionsMixManualAndAuto() pass

Change-Id: I03c8a036637bae534904d4f41265e451088cf940
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
d915c42150b53c60b78354531f980a7e5766d6eb 27-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Autofill binding permission fixes." into oc-dev
48f10a2ab53e415f34d86ac717b4f6412dfc824f 27-Apr-2017 Svet Ganov <svetoslavganov@google.com> Handle package changes in autofill manager service

Autofill manager service was not observing package changes thus
we did not properly handle the cases of the service being updated,
added, and removed. Handling, additions is needed to properly
support restore from a backup. Fixed a few missing locks.

Test: all autofill CTS tests pass and manually tested update, add,
and remove of autofill services.

bug:36638606
bug:36978445

Change-Id: Idd47891774ba2a4e562a1952cbb5a048211fd4e3
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
decd887f012f0c39bba855c8878eb5d8255595c4 27-Apr-2017 Felipe Leme <felipeal@google.com> Autofill binding permission fixes.

- Removed deprecated BIND_AUTO_FILL
- Renamed BIND_AUTOFILL to BIND_AUTOFILL_SERVICE
- Kept BIND_AUTOFILL as @hide
- Fixed the permission code

The permission check was actually ignored; it was probably broken when we
introduced support to settings.

Fixes: 37723410
Bug: 37563972
Test: manual verification with existing client
Test: CtsAutoFillServiceTestCases pass

Change-Id: If3abdcb0ae850f0a327bfdbb9ca6c44a24823047
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
fc513f98d7086605e9b3499d90a88d3b4592c2b6 25-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added APIs that let AutofillService implementations set themselves as such." into oc-dev
db041188bc9ca03bed3c14a7ca1b3eb9524a9287 22-Apr-2017 Felipe Leme <felipeal@google.com> Added APIs that let AutofillService implementations set themselves as such.

Bug: 37576671
Test: manual verification
Test: CtsAutoFillServiceTestCases (with new tests) pass

Change-Id: I6fd61f8a2826dbf6b6fce831f3deadf6df025386
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
2f517c26d23393d4f0d6b3352de6e4c92c9e107e 22-Apr-2017 Philip P. Moltmann <moltmann@google.com> Take new autofill structure for each partition

Bug: 36481649
Test: CtsAutofillServiceTestCases (now with a test that has an autofill
session over two full screen fragments)
Change-Id: I55f2f6203f3bd5a7082b4ce90500d2c16a260c7d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
85d1c2d2905362b984563d9b5e8332010c272fc5 21-Apr-2017 Felipe Leme <felipeal@google.com> 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
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
49e96960d46022c85d1f6d00440242439f2028ec 21-Apr-2017 Felipe Leme <felipeal@google.com> Fixed NPE on dump() and other minor fixes...

Bug: 36871500
Test: manual verification
Change-Id: I1c3a8406344280da37b728eae56f26447c48e0b2
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
cc684ed41f17ccdce45a056fd4034efc35b213d5 17-Apr-2017 Philip P. Moltmann <moltmann@google.com> 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
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
013efe173e56612a910ebd8576480ce4ef005e3c 14-Apr-2017 Svet Ganov <svetoslavganov@google.com> 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
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
f20a037ba2a6990bb51ad40ee18c7af18464f620 11-Apr-2017 Svet Ganov <svetoslavganov@google.com> Move API for disabling an autofill service to the manager

Test: the topic has a CTS test

bug:37170723

Change-Id: I2be18968ea8df0fd3fb070fe2efc3e811b0e5a76
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
eab62baabf290ea6671577a66cfc9fdd1b145d0e 20-Mar-2017 Philip P. Moltmann <moltmann@google.com> 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
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
52d5d3dfc7d4d4b6dfed1686cc904c08d7433a04 04-Apr-2017 Felipe Leme <felipeal@google.com> Pass FillResponse bundle on subsequent onFillRequest() calls.

BUG: 35707731

Test: existing CtsAutoFillServiceTestCases pass
Test: more tests on PartitionedActivityTest

Change-Id: I510aff54d0d9d7e0cce90f9786e3e1f6cab180f9
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
98d5c7f6b02a9e4fabce52549f4aab995a67eaa4 05-Apr-2017 Felipe Leme <felipeal@google.com> Dump autofill service component from settings.

Bug: 36978445
Test: manual verification

Change-Id: I30992452c94a78c05a5a98e94d5ffc5325151a76
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
045c71f1be06b89614102420b47d9184055cd190 05-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Adds a config for default autofill service." into oc-dev
f43ca7968fed9fe8862d9b7217c94687dbb12e0a 31-Mar-2017 Felipe Leme <felipeal@google.com> Initial implementation of autofill partitioning.

BUG: 35707731
Test: existing CtsAutoFillServiceTestCases pass
Test: PartitionedActivityTest

Change-Id: If9df5fe63249f0b9e9da058d1c9327dfd3c09cf3
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
ff35509ee9ef89f42607d1424fa6b4df8de98a90 03-Apr-2017 Felipe Leme <felipeal@google.com> Adds a config for default autofill service.

Change-Id: I4d2d8637617439c5df3f62426e9bc45a78edc2e3
Fixes: 35708268
Bug: 36790693
Test: manual verification
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
6fa8a07143d1984ff42750079cf596a868644663 27-Mar-2017 Felipe Leme <felipeal@google.com> Moved Session and ViewState to its own classes.

Such separation will make it easier to maintain them...

Bug: 35707731
Test: CtsAutoFillServiceTestCases pass
Change-Id: I7164598e1ce54dca8cdb8286f65ec4baa926f98d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
4753bb0c34e068f57fff208529836a7688b3ef41 23-Mar-2017 Felipe Leme <felipeal@google.com> Make auto-fill UI robust

Now the autofill UI tracks the movement of the anchor view,
both real and virtual and while still preventing the filled
app from accessing the chooser UI. This was achieved by using
a popup window in the app process to determine the window
location and adding a window presenter interface to popup
window that controls the actual window addition, removal, and
update which is implemented by the system server.

Test: all autofill CTS tests pass

bug: 36392498
bug: 35708258
bug: 34943932
fixes: 36039182
fixes: 36493078

Change-Id: I0321913b2e2e759f4b17003bf85cb873e63a467c
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
24d5893b25ce62b7bc9ed9f35fa72b9d47f23cdd 21-Mar-2017 Felipe Leme <felipeal@google.com> Added a UserManager.DISALLOW_AUTOFILL restriction.

bug: 35710740

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testUserRestriction
Test: cts-tradefed run commandAndExit cts-dev -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.MixedDeviceOwnerTest#testDisallowAutofill_allowed
Test: cts-tradefed run commandAndExit cts-dev -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.MixedProfileOwnerTest#testDisallowAutofill_allowed
Test: cts-tradefed run commandAndExit cts-dev -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testDisallowAutofill_allowed

Change-Id: I41b2bf9fe3bc8df627c6650960bd11346c430a7e
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
f7a7bb6b50cda0d292e55e900f70166e9a1fd6ed 21-Mar-2017 Felipe Leme <felipeal@google.com> Autofill a manual request directly when it only has one dataset.

Tests:
- renamed testManualAutofill() to testManualAutofillOneDataset()
- added testManualAutofillTwoDatasetsPickFirst()
- added testManualAutofillTwoDatasetsPickSecond()

Bug: 35708229
Test: LoginActivityTest pass
Test: manual verification
Change-Id: I7aa60ab5df60decaf49d617bf3e9fcf3ab0074fa
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
d66c84fa1ae6d04b47cbeab5f5cd3240f73780b2 18-Mar-2017 Felipe Leme <felipeal@google.com> Removed redundant call to session.removeSelf()

Bug: 35721501
Test: CtsAutoFillServiceTestCases pass
Change-Id: I625c08bd8f9f673892387c703082c3eb5b2fd48d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
6d0cb1e8eb8ff2e0b4cc8d14823debbc37cb7c6e 16-Mar-2017 Felipe Leme <felipeal@google.com> Fixed cancel() and commit():

- Call removeSelfLocked() on cancelSessionLocked.
- Call removeSelf() after dispatching the PendingSaveRequest.
- Added a finalizer callback to PendingSaveRequest that calls removeSelf().
- Fixed SaveUi SnackBar so its actions are only triggered once.
- Reused removeSelfLocked() when needed.
- Removed unnecessary {} on some lambdas.
- Removed unnecessary mLock on PendingSaveRequest.
- Removed unnecessary mLock usage on PendingFillRequest.

Test: CtsAutoFillServiceTestCases (including new tests) pass
Test: manual verification

Fixes: 35721501
Fixes: 35844249

Change-Id: I9789218777b62a9558a602b8eaed0714d8b77fa0
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
24aae15218da9ea69d1b8ee86120b3278eb15d30 15-Mar-2017 Felipe Leme <felipeal@google.com> Added a new AutofillCallback.EVENT_INPUT_UNAVAILABLE event.

This event is called when:

- After notifyViewEntered() when autofill is disabled.
- After service returns an "empty" FillResponse to FillCallback.onSuccess().

BUG: 36056207

Test: LoginActivityTest.testAutofillCallbackDisabled
Test: LoginActivityTest.testAutofillCallbackNoDatasets
Test: VirtualContainerActivityTest.testAutofillCallbackDisabled
Test: VirtualContainerActivityTest.testAutofillCallbackNoDatasets

Change-Id: I7b8636473f738bf600aa96b28c77827b2cc78815
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
7b7711680244108923f0dbb4ca6e35db7e659e6a 04-Mar-2017 Philip P. Moltmann <moltmann@google.com> TRON log important auto-fill events

Example log from
android.autofillservice.cts.LoginActivityTest#testAutoFill#testAutoFillOneDatasetAndSave
(translated from numbers of human readable string):

AUTOFILL_SESSION_STARTED
package=android.autofillservice.cts
AUTOFILL_REQUEST
type=TYPE_SUCCESS
package=android.autofillservice.cts
FIELD_AUTOFILL_SERVICE=android.autofillservice.cts
FIELD_AUTOFILL_NUM_DATASETS=1
AUTOFILL_FILL_UI
type=TYPE_ACTION
package=android.autofillservice.cts
FIELD_AUTOFILL_NUM_DATASETS=1
FIELD_AUTOFILL_FILTERTEXT_LEN=0
AUTOFILL_DATASET_APPLIED
package=android.autofillservice.cts
FIELD_AUTOFILL_NUM_VALUES=2
FIELD_AUTOFILL_NUM_VIEWS_FILLED=2
AUTOFILL_SAVE_UI
package=android.autofillservice.cts
FIELD_AUTOFILL_NUM_IDS=2
AUTOFILL_DATA_SAVE_REQUEST
type=TYPE_SUCCESS
package=android.autofillservice.cts
FIELD_AUTOFILL_SERVICE=android.autofillservice.cts
AUTOFILL_SESSION_FINISHED
package=android.autofillservice.cts

Test: Ran auto-fill tests and looked at event log.
Change-Id: I58aaa58e4435e7d04c8cd91878411943d3eb13de
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
5bf03b76408f4e527fc475a793c366583de8896a 16-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Allow users to manually request Autofill."
2ac463e3f5c3b757ecbc7e30e0fc1e8e0d878272 13-Mar-2017 Felipe Leme <felipeal@google.com> Allow users to manually request Autofill.

- Added a requestAutofill(view,flags) method, that when passed with
FLAG_MANUAL_AUTOFILL triggers a manual request.
- Added same method for virtual views
- Overloaded existing AutofillService request methods to take a flag.
- Added an AUTOFILL context menu option on TextViews.
- Added a canRequestAutofill() that is used to enable the context menu.

BUG: 35708229
Test: manual verification
Test: existing CtsAutoFillServiceTestCases pass
Test: android.autofillservice.cts.LoginActivityTest#testManualAutofill pass

Change-Id: I1a64d40da3373774451d178b1cabf20f11120e9d
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
0ab7ad5839db7bbdbafd490d1ee4ba0ec532ebae 15-Mar-2017 Philip P. Moltmann <moltmann@google.com> Merge "Do not filter non text values."
2aedac13b71fc4f7546bc73adaef32f51b84be68 15-Mar-2017 Philip P. Moltmann <moltmann@google.com> Do not filter non text values.

Test: Ran CTS autofill tests
Bug: 36123241
Change-Id: I747b516c3ec924487523756f075989ff94d97ab4
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
82e3793c15298f9c62edee23259c116606f10911 10-Mar-2017 Felipe Leme <felipeal@google.com> Decouple Dataset ids from SaveInfo.

The FillResponse was automatically adding the AutofillId of all Datasets to
the SaveInfo object, but that would cause problems when the AutofillService
is not able to save some data (for example, if it comes from a read-only
backend).

Bug: 36076444
Test: OptionalSaveActivityTest pass
Test: m update-api
Change-Id: I1d5faaddf29e1be0f357438c8485e07caf975293
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
9668903731c272e51ce610598c052ef411c9d89f 09-Mar-2017 Philip P. Moltmann <moltmann@google.com> Make it clear which type of AutoFillValue is set

throw and handle errors if the wrong value is set for a view

Test: android.autofillservice.cts.AutofillValueTest
Change-Id: Ida80da7913a210bede6c47d6b7a6f215a012a84c
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
2f8fb1f62f2840701e3e16497eb8191f38b72e0b 13-Mar-2017 Svet Ganov <svetoslavganov@google.com> Fix a few auto fill ussues

1. Ensure clicking on a focused view brings up autofill if needed

2. Notify the autofill manager in a couple of cases we missed

3. Renamed the AutofillManager app facing APIs to better reflect what
they do and added a API for the app to cancel the autofill interaction

4. Fix view structure dispatch where the ordering of children for autofill
was mixed with ordering of direct view children - the autofill children
may be indirect as views can be marked not important for autofill

5. Show scrollbars only if there are more fill options than want is shown

6. Show only three fill options and the rest can be accessed with a scroll

7. Remove the list divider to allow fill items to control all fill window content

8. Renamed the autofill manager internal service classes to xxAutofillxx

9. Fixed a comment that was not addressed in a previous CL

10. Showing max three fill options - rest needs a scroll

11. Make sure fill UI shown when filter with no matches is changed
to filter with some matches

12. Make sure the fill window has a shadow

Test: Autofill CTS tests pass and manual

bug:36038929
bug:36040101
bug:36149166
bug:36034681
bug:36126001
bug:36035654

Change-Id: Ic8726146fc3c0a19d3e536becdd63fb65622136e
/frameworks/base/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java