History log of /frameworks/base/core/java/android/app/assist/AssistStructure.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
266752317b7752394e39618f6fe1ad2829e919d8 19-Jun-2017 Felipe Leme <felipeal@google.com> Fixed updateAutofillValue() when mText is not set.

updateAutofillValue() was crashing some apps when the mText was not set at the
time it was called. One solution would be to not set mText at all - since the
Autofill Service should rely only on getAutofillValue() - but that could break
existing services.

Hence, a safer solution is to set that field if it's null.

Test: existing CtsAutoFillServiceTestCases tests pass
Test: manual verification using Fly Delta app

Fixes: 62751039

Change-Id: I91a8e0ed5db4148f5eb5729b8e254aa3531f15e4
/frameworks/base/core/java/android/app/assist/AssistStructure.java
2f6fc72efcb67737f45edb881eb2aed120a1b0bf 31-May-2017 Felipe Leme <felipeal@google.com> Overall improvement on Autofill javadocs for autofillable APIs.

Bug: 37567048
Test: ran 'm -j doc-comment-check-docs' and checked resulting HTML

Change-Id: I7eaf0a521c3777baf0dc0002ae814990fd96a14c
/frameworks/base/core/java/android/app/assist/AssistStructure.java
5f3dbb30fcec9d329f4cf0388241f5e6b2bc7abb 25-May-2017 Felipe Leme <felipeal@google.com> Removed deprecated setAutofill() method for virtual children.

Test: CtsAutoFillServiceTestCases pass

Bug: 37563972

Change-Id: Icbffb89d86ee65831b7c78effd2522ac7891e1be
/frameworks/base/core/java/android/app/assist/AssistStructure.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/app/assist/AssistStructure.java
bc561eb06e0ac0f99f0a0589163bf8affc3516ae 12-May-2017 Felipe Leme <felipeal@google.com> Don't print sensitive data on AssistStructure.dump()

Test: manual verification

Bug: 38205945
Change-Id: Ic184ee6da313a2c0f8e0dd11979f6985d8023140
/frameworks/base/core/java/android/app/assist/AssistStructure.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/app/assist/AssistStructure.java
c368a240c9a7b03c5fa3071b97ddf56e76dbd068 04-May-2017 Philip P. Moltmann <moltmann@google.com> Report less data in structure to autofill provider

Fixes: 35899963
Test: CtsAutoFillServiceTestCases, CtsAccessibilityTestCases,
CtsAccessibilityServiceTestCases
Change-Id: Ia7dba3e252e7678c033d67bcf653e592f3134304
/frameworks/base/core/java/android/app/assist/AssistStructure.java
5073b91236ad05ce4d478da9b9478ee07be1ace0 04-May-2017 Siyamed Sinir <siyamed@google.com> Merge "Don't copy NoCopySpans for assist and autofill" into oc-dev
a8fce3b29eff8ed452ee20a1938268b837a105ad 04-Apr-2017 Felipe Leme <felipeal@google.com> Don't copy NoCopySpans for assist and autofill

For AssistStructure, and AutofillValue, create a copy of the text in
setText and forText methods if it is a Spanned.

Fixes: 36838999
Test: cts-tradefed run cts -m CtsAutoFillServiceTestCases
Test: cts-tradefed run cts -m CtsAssistTestCases
Test: cts-tradefed run cts --test android.widget.cts.TextViewTest -m \
CtsWidgetTestCases

Change-Id: I52e780fa9baa17c375d3945dc714171f41fd7db5
/frameworks/base/core/java/android/app/assist/AssistStructure.java
61b7f121725bd5607fe498cbdae5fa9808188f61 02-May-2017 Felipe Leme <felipeal@google.com> Removed deprecated ViewStructure.setUrl() method.

Fixes: 37623568
Test: CtsAutoFillServiceTestCases pass
Test: CtsAssistTestCases pass

