History log of /frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d013bcea9713d178627cc1d3e8a0f291ccbcd293 21-Jun-2017 Felipe Leme <felipeal@google.com> Don't add FillEventHistory events to the wrong session.

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

Test: existing CtsAutoFillServiceTestCases pass
Test: LoginActivityTest.checkFillSelectionFromPreviousSessionIsDiscarded

Fixes: 62802026

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

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

Bug: 62802026

Change-Id: I389d95fc13c08f1056960e5f67e131c8dc306401
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
94b56207a45f0112339833b3d76662e583a51e73 16-Jun-2017 Felipe Leme <felipeal@google.com> Use an optimized findViewNodeByAutofillId(id) to get just one node.

Session was using findViewNodesByAutofillIds(ids) before, which not only was
not optimal, but error prone (for example, it could return a non-empty array
with an empty value).

Test: CtsAutoFillServiceTestCases pass
Fixes: 62532979

Change-Id: If984f1263cc3f2aac1d1e098687fe02d73c55211
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
be4420cf13e6f92d8ff324b43dbda9fb3adae755 07-Jun-2017 Felipe Leme <felipeal@google.com> Merge "Improved debug to diagnose Save issues." into oc-dev
e8f68080795374c4c3ee25a068990d602e63320f 06-Jun-2017 Felipe Leme <felipeal@google.com> Use initial value on save when value didn't change.

Otherwise, it will fail to call onSaveRequest() in scenarios where the service
required a field that was pre-populated for the app. For example, when the
service requires both a username and password, the app pre-populates the
username, and the user fills the password.

Test: new LoginActivityTest.testSaveOnlyTwoRequiredFieldsOnePrefilled() pass
Test: existing CtsAutoFillServiceTestCases pass

Bug: 62270740

Change-Id: Idbb11a8c2dab6741c18549c55dfdb71b483c2447
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
a844927cb60e0d1d7836ca0478ed16671625a58e 03-Jun-2017 Felipe Leme <felipeal@google.com> Improved debug to diagnose Save issues.

Test: manual verification
Bug: 62272098

Change-Id: Id7a6765fbe4228fcabb6cc0df37c5fde102d7077
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
d8d9758363524f454cfa1b39a460e461005c84a3 31-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't automatically autofill when manual request returned just 1 dataset." into oc-dev
9b36dfb2b1377aeb774e1b8090b5b4f29a394df1 31-May-2017 Felipe Leme <felipeal@google.com> Don't call remoteFillService.destroy() until session is removed.

Test: CtsAutoFillServiceTestCases pass

Fixes: 62200831
Bug: 62106708

Change-Id: I4e54e28a347e800c0b8353938399c860f213edfa
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
8697a31d3c32f212cee48b4d0576e8783c6c9d5f 30-May-2017 Felipe Leme <felipeal@google.com> Don't automatically autofill when manual request returned just 1 dataset.

When the user manually requested autofill and the service returned just 1
dataset, the app was automatically filled with it.

The motivation here was that since the user explicitly asked for autofill,
it'd ok - and better for the user - to release the data to the app without
the selecting a dataset.

This assumption was ok initially, but now the API to manually request autofill
is public, so a malicious app could use to get autofill data without user
interation.

Test: CtsAutoFillServiceTestCases pass
Fixes: 62164695

Change-Id: I47c3d8c557533526572aa67a4240c0a57f54268d
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
c368c0b5ab0bf6b3d105c58fa7f4f3376fdcd134 25-May-2017 Felipe Leme <felipeal@google.com> Merge "Autofill UI should still show when dataset authentication is cancelled." into oc-dev
0171840cebbb6a3dc90a67081e83fc94ea5fe2d3 24-May-2017 Felipe Leme <felipeal@google.com> Autofill UI should still show when dataset authentication is cancelled.

Test: manual verification
Test: existing CtsAutoFillServiceTestCases pass
Test: LoginActivityTest.testDatasetAuthTwoFieldsUserCancelsFirstAttempt

Fixes: 38427468

Change-Id: If8785ad8fda1408a5dee66c53f7dcb4c85d78262
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
0430207aeb24faef8f2185a69f7471845f633b62 24-May-2017 Felipe Leme <felipeal@google.com> Don't WTF when assist structure is missing.

That could happen when app throws an exception while filling it.

Fixes: 38312929
Test: manual verification by forcing an app to throw an exception

Change-Id: I7e94e9d352c4c3fd8adf01bcf7b25f66535e070d
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.java
5fd8672d71319ca2b2238b486aee3ac6c7aa7ad8 13-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Couple autofill fixes." into oc-dev
7a1deb7c5f2c57df4f905ba997863a03d363a53e 12-May-2017 Felipe Leme <felipeal@google.com> Couple autofill fixes.

