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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
0c8ce322a3107933d16082e00c77fbe501dc3c07 |
|
23-Mar-2018 |
Felipe Leme <felipeal@google.com> |
Integrate autofill session lifecycle with URL bar changes when on compat mode. The contents of a browser URL bar is typically changed for 2 reasons: 1.User entered a new URL. 2.Form was submitted and the URL changed. On scenario #1, the current session should be canceled, while on #2 it should be committed. Scenario #2 is already handled when the service sets a SaveInfo, so this CL handles the other cases: 1.Focus on URL bar is ignored so it does not trigger a new partition. 2.If URL bar changed and service didn't set a SaveInfo, the session is canceled. Fixes: 76027553 Test: manual test with Chrome Test: new tests on VirtualContainerActivityCompatModeTest: testFocusOnUrlBarIsIgnored() testUrlBarChangeIgnoredWhenServiceCanSave() testUrlBarChangeCancelsSessionWhenServiceCannotSave testUrlBarChangeCancelsSessionWhenServiceReturnsNullResponse Test: atest CtsAutoFillServiceTestCases Change-Id: I19d2aa4c8b25def0d5eca1c59cfdc2ffe33dd388
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
e24c95fac5a6fe179c7d1dd61e88bf4ce501f619 |
|
19-Mar-2018 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Fixed isVisibleToUserForAutofill() again." into pi-dev
|
cb2e83da36710b8f6a043ccc9ac30249003d7950 |
|
19-Mar-2018 |
Felipe Leme <felipeal@google.com> |
Fixed AutofillManager.isAutofillUiShowing() It was using & instead of && Test: not really Bug: 75652829 Bug: 74527545 Change-Id: Ib8ca79ba6ec35d2fc97f042db2152b03d334ce30
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
7008e70234dd8c4f548cad464f4025fbc56b1ca5 |
|
17-Mar-2018 |
Felipe Leme <felipeal@google.com> |
Fixed isVisibleToUserForAutofill() again. This method should return false when the accessibility provider does not have an accessibility info for a node. Otherwise, the Save UI is not triggered on compat mode. Bug: 75017711 Test: manual verification Change-Id: Ic1759520a43b4333aef9f8f0e1d93f8d378b131c
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
d9dbd27370afbaced7be9884b280dabaff352e30 |
|
13-Mar-2018 |
Dake Gu <dake@google.com> |
autofill: ViewRootImpl.dispatchKeyFromIme() should not be dropped ag/3628400 bypass unhandled keyevent from autofill to app window, that solves the issue of using physical keyboard. But we still have issue When user uses touch screen with IME. There are two ways that IME interacts with app: 1. IME directly replaces text of TextView. (Sample app login screen) 2. IME calls ViewRootImpl.dispatchKeyFromIme. (Sample app credit card screen) In the second case, because we gave focus to autofill window, ViewRootImpl will drop the event. The fix checks if autofill window is showing fillui it should not drop event. And dispatchKeyFromAutofill can use the same check, no longer need FLAG_FROM_AUTOFILL. Bug: 74527545 Test: Manually check with login and credit card example, using IME touchscreen and "adb shell input keyevent". I am not able to write cts test without a fake IME Change-Id: I698423d83ee8f9151d03a39b49e85416f7d6b615
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
54cc68370cc3c8e16a54da29e2ea0018d9098f39 |
|
06-Mar-2018 |
Felipe Leme <felipeal@google.com> |
Implemented notifyViewClicked() on compat mode. Test: atest CtsAutoFillServiceTestCases:android.autofillservice.cts.VirtualContainerActivityCompatModeTest#testSave_submitButtonClicked Fixes: 73649008 Change-Id: Icf6a8b617e06055c58e38c5b7208c7f3ef3121ee
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
b0fa378f9d390d27ab2a2f83eb6fa16f2b5cbb97 |
|
26-Feb-2018 |
Dake Gu <dake@google.com> |
autofill: touch on IME should not close autofill ag/3434666 causes a regression: Before ag/3434666, autofill gets touch event after IME, autofill close itself if it gets ACTION_OUTSIDE touch event. But after ag/3434666, autofill intercepts touch events before IME, if user touches within IME, autofill still gets ACTION_OUTSIDE event, and close itself unexpectedly. The fix moves the closing code to ViewRootImpl.EarlyPostImeStage around the same place closing tooltip. If user taps outside autofill window, we will force to close window, even last autofillid that requestShowUi does not match. Bug: 73796497 Test: atest CtsAutoFillServiceTestCases Test: Added LoginActivityTest.testAutofillTapOutside Test: manually tested using IME and sample app TODO: need a fake IME service to dispatch given key upon touch. Change-Id: I10fc0d29dc30d29a48b2118264ec1c4375062deb
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
6dcc9de2feebf2130f15fefd7b096b221e91bbf8 |
|
23-Feb-2018 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "New APIs to let app developers manage autofill semantics when reusing views."
|
09571f89435f3639a747cf4a7a0705b494c7a93e |
|
23-Feb-2018 |
Dake Gu <dake@google.com> |
Merge "autofill: pass keyevent from fillui to app"
|
42b9793d0ff3dbcdcb3b76cec6cdd370a63ce5c8 |
|
20-Feb-2018 |
Felipe Leme <felipeal@google.com> |
New APIs to let app developers manage autofill semantics when reusing views. From the Autofill workflow point of view, each view has an unique AutofillId that is used to semantically, semantically identify the view. Currently, once the View's AutofillId is set it cannot be changed, which make it hard to reuse views for optimization (for example, in a RecyclerView). This change introduces 2 new APIs (View.setAutofillId() and Activity.getNextAutofillId()) that let app developers reuse views without breaking their logical autofill semantics. Fixes: 73555342 Test: atest CtsAutoFillServiceTestCases:MutableAutofillIdTest Test: atest CtsAutoFillServiceTestCases Change-Id: I35fe07b10657f17d7b260f90f578ca7a13782a18
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
6a20a194dd965c66d620d6e6dd0abbabd9ca6360 |
|
08-Feb-2018 |
Dake Gu <dake@google.com> |
autofill: pass keyevent from fillui to app Since autofill window was made to have window focus, app lost the ability to accept physical keyboard typing. User can no longer type on physical keyboard to filter autofill result. This CL dispatches unhandled keyevent(e.g. A/B/C) from autofill window to app ViewRootImpl in a similar way InputMethodService dispatches keyevent to app's ViewRoot. The unhandled key is sent to app window's ViewRootImpl PreImeStage so that the keystroke could be translated to CJK by IME. This CL does not affect fullscreen autofill window for TV where app window is fully covered: user has to close fullscreen autofill window first. Bug: 72951156 Test: atest CtsAutoFillServiceTestCases:LoginActivityTest Change-Id: I8e50cfdfe8d5691d2b248d85f924c38488ca30f4
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
2ab510ee246fdf047882dc0af89fcecdb0e57a05 |
|
16-Feb-2018 |
Jeff Sharkey <jsharkey@google.com> |
Merge "Add RequiresFeature annotation."
|
98af2e4fec8c417f4a674a99f4b40f6f248d6a83 |
|
16-Feb-2018 |
Jeff Sharkey <jsharkey@android.com> |
Add RequiresFeature annotation. Certain APIs require that a device have a specific feature to operate correctly, so start annotating them. Test: builds, boots Bug: 72284763 Change-Id: Ie2f30284bdfdb6acc4067f434eba3b5433837606 Exempt-From-Owner-Approval: simple annotations
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
67e6209f320f5e1676831e7e6050fc1d6fac60bf |
|
15-Feb-2018 |
Felipe Leme <felipeal@google.com> |
New Autofill API: notifyViewClicked() Test: atest CtsAutoFillServiceTestCases:VirtualContainerActivityTest#testSave_submitButtonClicked Test: atest CtsAutoFillServiceTestCases Bug: 72982765 Change-Id: I60ea67fce94f324c2a79031f8fe9596d45088bcb
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
5b32ebe4df8afdee1ef3a30efbe7782aff20d3e3 |
|
15-Feb-2018 |
Felipe Leme <felipeal@google.com> |
Improved Autofill logging. Test: manual verification Bug: 73172668 Change-Id: I8c77f2a792f3195efa44f44a4c9888c355eaee3c
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
c5123419c65acdcbd709540b3c25c7bc5fb8e3e4 |
|
15-Feb-2018 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Autofill optimization on notifyViewEntered()."
|
9a15c0f5a33d27e8554055b57d865f1c3af97b4d |
|
15-Feb-2018 |
Felipe Leme <felipeal@google.com> |
Autofill optimization on notifyViewEntered(). When an autofill service returns a null FillResponse, AutofillManager is kept in a "zombie" state where the session is finished but a new one must be started if the user taps another view, so it covers the scenarios where a new view is added (and the service can autofill it). But we can optimize this workflow by ignoring views that were already visited before. Test: atest CtsAutoFillServiceTestCases:LoginActivityTest#testMultipleIterationsAfterServiceReturnedNoDatasets Test: atest CtsAutoFillServiceTestCases:LoginActivityTest Bug: 73078981 Change-Id: If8b01aca41f5d1613663002bb6b589fb1cf549df
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
3f24e69dbed74fd7724c0a4714ce612f1cb5bc5c |
|
05-Feb-2018 |
Andreas Gampe <agampe@google.com> |
Frameworks: Annotate trivial @GuardedBy in core/java Add @GuardedBy for simple functions that require a single lock and are named XYZLocked. Bug: 73000847 Test: m Test: m javac-check-framework RUN_ERROR_PRONE=true Change-Id: Icb5114fea2ff2385e1cc7511121026099e05c0ee
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
fd3f8f6f4b453a648b33470f97089c536e0629f0 |
|
07-Feb-2018 |
felipeal <felipeal@google.com> |
Minor improvements on autofill compat mode: - Added missing fields such as viewResourceId, maxTextLength, and hint. - Set input type class for passwords. Test: manual verification Bug: 72811034 Change-Id: I60dc7a368726d298f43e1f84b28561140ba10329
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
f0baef7460f578428e3dff5eed1ea4602dbb165b |
|
26-Jan-2018 |
Felipe Leme <felipeal@google.com> |
New Autofill APIs for UserData id. Test: atest CtsAutoFillServiceTestCases:FieldsClassificationTest CtsAutoFillServiceTestCases:UserDataTest Bug: 70407264 Change-Id: Id49efc88e1ccbfa2634bcb6ccaa3371f6fd2ed4e
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
db6b0fecb4765c2117f9d8b43e5941c0b8f183af |
|
19-Jan-2018 |
Felipe Leme <felipeal@google.com> |
Merge "Moved Field Classification score logic to ExtServices."
|
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/core/java/android/view/autofill/AutofillManager.java
|
67decfa7f80c06f3405d1e868bc40cb18dd1460a |
|
27-Dec-2017 |
Dake Gu <dake@google.com> |
autofill: support dpad/keyboard To make autofill works on non-touch device such as TV, allow fill ui window to gain window focus. Fill ui window does not need IME. When IME and fill ui window are both shown, fill ui window will intercept keyevent before IME. Since autofill window will steal window focus from app window, we no longer uses View.onWindowFocused() for enter/exit event. Switched to use Activity onResume/onPause. When view notifyViewEntered or notifyViewExited called when Activity is paused, it will be ignored. Before Activity goes to pause state, notifyViewExited() is fired on focus view, after Activity leaves pause state, notifyViewEntered() is fired on focus view. In CTS testDatasetAuthTwoFieldsUserCancelsFirstAttempt, the authentication activity finishes itself in onCreate() which will not produce onPause/onResume in app activity, but it will produce window focus loss/gain event. Since we switch from window focus to activity onResume/onPause, we will be missing a show fill ui when return from the never shown authentication activity. To solve this problem, we added special code when receive ActivityResult from authentication activity where we check if the authenticate activity never causes onStop event, where we should issue an extra ACTION_VIEW_ENTERED event to show fill ui. Test: passed all existing autofilltest CTS on sailfish atest CtsAutoFillServiceTestCases Bug: 70181616 Change-Id: Iafe4dca3be8f049fa6dfd34bac13ccb030c583b6
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
17f3d1abb576f8d7b912760224dd60a4c3c63cb9 |
|
21-Dec-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "New Autofill API:AutofillManager.getAutofillServiceComponentName()"
|
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/core/java/android/view/autofill/AutofillManager.java
|
3103c63b2d47a51ad5a39309c91130aecc06665d |
|
19-Dec-2017 |
Felipe Leme <felipeal@google.com> |
Support new Autofill session after service returns a null FillResponse. When the AutofillService returns a null FillResponse for onFillRequest(), AutofillManager was ignoring any further view calls backs (other than a manual request to start a session) to optimize performance by avoiding unnecessary IPCs to system_server (and then from system_server to the Autofill Service process). But this optimization has a drawback: it makes it harder for the service to handle cases where the activitity dynamically added new views after a view has been focused. This CL offers a compromise to fix both problems: it removes the optimization for notifyViewEntered() calls (as that's what triggers autofill), but still ignores the other calls once the session is on finished state. Test: atest CtsAutoFillServiceTestCases:LoginActivityTest#testAutofillAutomaticallyAfterServiceReturnedNoDatasets Test: atest CtsAutoFillServiceTestCases:LoginActivityTest#testAutofillAutomaticallyAndSaveAfterServiceReturnedNoDatasets Test: atest CtsAutoFillServiceTestCases:LoginActivityTest Fixes: 70046972 For optimization purposes, AutofillManager was ignoring all request Changed AutofillManager to start a new session after service returns a null Change-Id: Iaae9ed7f8b12ebc9da13e990ef468d9019d5c6ca
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
78172e70f4c5d776678551965db7c167ee11703e |
|
09-Dec-2017 |
Felipe Leme <felipeal@google.com> |
Made Autofill Field Classification API public and documented it. Test: mmm frameworks/base/:doc-comment-check-docs Test: atest FrameworksCoreTests:SettingsBackupTest Test: m -j 100 update-api Fixes: 67867469 Change-Id: Iedf56a2bbcde3826eb22f5ed7a96d6ed70b968f4
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
ce8db9911494225fcd99711d7df85a130de5a6ce |
|
14-Dec-2017 |
Jeff Sharkey <jsharkey@android.com> |
Add more IntDef prefixes for auto-documenting. Test: builds, boots Bug: 70177949 Exempt-From-Owner-Approval: annotation-only changes Change-Id: I76dde6054e06f52240bd4b1a0f196dcb74623608
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
601d22007488145f8651930d23aeb7a7a95cc591 |
|
17-Nov-2017 |
Felipe Leme <felipeal@google.com> |
Minor improvements on autofill javadocs and logging. Test: m update-api Bug: 69456547 Change-Id: I2cab6d7d6ecbe7c1842a5be37af923dd20355b73
/frameworks/base/core/java/android/view/autofill/AutofillManager.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
|
bb4a13b0973928847a7de3927e933a3da96e2e7e |
|
15-Nov-2017 |
Koji Fukui <koji.fukui@sony.com> |
Merge "Remove AutofillManagerClient after AutofillManager is finalized" am: dd5384a4fe am: 8d36beec24 Change-Id: I76ac103f2d6df4a32a49c0c460344a8049d7d3c3
|
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/core/java/android/view/autofill/AutofillManager.java
|
d46f87a9e2b444b6f9999d7ec86d347e2fe1b596 |
|
03-Nov-2017 |
Felipe Leme <felipeal@google.com> |
Added missing AutofillEventType so lint doesn't complain. am: 3dec72b601 am: 3d2f9d1467 Change-Id: I608b1e3ec3c887e50b4daa57cbfdeed0f30d23a0
|
3dec72b6011a56c1a4fbff31b1f0f729324b87f8 |
|
02-Nov-2017 |
Felipe Leme <felipeal@google.com> |
Added missing AutofillEventType so lint doesn't complain. Test: In TreeHugger we trust! Fixes: 68806712 Change-Id: I2f392161e71e0eca25a4a104b67e7d2982c90341
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
686128ef59ccd336d923915d57d1b5efe1e6dc8c |
|
17-Oct-2017 |
Felipe Leme <felipeal@google.com> |
Minor logging improvements on Autofill. Test: manual verification Fixes: 67898895 Change-Id: Ic97d51a388a426b3ff9e74520f52036257a5c1ce
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
fac6655cf530a863ee9187760739e4c9ddf21dd9 |
|
13-Oct-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "New Autofill API: SaveInfo.setTriggerId()"
|
a937238eaeac6c3577af0c14ceca822890cc979b |
|
09-Oct-2017 |
Felipe Leme <felipeal@google.com> |
Let service set the SaveRequest.getClientState() on dataset auth responses. Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testFillResponseAuthClientStateSetOnIntentOnly Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testFillResponseAuthClientStateSetOnFillResponseOnly Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testFillResponseAuthClientStateSetOnIntentAndFillResponse Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testDatasetAuthClientStateSetOnIntentOnly Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testDatasetAuthClientStateSetOnFillResponseOnly Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testDatasetAuthClientStateSetOnIntentAndFillResponse Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases Fixes: 67588471 Change-Id: I05a56bfc02400ce87077c93301abc0e0e1aa59a6
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
2fe3ade8139795df9def96d44ee97bf47acec967 |
|
29-Sep-2017 |
Felipe Leme <felipeal@google.com> |
New Autofill API: SaveInfo.setTriggerId() Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.SimpleSaveActivityTest#testExplicitySaveButton Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.SimpleSaveActivityTest#testExplicitySaveButtonWhenAppClearFields Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases Bug: 65118073 Fixes: 67006548 Change-Id: Id12179086567d014f35fe4177b041745fb19bafd
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
bb567ae6c0374e5fe8d62273234cf470577133de |
|
04-Oct-2017 |
Felipe Leme <felipeal@google.com> |
Sets AutofillClient on attachBaseContext() When an activity overrides attachBaseContext(), the attached context must share the same AutofillCient, otherwise it will break autofill in the activity. Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.AttachedContextActivityTest Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases Fixes: 67350639 Change-Id: I6b0c4c2fab5fa68eb6ee0714e107ca0816efb2cb
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
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/core/java/android/view/autofill/AutofillManager.java
|
2748ffcef703d4da1b9a212b9f4e253baf9914c2 |
|
20-Sep-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Autofill optimization: don't contact server when session is finished." into oc-mr1-dev
|
c7b4529aa912a90953fe9b05c9bba566a82a53c8 |
|
19-Sep-2017 |
Felipe Leme <felipeal@google.com> |
Autofill optimization: don't contact server when session is finished. Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases Bug: 65414762 Change-Id: I214a7835727c3ff71de9dc65c8d6fe54507265fb
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
945791199716e66a582c7eb102ed332716a655e4 |
|
09-Aug-2017 |
Felipe Leme <felipeal@google.com> |
Clarifies autofill lifecycle. am: 744976e298 am: af40bb0dc4 Change-Id: I48f797f62c120b352045cb93e5067ee20c3154d3
|
744976e2985a07f602c02721db8969a638d51c82 |
|
31-Jul-2017 |
Felipe Leme <felipeal@google.com> |
Clarifies autofill lifecycle. Test: m update-api Bug: 64125551 Bug: 64114048 Change-Id: I17c5bc2e2e64fa27e877301dbcb983ac8497209e
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
33681a94cff6b48bcf82fda1fcb53b8cf7cd38fe |
|
28-Jul-2017 |
Felipe Leme <felipeal@google.com> |
Cherry-picked some Autofill Javadoc improvements from master. Test: m update-api Bug: 64125551 Bug: 63669555 Bug: 63985284 Merged-in: Iba4817f682670e9fd6d891ae221e1fa415252e99 Change-Id: I82cbb54a522b2cf1dfb11aacc9735c932aa9af90
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
afdfe7665cba7be8e7ac14e2dd4abd79939ca5e9 |
|
24-Jul-2017 |
Felipe Leme <felipeal@google.com> |
Checks if mResponses is null before using it. Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testFillResponseAuthWhenAppCallsCancel Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases Fixes: 63806922 Bug: 63985284 Change-Id: I8d7cfa34ba88a1d351967e17717b387c805dd00d
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
d1e123cbadc9bf39997d02d144a81ca64af4ef67 |
|
12-Jul-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Autofill: Add API for virtual view visibility"
|
4db89ba82eb6b910972b5fd09999e950e617581d |
|
29-Jun-2017 |
Svetoslav Ganov <svetoslavganov@google.com> |
Autofill: Add API for virtual view visibility Test: VirtualContainerActivityTest bug:38509603 Change-Id: I3546c99d0b13316337c5015e003337b8019194a9
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
33d226c95333e40e8b46e173c2483ad6728b5e56 |
|
27-Jun-2017 |
Ricardo Loo <rloo@google.com> |
docs: Updated isAutofillSupported description. The description for `AutofillManager.isAutofillSupported` doesn't make clear that either the device or the user can make autofill unsupported. Bug: 62604325 Test: Ran 'make ds-docs -j16' and staged content to go/dac-stage/reference/android/view/autofill/AutofillManager.html#isAutofillSupported() Change-Id: I298b9f535e23dc3cb54fabed36642523753c13a5
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
846cda939796aef868e4bb1ae92e744c3e9d57cb |
|
15-Jun-2017 |
Phil Weaver <pweaver@google.com> |
Separate a11y and autofill view ids Autofill seems to need IDs to be preserved across things like configuration changes, while accessibility will not function without views with unique ids. Separating out the two types of IDs. We can re-combine them once it's clear that both demands can be satisfied. Bug: 62301218 Test: Run a11y and autofill CTS, and verify that the play store app functions with TalkBack after a screen rotation. Change-Id: I17a99de2874768fc0ade3aa354130dd1f6b4cd7e
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
d86b8fea43ebb6e5c31691b44d8ceb0d8d3c9072 |
|
03-Jun-2017 |
Jeff Sharkey <jsharkey@android.com> |
Annotate @SystemApi with required permissions. Most @SystemApi methods should be protected with system (or higher) permissions, so annotate common methods with @RequiresPermission to make automatic verification easier. Verification is really only relevant when calling into system services (where permissions checking can happen on the other side of a Binder call), so annotate managers with the new @SystemService annotation, which is now automatically documented. This is purely a docs change; no logic changes are being made. Test: make -j32 update-api && make -j32 offline-sdk-docs Bug: 62263906 Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
9876a6fba92e8c1f6ce7f998b34cd72ee726c1b6 |
|
31-May-2017 |
Felipe Leme <felipeal@google.com> |
Always post AutofillManager operations in the UI thread. Test: existing CtsAutoFillServiceTestCases pass Fixes: 62194407 Change-Id: If878b2befc03706c000b3f31b60904072b2225f4
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
6dcec87ea2bc6d7d1aeb89da3c738ab36cbf4459 |
|
25-May-2017 |
Felipe Leme <felipeal@google.com> |
Moar Autofill Framework javadoc improvements: - Fixed WebView < > and API calls. - Improved description of virtual views. - Described how to set boundaries of virtual views. - Improved AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS doc. Bug: 37567048 Test: ran 'm -j doc-comment-check-docs' and checked resulting HTML Change-Id: Ic0d1e9ff2703c87d4007f0092a2f8dfe0efca6db
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
27e202208b42e78fefcece893a4bb5d8fe2eae58 |
|
19-May-2017 |
Felipe Leme <felipeal@google.com> |
Hide Autofill UI when non-savable id is gone. AutofillManager keeps track of which views the AutofillServiec is interested to save, so when these views are gone, the session is finished. But when the AutofillService returns a dataset whose views it can not save, the FillUi for these views are not hiding when the views are gone. This CL fixes this issue by: - Keeping track which non-savable views should be tracked. - Pass the view (instead of it's id) when the UI on such views should be hid. This CL also optimized some AIDL and internal calls by avoiding the creating of unnecessary Lists. Test: manual verification with Snapchat Test: existing CtsAutoFillServiceTestCases pass Test: new tests on MultipleFragmentLoginTest pass Fixes: 38199452 Change-Id: I78fa357962dbc6667146d8e08cd6bacb63e0f337
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
73fedacfebcccd54f2c36ff7c8eb9929e8ce8455 |
|
12-May-2017 |
Felipe Leme <felipeal@google.com> |
Removed deprecated APIs. Test: CtsAutoFillServiceTestCases pass Test: manual verification with existing service Bug: 37563972 Change-Id: Ibea2810f9230f06e59d2d81e4ba853de54987956
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
3ba71171647ae1d2366490efac4de5edf10b3707 |
|
01-May-2017 |
Jeff Sharkey <jsharkey@google.com> |
Merge "Updates based on API council guidance." into oc-dev
|
000ce805050f0bdbf485464b84eb2c08bca5ad72 |
|
29-Apr-2017 |
Jeff Sharkey <jsharkey@android.com> |
Updates based on API council guidance. Test: builds, boots Change-Id: I223faf55c1e1b4d81d11b4c8b2d93ccd131c969b Fixes: 37775662 Fixes: 37748635 Fixes: 37673408 Fixes: 37672564 Fixes: 37672218 Fixes: 37638323 Fixes: 37637423
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
f965b87a781c6d77567c3fa7a5c6e4d3361dc6dc |
|
29-Apr-2017 |
Svet Ganov <svetoslavganov@google.com> |
Address API council comments bug:37769694 bug:37322491 Change-Id: I931cfb5ea5fef1505a97b169125ed2cdaaa3d6ff
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
c21f723ca2072610a296cc66d1b70f0d0b99c15b |
|
28-Apr-2017 |
Felipe Leme <felipeal@google.com> |
Merge "Changed EXTRA_DATA_EXTRAS to EXTRA_CLIENT_STATE." into oc-dev
|
37a440fd8bed4a93ee9884ee01a12e9241e2c0fe |
|
28-Apr-2017 |
Felipe Leme <felipeal@google.com> |
Changed EXTRA_DATA_EXTRAS to EXTRA_CLIENT_STATE. Test: CtsAutoFillServiceTestCases pass Fixes: 37775662 Change-Id: I85c016c3eb84a439371ac707f78b01d9882b75e9
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
d1146427643c9558bed23ed4341dac796c026d4c |
|
26-Apr-2017 |
Felipe Leme <felipeal@google.com> |
Fixed requestAutofill(). It should behave like notifyViewEntered() but passing a flag, but the current implementation always start a new session, which is a problem on partitions. Fixes: 37709350 Test: existing CtsAutoFillServiceTestCases pass Test: new PartitionedActivityTest.testAutofill4PartitionsManually pass Change-Id: Ia625a8fa067670e888c2861609ede039abf0f474
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
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/core/java/android/view/autofill/AutofillManager.java
|
bb81092a31649b4e1031e24d68958180f5d4024e |
|
26-Apr-2017 |
Felipe Leme <felipeal@google.com> |
Provide support for optimized ACTION_REQUEST_SET_AUTOFILL_SERVICE. Also removed obsolete 'cmd autofill save' Bug: 2153814 Test: manual verification Change-Id: I082e6bb098e9be5d9e26d0941efcf6f28ab01e1d
/frameworks/base/core/java/android/view/autofill/AutofillManager.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
|
59fe3108fa958b7a84cea6ddf863e7a4b683716c |
|
25-Apr-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Hide deprecated APIs." 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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
cb4dd8090b0e68aa185ba1a8a13686c38311d0db |
|
22-Apr-2017 |
Felipe Leme <felipeal@google.com> |
Hide deprecated APIs. Test: CtsAutoFillServiceTestCases pass Bug: 37563972 Change-Id: Ia5f33c5624b7a6be3c152e126c99800914d23cbd
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
5cb3d6bea314aaff5b42c356a832ba7f854b91eb |
|
21-Apr-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Correctly compute visible views" into oc-dev
|
e0e287170eb0921dfda312392fb82b1a0b203173 |
|
21-Apr-2017 |
Philip P. Moltmann <moltmann@google.com> |
Correctly compute visible views addToSet needs the same set as parameters as it returns. Otherwise the returned set it overrridden. In this case only the last visible view was added as the set was overriden with the invisible views. Test: CtsAutoFillTestCases Fixes: 37550229 Change-Id: I80e16cbd8a1af83373d7ea7b0f84a7c4d157119f
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
fe1bddfbb54c20156b45e99c9d18166d702c9adb |
|
19-Apr-2017 |
Felipe Leme <felipeal@google.com> |
Merge "Some Autofill API changes." into oc-dev
|
e5f9c30688f0277505fb6b50ea385e5df6271ed8 |
|
19-Apr-2017 |
Felipe Leme <felipeal@google.com> |
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
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
494c3f5da2c467ad07f50b4e1ad01065a8e3aa4f |
|
11-Apr-2017 |
Philip P. Moltmann <moltmann@google.com> |
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
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
41200eac711f8a2a50c0e87ad8b5bae509589c61 |
|
15-Apr-2017 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Add support for multiple fill contexts" into oc-dev
|
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/core/java/android/view/autofill/AutofillManager.java
|
e048a656397f9f9326482423d68ed46f87f92ed7 |
|
11-Apr-2017 |
Philip P. Moltmann <moltmann@google.com> |
Fix some racines in AutofillManager - The session might be gone by the time the handler is called, hence check the sessionID - Access getClientLocked() and mSession only under mLock. Test: cts-tradefed run cts-dev AutoFillServiceTestsCases Change-Id: I445a24557589afadb1f5372b63ef9db88021b609
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
c3d1c85bda1eb0a7f5a45cbe51406f2239b57cb2 |
|
13-Apr-2017 |
Svet Ganov <svetoslavganov@google.com> |
Allow custom buttons in autofill UI Test: added CTS test in topic bug:36871561 Change-Id: I78ffd8ba33fb982183677fffc587bbf1a077e132
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
43574b03e5604e346f088a1b0da2ab37fb115226 |
|
12-Apr-2017 |
Svet Ganov <svetoslavganov@google.com> |
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
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
b42d133c8b7f4af04d3a4349c952d437769f14e1 |
|
27-Mar-2017 |
Philip P. Moltmann <moltmann@google.com> |
Overlay a highlight over autofilled views Also clear this overlay once the data changes. Some views call notifyValueUpdated even if the value did not change. Hence remeber the data that was autofilled and check if the data really changed. Make the autofilledDrawable publicly accessible so that virtual views can use the same UI. As the activity is not aware that the views were autofilled the state has to be explicitly persisted over activity lifecycle events as part of the view. The lifecyle does not work yet as the AutofillIds are not stable over activity lifecycle events. Fixes: 34946006 Test: Autofilled and changed all supported views. cts-tradefed run cts-dev -m CtsUiRenderingTestCases Change-Id: I58b105bb221f1b6466dd136dfe5062d3babb5aa8
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
fb4a74f26b6fac845e5e9174b0caf36491b87be0 |
|
31-Mar-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Adds FillResponse extra to passed to authentication intent." into oc-dev
|
955e252a95785192902da7c9f5610f8e40f97803 |
|
30-Mar-2017 |
Felipe Leme <felipeal@google.com> |
Simplified autofill() methods by returning void instead of boolean. Test: CtsAutoFillServiceTestCases pass Change-Id: Ic94e6686e291fed60ef6715bd160f9b568bf0ea6
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|
7320ca9f99bb582dd7cb8199cedae30f8b1367a4 |
|
30-Mar-2017 |
Felipe Leme <felipeal@google.com> |
Adds FillResponse extra to passed to authentication intent. Test: CtsAutoFillServiceTestCases (with new test) pass Fixes: 36603378 Change-Id: I3d04a656e50b2b3665405f6c1891ad0379a54ea6
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
81f01d9efdd1739807d5aa5ac4f60b276f70155f |
|
17-Mar-2017 |
Felipe Leme <felipeal@google.com> |
Removed 'virtual' from autofill method names. Fixes: 36126001 Test: VirtualContainerActivityTest pass Change-Id: I3b8fe835cd7c7f39c8e2cb8f2daca71b03236a1f
/frameworks/base/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
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/core/java/android/view/autofill/AutofillManager.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/core/java/android/view/autofill/AutofillManager.java
|
640f30a7763b0a4b80c767acb84c740aac04768b |
|
07-Mar-2017 |
Felipe Leme <felipeal@google.com> |
Replaced auto-fill by autofill to keep it consistent with API style. This change will affects 2 types of apps: autofill service implementations and apps that use autofill APIs. Since just the former is known to be used at the moment, we're not trying to keep backward compatibility with the latter. Bug: 35956626 Test: CtsAutoFillServiceTestCases pass Test: android.provider.SettingsBackupTest pass Change-Id: Ia720083508716deae9e887f9faa7ae7c5a82f471
/frameworks/base/core/java/android/view/autofill/AutofillManager.java
|