Change-Id: I13cdf08f40ba3db31ddb3f104f99b7ab8839bd01
/frameworks/base/core/java/android/app/assist/AssistStructure.java
b63d261f9c830e85c24c2a9d1d11d6b14d9f4e62 28-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Refactored Autofill to move starting flag out of Session." into oc-dev
3dfd8275749a734380282437579156b6b35ccc51 28-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Changed HtmlInfo.getAttributes() to return List instead of ArrayList" into oc-dev
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/app/assist/AssistStructure.java
70c0221813d515c3496eb1ea1037198e9ad8ad44 28-Apr-2017 Svetoslav Ganov <svetoslavganov@google.com> Merge "Implement the rest of autofill importance modes" into oc-dev
09a70628da3aa617cdabace129bf8dbe64bc19b3 28-Apr-2017 Felipe Leme <felipeal@google.com> Changed HtmlInfo.getAttributes() to return List instead of ArrayList

Fixes: 37747396
Test: CtsAutoFillServiceTestCases pass

Change-Id: Ief53e6d71805f561577b73e57a9d36bc3769862a
/frameworks/base/core/java/android/app/assist/AssistStructure.java
fd31f85d0c6f19138d06d565d2b30b59e241a960 27-Apr-2017 Svet Ganov <svetoslavganov@google.com> Implement the rest of autofill importance modes

Test: CTS tests pass; augmented tests to verify new behavior

bug:36171235

Change-Id: Ieff2b8d7e1c3a3eba456deca7bed70c8e29c415e
/frameworks/base/core/java/android/app/assist/AssistStructure.java
3a4987bbe70acf484bb3c0240ecb93e7d04f6d84 27-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Improve docs for AssistStructure#isHomeActivity" into oc-dev
86687827f3936184d71d4d9b019b50661ce69ec7 26-Apr-2017 Amith Yamasani <yamasani@google.com> Improve docs for AssistStructure#isHomeActivity

Change-Id: I84b5686c6d3d81f14dc56f72af985ffe686c0e0a
Fixes: 37558097
Test: make offline-sdk-docs
/frameworks/base/core/java/android/app/assist/AssistStructure.java
e4f30650ac2b4e7b1b2a8962a3618506aec1b81a 25-Apr-2017 Felipe Leme <felipeal@google.com> Provide a way to set AutofillId on ViewStructure.

So far that was done indirectly by public methods that could
be overridden in away that does not set the proper id in the structure,
which would crash apps.

Bug: 36171235
Test: modified VirtualContainerActivityTest#testAutofillOverrideDispatchprovideAutofillStructure

Change-Id: I3f1c64020125cbb8349971a0bc52ccd1e0c81e62
/frameworks/base/core/java/android/app/assist/AssistStructure.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/app/assist/AssistStructure.java
4711ed9f9f8c4a320c66f2a277817acfea127703 22-Apr-2017 Felipe Leme <felipeal@google.com> Replaced getUrl() by getWebDomain().

Bug: 37566507
Test: CtsAssistTestCases pass

Change-Id: I1b4dfa7259040b3b8bf1014ebb806eb7a3b36c58
/frameworks/base/core/java/android/app/assist/AssistStructure.java
30e9b266aab920b7dbb6fb4784b3d58d3273b750 21-Apr-2017 Felipe Leme <felipeal@google.com> Clarify the meaning of ViewNodes methods used for Autofill purposes.

Test: m update-api
Bug: 37565909

Change-Id: I8abcc76193876b62726acb274c5e8984e9dbe6a7
/frameworks/base/core/java/android/app/assist/AssistStructure.java
7e4c205d8f7e6746ab6e0701e4d7776a2cdd6aa0 18-Apr-2017 Felipe Leme <felipeal@google.com> Moved getAutofillOptions() logic from SpinnerAbs to AdapterView and Adapter.

Fixes: 37330022
Test: CtsAutoFillServiceTestCases pass
Test: manual verification using app from bug 37327881

Change-Id: I66260131c7ef0d5b3c2b20514f29efd5eb10057e
/frameworks/base/core/java/android/app/assist/AssistStructure.java
b11802197259019b016c84741fd5ae18a1b276c1 18-Apr-2017 Felipe Leme <felipeal@google.com> Renamed ViewNode's getAutoFillHints() to getAutofillHints()