- Fixed PFLAG3_NOTIFY_AUTOFILL_ENTER_ON_LAYOUT value - it was overlapping with
PFLAG3_ASSIST_BLOCKED.
- Added missing permission on methods called by Shell command.
- Improved debugging.

Bug: 38173625

Test: android.autofillservice.cts.MultipleFragmentLoginTest#loginOnTwoFragments

Change-Id: Ie7880c97d38298e06134709c5c2e9e38fa1bacbb
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
a44c50f3626685f6663a9fe3beb62a54baf94baa 12-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Do not notifyNoFullUi if no view is focused" into oc-dev
20d36c70cd8ffda6150606f88f852a44aa145d5b 12-May-2017 Philip P. Moltmann <moltmann@google.com> Merge "Safeguard against uncommon scenarios when pruning" into oc-dev
5b4b0fcc0e5f9c6cf6e6041fa7a450c996f4953e 11-May-2017 Philip P. Moltmann <moltmann@google.com> Do not notifyNoFullUi if no view is focused

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

E.g. more than one session by activity token

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

Fixes: 38203308
Test: Created two sessions, put them in background. Killed the apps, killed the tasks.
Waited 30 second and started new sessions -> Saw sessions pruned.
Change-Id: I8fe94773a3381617779e5bdded317f3744c831e5
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
6dc0177fe4212bc59e54260fdcbf779e0ee883c7 10-May-2017 Felipe Leme <felipeal@google.com> Decrease default number of partitions from 64 to 10.

...and also added shell cmds to set it so it can be CTS-tested.

Bug: 37997043

Test: manual verification
Test: PartitionedActivityTest.testNoMorePartitionsAfterLimitReached()
Test: CtsAutoFillServiceTestCases pass

Change-Id: I783bd2d3ed248484adeeebd2df425a6304362ad9
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
6ab00addb18ab2950edb74e1510cc44646f55ff0 11-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Speed up structure update before OnFillRequest" into oc-dev
22567d3415c88b2d054a1540dd868e60d274aac8 09-May-2017 Philip P. Moltmann <moltmann@google.com> Speed up structure update before OnFillRequest

We now
- cache AutofillId -> ViewNode
- look for all AutofillIds at the same time (instead of one by one)

Bug: 37997043
Test: CtsAutoFillServiceTestCases
Change-Id: I094468ad885eed0cc506b4b62ff09c4af48570ff
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
298f89a3e3de719e522f89c7aea7502795f94ff6 09-May-2017 Felipe Leme <felipeal@google.com> Fixed autofill dumpsys and improved logging.

Fixes: 38196286
Bug: 37997043

Test: adb shell dumpsys autofill -a
Test: CtsAutoFillServiceTestCases pass

Change-Id: Ifaae7b5c0894ecf0d16fff8a3c96e4746fe2361b
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
a9379d0b44ca1f68a0036d2b65218e17fa348514 10-May-2017 Svetoslav Ganov <svetoslavganov@google.com> Allow null fill values to support authentication case

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

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

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

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

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

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

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

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

bug:37724701
bug:37424539

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

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

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

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

Fixes: 38070352
Test: CtsAutoFillServiceTestCases
1 Started autofill, saw fill UI
2 Home button
3 Kill activity in background
4 Recents -> back to activity
5 Saw fill UI restored
Change-Id: I7c2c9411204fa5d65867efae9b7296399121c3a2
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
33948042ffdf2311605f73fea915baf40f0c3462 08-May-2017 Philip P. Moltmann <moltmann@google.com> Check callbacks when operting on UI

This makes sure that only the session that current owns the UI can make
changes to the UI:

The callback is the ID of the current owner. The only caller that does
not ID itself (and thereby causes the Ui to close in any way) is the
ACTION_CLOSE_SYSTEM_DIALOGS path.

Change-Id: Ib396864411f362b59deb500251c37896ecbc7de7
Fixes: 38042845
Test: CtsAutoFillServicesTestCases
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
1c38d29482f1c733a595fcfbeeafecda775f30ad 08-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed scenario where an authentication response has no dataset." into oc-dev
8fd057532783fda6f5187431ed2afac72d3bb0e8 05-May-2017 Felipe Leme <felipeal@google.com> Fixed scenario where an authentication response has no dataset.

Also use getUiForShowing() on all relevant places, and added missing
SaveDataType value.