Test: CtsAutoFillServiceTestCases pass
Bug: 35956626
Bug: 35364993
Change-Id: I2ad5a625da6ed4ff889315923c81cfd629e34074
/frameworks/base/core/java/android/app/assist/AssistStructure.java
cde040ae9563600179502f8ce8dd06bc7bb5a1c0 01-Apr-2017 Felipe Leme <felipeal@google.com> Improvements on ViewNodes received on partitioned requests:

- Fixed focus
- Added autofillValue for nodes previously autofilled

BUG: 35707731

Test: existing CtsAutoFillServiceTestCases pass
Test: more tests on PartitionedActivityTest

Change-Id: If4390d002d44c82e3de0339a634041f3998e804e
/frameworks/base/core/java/android/app/assist/AssistStructure.java
f78e952d8df7074aa7380c5998826a4dffe335e7 05-Apr-2017 Felipe Leme <felipeal@google.com> Removed deprecated auto(F)ill classes.

Bug: 35956626
Test: manual verification
Test: CtsAutoFillServiceTestCases pass
Change-Id: Icb622589c41e6a286d51e3f85bd5a813e483b5ea
/frameworks/base/core/java/android/app/assist/AssistStructure.java
4d558930c8fe9381a208715c73e665ab5f9baa0d 01-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Created an HtmlInfo object on ViewStructure." into oc-dev
81192b40de3578368a38c9815d0af87565f99228 29-Mar-2017 Philip P. Moltmann <moltmann@google.com> Rename autoFillHint to autoFillHints.

Fixes: 35364993
Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases
Change-Id: I65a4c2c65563e7bbd60c4e99c8800b0b11af2300
(cherry picked from commit feb3299ed5fa30db8b1a4ab693e11e8acb32d13d)
/frameworks/base/core/java/android/app/assist/AssistStructure.java
25bf787ffbc2c878683e824643941829e5b6967a 29-Mar-2017 Felipe Leme <felipeal@google.com> Created an HtmlInfo object on ViewStructure.

The ViewStructure typically represents a View, but it it can also be a virtual
view; in particular, WebView uses virtual views to represent HTML elements.

Although most of the properties of the HTML element maps to properties of
Android Views, some properties (such as 'name' and 'id' on <INPUT> fields)
don't, and those are crucial for autofilling web pages.

Rather than trying to artificially map these properties, it's better to create
a generic representation, for the following reasons:

1. Web standards move in a different velocity than Android APIs
2. Android APIs cannot be changed easily. Deprecated APIs continue to work,
and new added APIs don't work in older versions
3. The data used for autofill is opaque to the Framework - it's only relevant
to the node producers (like WebView) and consumers (Autofill services).

Also removed the setIdEntry() that was used for the same purpose.

Fixes: 36696757
Bug: 36718508
Test: VirtualContainerActivityTest with new checks pass

Change-Id: Ia626bd1f640b0b5861e81a5915504b95029874c9
/frameworks/base/core/java/android/app/assist/AssistStructure.java
b4ca70184c7c7170b05d01aa2f908b3de9d14ab5 23-Mar-2017 Felipe Leme <felipeal@google.com> Added LocaleList on ViewStructure.

Fixes: 36219641
Test: CtsAssistTestCases pass

Change-Id: I4f208a3b979a524d631e9d2c642b9b5a3cdccb22
/frameworks/base/core/java/android/app/assist/AssistStructure.java
1f08e1369b72f9855b55c257b32bad7864dcfc2a 21-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Changes on Assist structure to handle virtual child for autofill:"
1a1e4687e4401068af0e4901477a8169278aa39b 14-Mar-2017 Felipe Leme <felipeal@google.com> Improved WebView -> ViewStructure mapping for Autofill.

Added setIdEntry() on ViewStructure and documented how WebView can map HTML
tags and attributes into ViewStructure.

Test: VirtualContainerActivityTest pass
Test: m update-api
Bug: 36056207

Change-Id: Idaee9612d2c1b1adac99f354c8f87137ee9ef877
/frameworks/base/core/java/android/app/assist/AssistStructure.java
f8a8174cd5bc8aff63befd6ca6d96d21e89260bd 18-Mar-2017 Felipe Leme <felipeal@google.com> Changes on Assist structure to handle virtual child for autofill:

- Removed overloaded newChild() methods.
- Added a setAutofillId(parent, virtualId).
- Changed view so AutofillId is set on all relevant methods.

Test: VirtualContainerActivityTest (with new tests) pass
Bug: 36056207

Change-Id: Ia11344f95c2756e83307c54052878e9dbe471873
/frameworks/base/core/java/android/app/assist/AssistStructure.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/app/assist/AssistStructure.java
9b31b4eac838238ef3013cbfb1379cddbafa0f12 14-Mar-2017 Philip P. Moltmann <moltmann@google.com> Merge "Make it clear which type of AutoFillValue is set"
37bf8b17364c444aabfcaaed8081b3830202c5e6 14-Mar-2017 Philip P. Moltmann <moltmann@google.com> Merge "Change autoFillHint to list of strings"
c9a19b1b274af1fdd8b811c9ce2df994f7db47a4 14-Mar-2017 Felipe Leme <felipeal@google.com> Renamed ViewStructure.setSanitized() to setDataIsSensitive().

Bug: 36126001
Test: CtsAutoFillServiceTestCases pass
Test: m update-api

Change-Id: I182355b63d8743cd8cd8612f29a9269e258283c2
/frameworks/base/core/java/android/app/assist/AssistStructure.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/core/java/android/app/assist/AssistStructure.java
495cadd8a99d52965a22ffd83c2abe0930cb0968 11-Mar-2017 Philip P. Moltmann <moltmann@google.com> Change autoFillHint to list of strings

Test: Ran autofill CTS tests
Fixes: 35364993
Change-Id: I3f4ceb719b2d3fef0168e8300c0d15f1661560c0
/frameworks/base/core/java/android/app/assist/AssistStructure.java
858f98d13e10afba6420daba0a42b2e056452e24 22-Feb-2017 Amith Yamasani <yamasani@google.com> AssistStructure improvements

Added isOpaque() for Views
Added getAcquisitionStartTime(), ...EndTime()
Added isHomeActivity()

Bug: 30895450
Test: cts-tradefed run cts-dev -m CtsAssistTestCases -t
android.assist.cts.AssistStructureTest#testAssistStructure

Change-Id: I294a089aa3454ebfebf0442036d98ccb86cb2827
/frameworks/base/core/java/android/app/assist/AssistStructure.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/app/assist/AssistStructure.java
8931e303700a5adb6e013c2b5a6cec621eede968 06-Mar-2017 Felipe Leme <felipeal@google.com> Replace AutoFillType by view constants.

Now that AutoFillType does have any logic (since the "subType" logic was moved
to AutoFillHint), it makes more sense to get rid of the type and use constants
directly.

This change creates the contants and "pseudo-deprecate" the old stuff: it's
still available because some clients are using it, but it will be removed once
they migrate.

Bug: 35956626
Test: CtsAutoFillServiceTestCases pass

Change-Id: I0efe7f0cc101c86164a18c85903bb871e1f13ba2
/frameworks/base/core/java/android/app/assist/AssistStructure.java
a515299d2974f00225e10bace480ded4a1c14afc 04-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add forAutoFill suffix on ViewStructure methods that add children."
dbe07a587cd0c6a4b8770bf8f296c5b01cf12ab5 03-Mar-2017 Felipe Leme <felipeal@google.com> Add forAutoFill suffix on ViewStructure methods that add children.

Change-Id: I36f7bd26b7d45fd809d7398cc86de3d2671f2b28
Fixes: 35764877
Test: m update-api
/frameworks/base/core/java/android/app/assist/AssistStructure.java
235770d4ee5399b74a102da78eca97ab51a0774e 03-Mar-2017 Felipe Leme <felipeal@google.com> Minor documentation fixes.

Test: m update-api
Bug: 33550221