Test: LoginActivityTest.testFillResponseAuthServiceHasNoData()
Test: manual verification

Fixes: 37711385
Fixes: 38009452

Change-Id: Id69c831f96fb9ac35d1f2d86cfd41e76428c776e
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
f539389ee9ef6e67162965d0a3a8f5220e7cb86a 05-May-2017 Philip P. Moltmann <moltmann@google.com> Prune abandoned autofill sessions

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

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

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

Change-Id: I8199ce44777b313141ee1eab6c8de5ad5089474a
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
1f8b07bb8d644c88869f1356443f07c2902e2e3e 04-May-2017 Felipe Leme <felipeal@google.com> Improved dump() on Autofill UI.

Bug: 37958210
Bug: 37986800
Test: adb shell dumpsys autofill --ui-only

Change-Id: Ia580eba219c919f7e84cdd39b756d60cd687f275
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
9a2e6058df51e94417dcedd4c7dd2a0cc380dcb1 03-May-2017 Felipe Leme <felipeal@google.com> Always start a manual request, even if view was already autofilled.

Fixes: 36034784
Test: CtsAutoFillServiceTestCases pass
Test: testAutofillManuallyAgainAfterAutomaticallyAutofilledBefore()
Test: testAutofillManuallyAgainAfterManuallyAutofilledBefore()

Change-Id: Ided8c42367b71766772bd364445510848db2adce
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
395f0ec8d28bdfa8179a7ada75033aa7abeacec3 02-May-2017 Felipe Leme <felipeal@google.com> Send AutofillValue of Views that originated a forced request.

Bug: 36034784
Test: CtsAutoFillServiceTestCases pass
Test: LoginActivityTest.testAutofillManuallyPartialField()

Change-Id: I79970f236f0ae3caaff60acc19ab8a08c3cb2ef4
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
c2430f3c4d6e3b996917f57c8afb0b00b5bef45b 01-May-2017 Felipe Leme <felipeal@google.com> Removed deprecated setAuthentication() method that didn't take ids.

Such method would cause the AutofillUi to show on all fields, now it only
shows in the fields the service is interested on.

This doesn't solve FillResponse auth on multiple partition, but that will
come soon...

Bug: 37424539
Test: removed hack from testFillResponseAuthJustOneField()
Test: CtsAutoFillServiceTestCases pass

Change-Id: Id97dddfb9fc1630cd6bac96b9bae9d4a2986dd6d
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.java
9f9ee25515591ef33281708c0ab911962f4364a6 27-Apr-2017 Felipe Leme <felipeal@google.com> Improved Autofill logging.

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

Fixes: 36141126

Test: CtsAutoFillServiceTestCases pass
Test: manual verification

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

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

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

Change-Id: I03c8a036637bae534904d4f41265e451088cf940
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
70c0221813d515c3496eb1ea1037198e9ad8ad44 28-Apr-2017 Svetoslav Ganov <svetoslavganov@google.com> Merge "Implement the rest of autofill importance modes" into oc-dev
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/services/autofill/java/com/android/server/autofill/Session.java
6249eff01d100cc87d715a49b29d9b13bb48f8c5 27-Apr-2017 Philip P. Moltmann <moltmann@google.com> Do not autofill twice

Looks like a merge issue

Bug: 37728979
Test: CtsAutoFillServiceTestCases
Change-Id: I743b1cdc1a5544712e15d81073c9b1449d527b6e
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.java
121e526476fb226cabf400c55a0bbfdd0781e772 25-Apr-2017 Philip P. Moltmann <moltmann@google.com> Return all previous FillContexts onFill

Test: CtsAutoFillServiceTestCases
Fixes: 37673341
Change-Id: I80feb5bd8d6027fb4ec2dd32f5c486dae7c6bc4c
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
c7619632145c23e6b5dd45620094e0bc686ad2db 25-Apr-2017 Philip P. Moltmann <moltmann@google.com> Report multiple FillContext-s onSave

To make life easier the reponseId is not part of the FillResponse.

Test: CtsAutofillServiceTestCases (added test for multiple Contexts)
Change-Id: If09e00b7267d293e4234a7a9837ad88d73af1b24
Fixes: 36481649
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
2f517c26d23393d4f0d6b3352de6e4c92c9e107e 22-Apr-2017 Philip P. Moltmann <moltmann@google.com> Take new autofill structure for each partition

Bug: 36481649
Test: CtsAutofillServiceTestCases (now with a test that has an autofill
session over two full screen fragments)
Change-Id: I55f2f6203f3bd5a7082b4ce90500d2c16a260c7d
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
85d1c2d2905362b984563d9b5e8332010c272fc5 21-Apr-2017 Felipe Leme <felipeal@google.com> Minor fixes on Autofill Framework:

- Removed default implementation of onProvideAutofillVirtualStructure() that
was using accessibility API (it's useless because without the View calling
AutofillManager.notifyViewEntered(), it would never be triggered).
- Fixed obsolete TODOs.
- Removed obsolete service class name constant.
- Removed unused debug constant.

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

Test: CtsAutoFillServiceTestCases pass
Merged-In: I834d34b8af8bf0d781dc7e0ffcd6e600bfa2d183
Change-Id: I834d34b8af8bf0d781dc7e0ffcd6e600bfa2d183
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
ab8238e23316cbb6f7f2ff2da44c172960057388 21-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't trigger new partition on fields from SaveInfo" into oc-dev
6d24c30d8d78faa2e10b01fb29a88a4ed6de401d 21-Apr-2017 Felipe Leme <felipeal@google.com> Don't trigger new partition on fields from SaveInfo

Fixes: 37551943

Test: existing CtsAutoFillServiceTestCases pass
Test: modified LoginActivityTest.testSaveOnly
Test: new LoginActivityTest.testSaveOnlyOptionalField

Change-Id: I2ae11c4f0aebe63fd02f81fbc37466435e3a2820
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
01ded104a139d9f68b0fa05c548c9261e61c75c1 21-Apr-2017 Felipe Leme <felipeal@google.com> Implemented FillResponse.setIgnoredIds().

Fixes: 37424141

Test: existing CtsAutoFillServiceTestCases pass
Test: PartitionedActivityTest.testIgnoredFieldsDontTriggerAutofill

Change-Id: I09bd95230c45d2970080514e25cb53320de49b56
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
cc684ed41f17ccdce45a056fd4034efc35b213d5 17-Apr-2017 Philip P. Moltmann <moltmann@google.com> Add a way to read the last AutofillSelection.

- Check UID to make sure one service cannot read FillSelections of other
services
- Add id to Dataset to allow to tag the datasets. This id is then found
in the FillSelection.Event
- Add clientState to FillSelection to allow service to store more data

Fixes: 36871500
Test: CtsAutoFillServiceTestCases
Change-Id: Ice894245508227265294a1c59ea97842175e5aec
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
7fa4198ab1e44ea8336e177f52ec8fdc501a6904 19-Apr-2017 Philip P. Moltmann <moltmann@google.com> Merge "Change saveOnAllViewsInsible from boolean to flags" into oc-dev
461fd10d6a03ce5b6d3aac2772f8815a521fd740 19-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed WTF that happens on race condition." into oc-dev
9023d14fb30c23ef58171a5133f893b2ee4e743c 18-Apr-2017 Philip P. Moltmann <moltmann@google.com> Change saveOnAllViewsInsible from boolean to flags

Change-Id: Ibd6f283479bad841eb7b20bb8d006562c4398e9f
Fixes: 35708237
Test: CtsAutoFillServiceTestCases
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
0ed99bc6df65883d288f8a62ba508308ec0f8f2e 18-Apr-2017 Felipe Leme <felipeal@google.com> Fixed WTF that happens on race condition.

Test: it's a log change, and it compiles :-)
Change-Id: Ie6409b92a5b7ad21ade5aecc0b7e78602aa3f605
Fixes: 37216544
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.java
833c68e9fd47e8e8ad2e93683d3aba2d94ba73c1 14-Apr-2017 Svet Ganov <svetoslavganov@google.com> Fix NPE in autofill

Test: manual

bug:37330744

Change-Id: I110ece0b9283adb9998f8df795e2107da772482e
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.java
f20a037ba2a6990bb51ad40ee18c7af18464f620 11-Apr-2017 Svet Ganov <svetoslavganov@google.com> Move API for disabling an autofill service to the manager

Test: the topic has a CTS test

bug:37170723

Change-Id: I2be18968ea8df0fd3fb070fe2efc3e811b0e5a76
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
eab62baabf290ea6671577a66cfc9fdd1b145d0e 20-Mar-2017 Philip P. Moltmann <moltmann@google.com> Restore session on new window after app kill

Also:
- Give the session an integer ID as the activityToken is not stable over
restarts of the activity
- Verify that session is only accessed by one UID
- stabilize AccessibilityViewIds over activity lifecycle at least for
the IDs we can do that. This required to split the ID namespace in
"per-app" and "per-activity" views. Only the later ones can be
restored.
- Do not end session when app is killed (as it can be restarted)