Change-Id: I757f161eb78a5c0c662743f35a372c91130c5b34
/frameworks/base/core/java/android/app/assist/AssistStructure.java
ba6f46260232c04b7e5d75b1c38187e581dabdeb 22-Feb-2017 Philip P. Moltmann <moltmann@google.com> Add autoFillHint property to view

Bug: 35364993
Test: Ran amended ViewAttributesTest
Change-Id: Ib7d2c3dfd5b4a6b638b56c4583af4c9bdf37e346
/frameworks/base/core/java/android/app/assist/AssistStructure.java
16aafc36ded4a118f86890261f8f87a6927dc547 27-Feb-2017 Felipe Leme <felipeal@google.com> Added inputType to Assist API.

It will be used mostly for auto-fill purposes..

Bug: 35364993
Test: CtsAutoFillServiceTestCase (with new tests) pass
Test: manual verification

Change-Id: Ia5b6ff94e66a7da385cfb6f42ad994fe5e1e976b
/frameworks/base/core/java/android/app/assist/AssistStructure.java
c01a873c4f68518be4698077c7eb593a6a3b9f4c 23-Feb-2017 Felipe Leme <felipeal@google.com> Added sanitization for CompoundButton and RadioGroup.

Bug: 33269702
Bug: 33550221
Test: CtsAutoFillServiceTestCases (with new tests) pass

Change-Id: Ie2c8d2784227371588aa02973b8ef3ac1a6950aa
/frameworks/base/core/java/android/app/assist/AssistStructure.java
d09ccb8db6c541f2d349b923bf9b38f1081aaa8d 23-Feb-2017 Felipe Leme <felipeal@google.com> Added auto-fill support for Spinner.

Spinner is a special kind of list-value field because its auto-fillable
values are not currently present in the assist structure: this change
adds a getAutoFillOptions() to fill that void, and implements the
auto-fill APIs on Spinner.

It also fixes RadioGroup.getAutoFillValue() - it should return the index
of the child, not its resource id.

Bug: 33550221
Test: CtsAutoFillServiceTestCases (with new tests) pass
Change-Id: I625e7dd705fade56fda490fcd3c4446c0c245ee1
/frameworks/base/core/java/android/app/assist/AssistStructure.java
bd271212a283a8e243ea498117f57b09ca2b346a 22-Feb-2017 Felipe Leme <felipeal@google.com> Improved documentation and added @CallSuper on onProvideAutoFillStructure().

onProvideAutoFillStructure() sets mandatory auto-fill information like the
auto-fill id, so we must enforce subclass to call it.

Bug: 35395043
Test: m update-api
Change-Id: I525690b38639d970f516a906ddeb3a6bd6e01d8c
/frameworks/base/core/java/android/app/assist/AssistStructure.java
33791fd54b0e2acd6e7c06517cf2f994fa3d4213 16-Feb-2017 Felipe Leme <felipeal@google.com> Add API to mark sanitized fields and implement it on TextView.

When sending a ViewNode to the auto-fill service, it's necessary to sanitize
it so it does not contain PII (Personally Identifiable Information).

A good rule of thumb is to mark as sanitized nodes whose value were statically
set from resources. Ideally, that logic should belong to View, but View does
not know how its contexts are set, so the decision must be made by the
subclasses, and this CL implements that logic on TextView (which is the main
auto-fill type - others will come soon...)

Bug: 33269702

Test: CtsAutoFillServiceTestCases pass
Test: manual verification

Change-Id: I4dcdd8419a35812bd2f15a63a5be85f8cd97bb4e
/frameworks/base/core/java/android/app/assist/AssistStructure.java
c32410068dc23b1eee87bc370525a46ffc7a936d 15-Feb-2017 Felipe Leme <felipeal@google.com> Add URL on ViewStructure.

The URL will be typically used by views rendering HTML pages (like WebView),
and used in 2 cases

- Root node (containing the URL of the HTML page)
- Child nodes that represent hyperlinks (contains the hyperlink URL).

Fixes: 20902429
Test: manual verification
Test: android.assist.cts.WebViewTest verifies it

Change-Id: Ic49472f1fca89047369b7187176f54efd277e204
/frameworks/base/core/java/android/app/assist/AssistStructure.java
71377a4ae2d52494f19f15a0a1b860e356e80caa 15-Feb-2017 Felipe Leme <felipeal@google.com> Enable auto-fill when activity is marked as FLAG_SECURE.

BUG: 34077687
Test: CtsAutoFillServiceTestCases passes
Change-Id: I2d7a565a53a32792d6daeceba3f3a7beebdf052c
/frameworks/base/core/java/android/app/assist/AssistStructure.java
0200d9ea1509089c0c03b7071aa271e3a9b35c11 25-Jan-2017 Felipe Leme <felipeal@google.com> Improved AutoFill Save workflow.

Currently, the onProvideAutoFillStructure() methods can be called
twice: to auto-fill an activity and to save the activity's data
in the service.

The problem with this approach is that when the save workflow is
called, the activity might have been gone. Hence, a proper approach
is to keep the initial AssistStructure data in the system_service
memory, watch for view changes, and then passed the new structure
back to the AutoFillService.

A side effect of this change is that we need another way to determine
if the view is sanitized or not. For "standard" views, that will be
defined based on whether the view content come from a resource or not,
but that logic is not implemented yet (for now, all views will be
considered sanitized, except for TextView passwords). For "custom"
views (such as WebView), this logic is responsibility of the view
implementation, through the newChild() method, which now takes a
flag (whose value could be AUTO_FILL_FLAG_SANITIZED for sanitized
views).

The SaveCallback.onSuccess() method was simplified: it does
not need a list of saved ids anymore the auto-fill UI will not use it
anymore.

Another side effect is that the Save notification is gone - until
it's attached again, it can be test by using:

adb shell cmd autofill save

Finally, hook AutoFillUI on ACTION_CLOSE_SYSTEM_DIALOGS events.

BUG: 33269702
BUG: 31001899
Test: manual verification
Test: CtsAutoFillServiceTestCases passes
Change-Id: I907a7e21d1b3cd1ab6dec3a08d144a52655da46f
/frameworks/base/core/java/android/app/assist/AssistStructure.java
6d553874bed06280766ae24ea605f9bbde3f5a4a 09-Dec-2016 Felipe Leme <felipeal@google.com> YAMAFFR - Yet Another Major AutoFill Framework Refactoring

- Explicitly split View methods into Assist and AutoFill methods, rather
than use an overloaded method that takes flags.
- Simarly, renamed ASSIST_FLAG_SANITIZED_TEXT and
ASSIST_FLAG_NON_SANITIZED_TEXT flags to
AUTO_FILL_FLAG_TYPE_FILL and AUTO_FILL_FLAG_TYPE_SAVE respectively.
- Created a AutoFillUI class to host the auto-fill bar and other UI
affordances.
- Moved the temporary notifications to AutoFillUI (eventually that
class will host the real UI).
- Moved FillData to android.app.view.autofill package.
- Split IAutoFillCallback in 2 (IAutoFillAppCallback and
IAutoFillServerCallback, residing at the app and system_server
respectively), so service cannot fill the app directly (which lets
the framework control the UI).
- Moved assist's IResultReceiver to AutoFillServiceImpl so
system_server can act as a mediator between the AutoFillService
implementation and the app being auto-filled.
- Replaced FillData and FillableInputFields by a bunch of new objects:
- FillResponse contains a group of Datasets, each representing
different values
that can be used to auto-fill an activity (for example, different
user accounts), optional id of fields the service is interested
to save, and an optional bundle for service-side extras.
- Dataset contains a name, Fields, and an optional bundle for
service-side extras.
- Fields contain an AutoFillId (parcelable) and a value (Bundle)
- Changed the temporary notifications to emulate the new workflow:
- Initial notification requests the auto-fill data but do not
auto-fill.
- Once service calls back, a new notification is shown with the
results.
- Then if the user selects a dataset, the activity is auto-filled
with it.
- It also shows a notification to emulate what can be saved.
- Created an VirtualViewDelegate for views that uses a virtual
hierarchy for assist data.
- Added new methods on ViewStructure to add children with virtual ids.
- Added 2 methods on View to support auto-fill:
- autoFill(Bundle) to auto-fill the view.
- getAutoFillType() to return how the view can be auto-filled.
- AutoFillType defines the input fields that support auto-fill:
- Text fields (like EditText)
- Toggle fields (like CheckBox)
- Lists (like RadioGroup)
- AutoFillType can also have a sub-type representing its semantic (for
now only text fields have it, and it's the same as getInputType()).
- etc :-)