Bug: 35484143
Fixes: 36392498
Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases --test=android.autofillservice.cts.SessionLifecycleTest
cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases
Change-Id: I229acc1b3ce35fb57262da7d7466b5d4328b49d4
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
7d5adb5b86a83759c52a3b7aa7bc58beb8ce1c43 07-Apr-2017 Felipe Leme <felipeal@google.com> Autofill Partitioning: support multiple SaveInfos.

Bug: 35707731
Test: CtsAutoFillServiceTestCases (with new tests) pass

Change-Id: I2f234ca13c7e74f84c762473e38f938ed47f216f
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
6f5db9a2a8ecfa6a275d1dd05e734fd4152394f6 07-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't start a partition when session is pending FillResponse authentication." into oc-dev
11d1a392f2f3c1e8bce78336e6bae37a218715dd 06-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Shows a Toast when manual autofill request cannot be fulfilled." into oc-dev
abe54cbf0c09f40f9a8f95d8063326bf9b83da19 06-Apr-2017 Felipe Leme <felipeal@google.com> Don't start a partition when session is pending FillResponse authentication.

BUG: 35707731
Test: fixed testFillResponseAuthBothFields and testFillResponseAuthJustOneField

Change-Id: Ib74e46dd37feb7e5c03e40cfbe8133ace6db0709
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
336531523a782f8d00ac36831eebd2f6f94ffc27 06-Apr-2017 Philip P. Moltmann <moltmann@google.com> Do not show UI when currentID changed.

Test: autofill cts tests (no new failures)
Fixes: 36992897
Change-Id: I0c97a84c034533d07544eb3845ff52cdab107f2a
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
c7ed8c395bfe3f173b54a0dde683a2ce4cb98fa2 06-Apr-2017 Felipe Leme <felipeal@google.com> Shows a Toast when manual autofill request cannot be fulfilled.

Bug: 35708229
Test: manual verification
Change-Id: If4fa6556dd94a805727329f0aebc4b37f548b3a1
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
52d5d3dfc7d4d4b6dfed1686cc904c08d7433a04 04-Apr-2017 Felipe Leme <felipeal@google.com> Pass FillResponse bundle on subsequent onFillRequest() calls.

BUG: 35707731

Test: existing CtsAutoFillServiceTestCases pass
Test: more tests on PartitionedActivityTest

Change-Id: I510aff54d0d9d7e0cce90f9786e3e1f6cab180f9
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.java
f43ca7968fed9fe8862d9b7217c94687dbb12e0a 31-Mar-2017 Felipe Leme <felipeal@google.com> Initial implementation of autofill partitioning.

BUG: 35707731
Test: existing CtsAutoFillServiceTestCases pass
Test: PartitionedActivityTest

Change-Id: If9df5fe63249f0b9e9da058d1c9327dfd3c09cf3
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
78696bfeb7ac5ae298765bfb9f82cf24d12b7dcc 31-Mar-2017 Felipe Leme <felipeal@google.com> Moar pre-partitioning refactoring.

On ViewState: split value into mCurrentValue and mAutofilledValue.
On Session: replacing mAutofilledDataset by mDatasetWaitingAuth and
ViewState.getAutofilledValue() (mAutofilledDataset is still needed,
but will be removed in the first partitioning CL).

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

Bug: 35707731
Test: CtsAutoFillServiceTestCases pass

Change-Id: Icc32701ae3e499a77d99e6ae1daa7d070a3df631
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java
0f9464e1729bbc5a018436244c3ad7bfe69eea6a 30-Mar-2017 Felipe Leme <felipeal@google.com> Refactored ViewState.

- Added an int state.
- Removed mValueChanged and use state.
- Removed unused mAuth
- Set its Fillresponse in the proper places.
- Encapsulated private attributes.
- ...except mId (which is now id).
- Stored only id of current view state on Session.

This refactoring didn't modidy any behavior - in fact, the CTS tests didn't
change - but it will make it much easier to implement partitioning.

BUG: 35707731
Test: CtsAutoFillServiceTestCases pass

Change-Id: Ib07929a4089201a0e5bb66004af91f6cba362ba4
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.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/services/autofill/java/com/android/server/autofill/Session.java
6fa8a07143d1984ff42750079cf596a868644663 27-Mar-2017 Felipe Leme <felipeal@google.com> Moved Session and ViewState to its own classes.

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

Bug: 35707731
Test: CtsAutoFillServiceTestCases pass
Change-Id: I7164598e1ce54dca8cdb8286f65ec4baa926f98d
/frameworks/base/services/autofill/java/com/android/server/autofill/Session.java