Bug: 31001899
Test: manual verification
Change-Id: I2dd2fdedcb3ecd1e4403f9c32fa644cb914e186f
/frameworks/base/core/java/android/app/assist/AssistStructure.java
1ca634a544a47193dd9e57f9b3eb3e42ab0dbbf1 29-Nov-2016 Felipe Leme <felipeal@google.com> AutoFill Framework refactoring.

The AutoFill Framework uses the same AssitStructure provided by the Assist API
and so far it was using the same methods as well, both internally and externally
(public API).

Sharing that internal code internally is fine, but the public APIs must distinguish between the 2 cases so they can fill the assist structures accordingly (although the initial implementation still shares the same logic).

This CL also splits the original 'auto-fill' request in 2 types of requests,
which are set by View flags:

- ASSIST_FLAG_SANITIZED_TEXT
- ASSIST_FLAG_NON_SANITIZED_TEXT

It also added new methods and callbacks to handle save requests.

Bug: 31001899
Test: manual verification

Change-Id: I4eb09099dc19a43cb7e053e64d939aed3704b410
/frameworks/base/core/java/android/app/assist/AssistStructure.java
29a5b0d0f1cc7fd6cbfe97c816b8a687d9e438cc 25-Oct-2016 Felipe Leme <felipeal@google.com> Added a callback for AutoFillService.

So far AutoFillService only received the assist data from framework; in
this CL, it also offers a method where the auto-fill provider can send
the auto-fill data back to framework.

The workflow is:

- AFMSI calls a new AM method (requestAutoFillData(), instead
of requestAssistContextExtras()).
- The assist receiver is located in the app, not on system service.
- AM uses a new request type (ASSIST_CONTEXT_AUTOFILL) to request the
assist data to the activity.
- ViewStructure has a new setAutoFillId() method which is used to set an
unique id for the view.
- View uses the accessibility id to implement the auto-fill id.
- When the activity fullfills the request, it creates an IAutoFillCallback
remote object - that will be used to set the auto-fill fields - and
returns it in the assist bundle (using the
VoiceInteractionSession.KEY_AUTO_FILL_CALLBACK key).
- The app-visible AutoFillService class offers an onFillRequest() method,
which contains the assist data and a FillCallback used to handle it.

BUG: 31001899
Test: manually built and ran it

Change-Id: I3d208c14e81022dc96dd03f38bbe25a778b24a67
/frameworks/base/core/java/android/app/assist/AssistStructure.java
afb308d6519c56cf2b8001b33dade35e682ab241 31-Jul-2015 Dianne Hackborn <hackbod@google.com> Fix issue #21895842: Add is_assist_blocked to assist.ViewNode.NodeProperties

Change-Id: I928882d42d0546cc6a12e803d96131beaba76d4e
/frameworks/base/core/java/android/app/assist/AssistStructure.java
86cbc2bf30a7623b2ad6564cf50ca20f87067ea7 29-Jul-2015 Dianne Hackborn <hackbod@google.com> Work on issue #22765972: Binder transactions running out of address...

...space causing package manager to fail

Lower the maximum IPC size we use in various places, to keep it
under the threshold of becoming dangerous. Now everything tries
to keep not much more than 64k.

Change-Id: I814013097966a7843179e5d581bfdb254c5ae318
/frameworks/base/core/java/android/app/assist/AssistStructure.java
3e8125b40ef2f559a123baadb8b253123c75a4ee 23-Jul-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22653116: Google App crashing on NYT app

We weren't correctly handling the root view of the window --
we were just pushing it on to the stack, but that means it got
written at the end. Instead, we now immediately write it
after the window and let things follow from there.

Change-Id: I070c96bd2443f312a7c6f495d1bf72fa19c614d6
/frameworks/base/core/java/android/app/assist/AssistStructure.java
fcbfeaf0695da69303e91aebe9ca97ef84437539 15-Jul-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22460110: AssistStructure.ViewNode.isAssistBlocked() always...

...returns true

Well it wasn't *quite* always, but close enough. :p

Change-Id: I990b8b2ca7b80ce68a067b0dd92efc1c2faaa8cd
/frameworks/base/core/java/android/app/assist/AssistStructure.java
782d49826862cbdc9d020fc9d85f8a6f64675dcb 09-Jul-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22328792: Fix scalability issues in AssistStructure

We can now stream the AssistStructure across processes, avoiding
IPC size limitations for large structures. There is also a new
API that gets called on the VoiceInteractionSession if there is
a failure retrieving the assist data.

Also fix issue #22351981: Runtime restart due to ANR in system server,
getting rid of a deadlock.

And also tweak object lifecycles to try to avoid keeping around
in an app the previous AssistStructure after we request a new one.

Change-Id: Ifb136a0d31a14e56a8db6b90768d9fc65557a17f
/frameworks/base/core/java/android/app/assist/AssistStructure.java
6f0fdc4167ad906fc7409856e86cd0cc601c3b53 07-Jul-2015 Dianne Hackborn <hackbod@google.com> Implement better handling of text in assist.

TextView is now much smarter about the text it reports, limiting it
to what is visible (plus a bit more). Also add a facility for it to
report where the lines of text are, both as offsets in the text string
and their baselines on screen.

Part of fixing issue #22328792: Fix scalability issues in AssistStructure

Change-Id: Idddb8c3a3331355f381e2d4af06d520fe7c7ce8e
/frameworks/base/core/java/android/app/assist/AssistStructure.java
70d8be7616a450e9b7ef09c8bda5a8b25936a29a 23-Jun-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22013372: Assist should take translationX and friends...

...into account when calculating the position information

Actually what we need here is the full transformation matrix, if it
is available. And that means actually computing the location of
views on the screen requires doing this all through transformations,
so the AssistVisualizer has been changed to do this (while still
also keeping the old mechanism for comparison to verify that things
are working correctly).

Also added new properties for elevation and alpha.

And optimized the parcelling of AssistStructure to not write things
that aren't needed; this reduces the parcelled size by about half.

Change-Id: I50b0dd2e6599c74701a5d188617a3eff64b07d03
/frameworks/base/core/java/android/app/assist/AssistStructure.java
8ecf16d186fa8606571b75c01a21a528a7e55d23 23-Jun-2015 Dianne Hackborn <hackbod@google.com> Fix issue #20654534: API Review: android.app.assist

Remove the old ViewAssistStructure class.

Change-Id: I5eca7bc7af93cda5f654c9094a3aa07fe4958da2
/frameworks/base/core/java/android/app/assist/AssistStructure.java
16036f26847f3f1a88a093fb776bf081008ff8d8 22-Jun-2015 Dianne Hackborn <hackbod@google.com> Fix issue #20654534: API Review: android.app.assist

Remove the old classes.

Change-Id: I949350cadc5fc304e2651d7db0ffd38e45db9b6e
/frameworks/base/core/java/android/app/assist/AssistStructure.java
69c6adc96eecfde74ceb83cf9177428dc08b6067 02-Jun-2015 Dianne Hackborn <hackbod@google.com> More API changes.

Start moving Assist* stuff to android.app.assist.

Clean up some more of the VoiceInteractionSession APIs.

Clearly document that finish() is not the same as hide(),
always call hide() instead, and fix the finish() path to
also always do a hide to make sure everything is cleaned
up correctly.

Change-Id: I962d4069fcb34fe89547a95d395ae1b9fa3b4148
/frameworks/base/core/java/android/app/assist/AssistStructure.java