• Home
  • History
  • Annotate
  • only in /frameworks/base/services/autofill/java/com/android/server/autofill/
History log of /frameworks/base/services/autofill/java/com/android/server/autofill/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
160b70fa41fdc67c423c235178fde7c481de4cb3 11-Dec-2017 Felipe Leme <felipeal@google.com> Proper autofill fix to let phone process autofill Settings activity.

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

Change-Id: Id29bad2d20b621f7379eb6144c95dcc819949b3d
Merged-In: Id29bad2d20b621f7379eb6144c95dcc819949b3d
(cherry picked from commit 97f16a76db29269619d9a1b45d4cea49026a5b6a)
(cherry picked from commit 92b5d2783a1b97bee476f04754481403839b4e45)
utofillManagerServiceImpl.java
6eb77633d9fc8996f44b36e11a722e3b729c7588 01-Dec-2017 Felipe Leme <felipeal@google.com> Make sure apps cannot forge package name on AssistStructure used for Autofill.

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: Id6036cddb51dd8dd0c9128b7212d573f630d693f
Merged-In: Id6036cddb51dd8dd0c9128b7212d573f630d693f
(cherry picked from commit 23e61a9086a34405e277868474e003b37ed1b711)
utofillManagerService.java
utofillManagerServiceImpl.java
ession.java
7cad2e507fecb502d8bac4e1194bf3153f3c74e6 19-Jan-2018 Felipe Leme <felipeal@google.com> Fixed AUTOFILL_UI_LATENCY metric.

This metric was using the RESERVED_FOR_LOGBUILDER_COUNTER and hence was not
being picked up.

Bug: 71863561
Fixes: 72175011

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

Change-Id: I34f701ff5336a413477fd14172d16d8d1e5403ad
(cherry picked from commit b659adb3f3d13049ca1c08fcec2d419ffd7a386b)
ession.java
6a26e93c750623ab5e8d3f16a21a3d5725d1bf5b 26-Sep-2017 Felipe Leme <felipeal@google.com> Re-add callback to onCancel() when screen is touched outside Save UI.

That callback was accidentally removed because it should not trigger the
negative listener, but the right approach was to pass a null listener.

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

Bug: 66235266
Fixes: 66944844

Change-Id: I5b71d3d03335d952e3b47078d1373f9783366437
i/SaveUi.java
021b878a23d4a42eca927161dab0acbc6b0ece12 22-Sep-2017 Felipe Leme <felipeal@google.com> Logs how long it took to show the Autofill UI after a field was focused.

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

Bug: 65376559
Bug: 66508098

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

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

Bug: 65376559
Bug: 65856399

Change-Id: Ieb54bb0a58ecd51da663170a12817d33188ac9f0
utofillManagerServiceImpl.java
e8041834b1de4322456c40436240650482217bc9 21-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Only call negative listener when SaveUI is dismissed by tapping button." into oc-mr1-dev
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
utofillManagerService.java
utofillManagerServiceImpl.java
ession.java
i/SaveUi.java
620a6ceddeee8154f9a279f2d045d08e9f55658b 21-Sep-2017 Felipe Leme <felipeal@google.com> Only call negative listener when SaveUI is dismissed by tapping button.

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

Fixes: 66235266

Change-Id: Ieb3085b64e96ccbd3dd97fca58fcb9d4930c82fa
i/SaveUi.java
5488a38465d4188eb78f69886bbeb9f161a5ca05 20-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Handle autofill auth scenarios where the FillContext cannot be retrieved:" into oc-mr1-dev
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
ession.java
e15b1c953f989dfa7c9b504dc1f8676f551a8a2f 19-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed padding of autofill service icon on Save affordance." into oc-mr1-dev
f73795f92689d1ab0e341bd5b8af8c5a44f8a2c4 18-Sep-2017 Felipe Leme <felipeal@google.com> Handle autofill auth scenarios where the FillContext cannot be retrieved:

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

Fixes: 65374274

Change-Id: Ica482a48b0be34b89e36f9a34078fdcd48134537
utofillManagerServiceImpl.java
emoteFillService.java
ession.java
i/AutoFillUI.java
fed6c6fa9682404e75fdee353516acacfcc86fc2 16-Sep-2017 Felipe Leme <felipeal@google.com> Fixed padding of autofill service icon on Save affordance.

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

Fixes: 65739885

Change-Id: Ia2b63750665eefd36143074c4cf0e1310de056b2
i/SaveUi.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
utofillManagerService.java
utofillManagerServiceImpl.java
elper.java
ession.java
i/AutoFillUI.java
i/SaveUi.java
e11139c73d234efdd672a91830b09c92f6120d5e 09-Sep-2017 Felipe Leme <felipeal@google.com> Show Autofill Service icon on Save UI.

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

Bug: 65465974

Change-Id: Ic495be94763dda1de0edced3f9371190d09783ef
utofillManagerServiceImpl.java
ession.java
i/AutoFillUI.java
i/SaveUi.java
627cc3c7ae03d46f775a0e681034c38ad0867bd7 09-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't log TYPE_DATASET_SELECTED on dataset authentication." into oc-mr1-dev
415c7aadd049d42082e026a30a1f62ee9c4b50dc 09-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Destroy Save UI when it's hidden without a pending restoration." into oc-mr1-dev
09545e3fa720eece97939e0cb1677f39ac2fade4 09-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added more logging to diagnose a racy runtime restart." into oc-mr1-dev
838ba3dbbd0753b3bbf7cff6232e57c488cfdf2d 08-Sep-2017 Felipe Leme <felipeal@google.com> Destroy Save UI when it's hidden without a pending restoration.

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

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

Merged-In: I07c6d9b6d219889c50caeaff99b883841b87d9cc
Change-Id: I07c6d9b6d219889c50caeaff99b883841b87d9cc
utofillManagerServiceImpl.java
ession.java
i/AutoFillUI.java
i/PendingUi.java
i/SaveUi.java
30d6df451456327665a5c908b8d30e3e71c65699 08-Sep-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add pseudo-filtering on authenticated views." into oc-mr1-dev
63f7906c1de0f4c88e2a3c6034666dc9cf35a3a7 06-Sep-2017 Felipe Leme <felipeal@google.com> Don't log TYPE_DATASET_SELECTED on dataset authentication.

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

Bug: 65007529
Fixes: 65403592

Merged-In: I98f1198cbe1836c8154b73a1227be4f6947abc19
Change-Id: I98f1198cbe1836c8154b73a1227be4f6947abc19
utofillManagerServiceImpl.java
ession.java
8fa5f5e7dfbf99807ac030a9c59333453c0d59db 07-Sep-2017 Felipe Leme <felipeal@google.com> Added more logging to diagnose a racy runtime restart.

Also fixed a possible NPE on saveLocked() and improved locking.

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

Merged-Id: I4b8368a9d19b4b4da76533dadb013ff2e2922955
Change-Id: I4b8368a9d19b4b4da76533dadb013ff2e2922955
emoteFillService.java
ession.java
d56a49785fe6357991aa7edc708bbf6c339ce85d 07-Sep-2017 Felipe Leme <felipeal@google.com> Add pseudo-filtering on authenticated views.

When the autofill UI is shown for an authenticated FillResponse or Dataset and
the user types something, it should be filtered as if the matched failed.

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

Fixes: 65415443

Change-Id: I6a6b5af369e4e5a9cea49ae124dc517dbe5c70be
i/FillUi.java
b0a4057d44c6bde829a1c45f3d7cb92aab8a489b 05-Sep-2017 Felipe Leme <felipeal@google.com> Finishes the session when the service returns a null response on authentication.

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

Fixes: 64985246

Change-Id: Id9a4b9f1752dcee6c67ac659b9dbd6dd1dd7b43c
ession.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
utofillManagerService.java
utofillManagerServiceImpl.java
ession.java
i/AutoFillUI.java
i/PendingUi.java
i/SaveUi.java
60b765b707a88a97d7f8aed76b5ea753601cb1ff 16-Aug-2017 Felipe Leme <felipeal@google.com> Fixed synchronization when calling cancellation signal.

Test: none for this particular issue, but CtsAutoFillServiceTestCases pass

Bug: 64759228

Change-Id: Ifaf0082de55ddb5446af134e190c89f7e10bf1fe
emoteFillService.java
fac2141f4e18cc6fd5e5e6023754e4e9131255d3 17-Aug-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed NPE when cancellation signal is null." into oc-mr1-dev
10d176009d7b0bc6758e40089b3cc50df7bdbe3d 17-Aug-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revert "Dismiss Autofill Save UI when a new Activity is launched."" into oc-mr1-dev
ec63b7d0e11ed396e28cbd8352277c2d7f682cba 16-Aug-2017 Felipe Leme <felipeal@google.com> Fixed NPE when cancellation signal is null.

Test: none for this particular issue, but CtsAutoFillServiceTestCases pass
Fixes: 64759228

Change-Id: I34170440ac388ec6ba7ed5632dc38543a84d0327
emoteFillService.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
utofillManagerService.java
utofillManagerServiceImpl.java
7876b630be79e5bdec60df582c1792efaa28f098 17-Aug-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I768830f5,I665bde3a into oc-mr1-dev

* changes:
Removed redundant [X] icon used to close Autofill Save UI.
Re-added outer layout on Autofill Save UI that was accidentally removed.
05e435cfd19cee15c463111b63d677aa3b77fb1e 15-Aug-2017 Felipe Leme <felipeal@google.com> Removed redundant [X] icon used to close Autofill Save UI.

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

Fixes: 64694706

Change-Id: I768830f56db1814aecb82b94cebb9100dd47dd50
i/SaveUi.java
6ba128762f3abfc54b5812e09d0b693bdfc21e66 16-Aug-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Calls CancellationSignal when onFillRequest() times out." into oc-mr1-dev
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
utofillManagerService.java
utofillManagerServiceImpl.java
052562c40fcf113ff854556a3ec73170ec9165d6 27-Jul-2017 Felipe Leme <felipeal@google.com> Calls CancellationSignal when onFillRequest() times out.

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

Fixes: 64034169

Change-Id: I501653405e8244543a4c27f736bacfa23d22e6f7
emoteFillService.java
cb96f3915525b4122e44f325bb477bcc72ff2d40 26-Jul-2017 Felipe Leme <felipeal@google.com> Uses ParceledListSlice to allow larger number of datasets.

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

Fixes: 63669555

Change-Id: If0847da3bafa1bfd80ee8925e17aace82010aec9
ession.java
e802d18f49c7dcc9cbe77df693c4d4fc3a44da65 27-Jul-2017 Felipe Leme <felipeal@google.com> Merge "Don't show Save UI when values filled by user belong to a dataset." into oc-mr1-dev
2790352cd4968d62519704d5d505c8f416be1b9f 27-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added sliding motion / animation to Autofill Save UI." into oc-mr1-dev
db3c4ee787aa672bb754b2adb5182157ee516c05 27-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Checks if mResponses is null before using it." into oc-mr1-dev
7641443f4b0de555ed5b92f10abb003e592b41d1 27-Jul-2017 Felipe Leme <felipeal@google.com> Added sliding motion / animation to Autofill Save UI.

Test: manual observation
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases
Fixes: 63680769

Change-Id: I62122733bb0e4b09de3347b091e27e60fbc51333
i/SaveUi.java
d0b18d665ff8a42ccdc46be7a2382c67476c3c7b 25-Jul-2017 Felipe Leme <felipeal@google.com> Don't show Save UI when values filled by user belong to a dataset.

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

Fixes: 63068654

Change-Id: Ia9c42d57b0e7c316bfd3c0ee29816db18ac478c1
elper.java
ession.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
ession.java
325a0b04b59e5fa3f3c2919075465938797d4a3f 24-Jul-2017 Felipe Leme <felipeal@google.com> DO NOT MERGE - Wraps custom save subtitle on ScrollView.

(cherrypick from Ided12e8dbce2c3d80c7db8f167109ed9108c904b)

Test: CtsAutoFillServiceTestCases pass
Test: manual verification

Change-Id: Ida44970d68755423cb080f4c562ddcdec90efa6f
Fixes: 62534917
i/CustomScrollView.java
i/SaveUi.java
7f9ca12b9a2e32e1b85a1873467c38378292dfd2 19-Jul-2017 Felipe Leme <felipeal@google.com> Support list type on CustomDescription.

Test: CtsAutoFillServiceTestCases pass
Test: CheckoutActivityTest.testCustomizedSaveUi

Bug: 62534917

Change-Id: I43dbd92a0db9d76b59328f74519147c952c6ab37
ession.java
7fc29dd9311cc36c3eb2a6a05aeed2d39ddcc604 17-Jul-2017 Felipe Leme <felipeal@google.com> Changed SaveInfo so it supports just optional ids.

Test: existing CtsAutoFillServiceTestCases pass
Test: new tests on LoginActivityTest pass
Test: new SaveInfoTest pass

Fixes: 38044993

Change-Id: Iefcf9610b27361585444157616325e9e9a89158f
ession.java
i/SaveUi.java
b078212a1eb33d68f821b2aae0b18004e0c7c17e 14-Jul-2017 Felipe Leme <felipeal@google.com> Don't log content of Autofill filter, since it could contain PII.

Test: manual verification
Fixes: 63680114

Change-Id: I92dcb88df6b577ee2f7a4065e8f9b14ba01ba3fb
i/AutoFillUI.java
i/FillUi.java
d16aeddbd197701b387dcedf2719b7cd09455bfc 13-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Make CustomDescription safe against crashes"
3858aa67365ad574ee474edc68e2e82d4d8c6081 12-Jul-2017 Philip P. Moltmann <moltmann@google.com> Make CustomDescription safe against crashes

... And allow users of the public APIs use Transformations.

Test: bit CtsAutoFillServiceTestCases:.CustomDescriptionTest
Bug: 62534917
Change-Id: I6b7b7d5e343e78f2f0381303451e08bb16c5c3e6
i/SaveUi.java
0e3e6f8274b9d4c1c9646a1d39aed6a9f8a6a28d 12-Jul-2017 Philip P. Moltmann <moltmann@google.com> Handle failures in validators

Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases
--test=android.autofillservice.cts.ValidatorTest
Bug: 62534917

Change-Id: I3aad06cd2e8b6caf7238e420727aca0cb3703bc5
ession.java
6d1d82289497c46989041a293551aec2b7875a87 12-Jul-2017 Svet Ganov <svetoslavganov@google.com> Merge "Avoid a race in autofill manager service." into oc-dr1-dev am: d622be1754
am: 55fbe549d5

Change-Id: If651c4d88017c439432dd93b21944fc43a36dfe3
dfa1a47f22a017f99f1eb2146c8b54c91900c778 05-Jul-2017 Svet Ganov <svetoslavganov@google.com> Avoid a race in autofill manager service.

Test: manual

bug:63205660

Change-Id: Ie895666da1584e735f7aa7ee9208ea97becb921b
ession.java
ee39d54a8d6ea1d6515191ed5fef549fecaaacee 29-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Initial implementation of the new Save APIs."
979013d027d828f404e71f48b88403e562ccbc7b 22-Jun-2017 Felipe Leme <felipeal@google.com> Initial implementation of the new Save APIs.

Test: manual verification with sample app (CTS tests coming later)

Bug: 62534917

Change-Id: I085a9c933bb5e8316d673976e059e13abd7098e5
emoteFillService.java
ession.java
i/AutoFillUI.java
i/SaveUi.java
e683f19c4939ce683c7a7d6fe4286b16e372324f 23-Jun-2017 Philip P. Moltmann <moltmann@google.com> Allow ALL_USERS in setUserRestrictionForUser

This will be used e.g. by the permission granting UI.

Fixes: 35612487
Test: 1. Installed facebook messanger and enabled chat-heads in private
profile
2. Opened work-profile camera which asks for location
permission
3. Chat head disappered during permission check
4. Chat head re-appeared after permission check

Change-Id: Ie9a5e5379c20972f34945c9cb062cd8e3df483d4
i/OverlayControl.java
705f300413ebc6beb2c09877439766121fcac4c0 22-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Flush out existing sessions when the Autofill service is changed."
2f0d1324715ca1fdd6c4ab6c0f7f1c3c9c489503 22-Jun-2017 Felipe Leme <felipeal@google.com> Autofill fixes for secondary users:

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

Test: manual verification
Change-Id: I4e9167314f1feeda618db6c57735cc31d84486c1
Fixes: 62828906
utofillManagerService.java
utofillManagerServiceImpl.java
i/SaveUi.java
6a6cd3fa38c515abec602ea05d15efc8f22fcc71 22-Jun-2017 Felipe Leme <felipeal@google.com> Flush out existing sessions when the Autofill service is changed.

Test: LoginActivityTest.testPopupGoesAwayWhenServiceIsChanged

Fixes: 62836529

Change-Id: I9e6fb368f8c2b723668fbcb5ccb57d519ee149f8
utofillManagerService.java
d013bcea9713d178627cc1d3e8a0f291ccbcd293 21-Jun-2017 Felipe Leme <felipeal@google.com> Don't add FillEventHistory events to the wrong session.

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

Test: existing CtsAutoFillServiceTestCases pass
Test: LoginActivityTest.checkFillSelectionFromPreviousSessionIsDiscarded

Fixes: 62802026

Change-Id: I447ed77c2167095867b35d616b5cf2ae43aa28db
utofillManagerServiceImpl.java
ession.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
utofillManagerServiceImpl.java
emoteFillService.java
ession.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
ession.java
0541862ec5642257a81edafd9602570fca7c30f8 09-Jun-2017 Svetoslav Ganov <svetoslavganov@google.com> Merge "Protect autofill UI against redressing" into oc-dev
2ee821b6757ffc07b474c254b50e3d45e774172f 09-Jun-2017 Svetoslav Ganov <svetoslavganov@google.com> Protect autofill UI against redressing

Test: LoginActivityTest#testAutoFillOneDatasetAndSaveHidingOverlays

bug:62357517

Change-Id: Idcac67e1013178ba6c0d83994d49f8b485b2d334
i/AutoFillUI.java
i/FillUi.java
i/OverlayControl.java
i/SaveUi.java
5f97880714e0ee2c503bca0d7681e896c53386b0 08-Jun-2017 Felipe Leme <felipeal@google.com> Closes Autofill UIs when back button is pressed.

Test: existing CtsAutoFillServiceTestCases pass
Test: LoginActivityTest#testSaveGoesAwayWhenTappingBackButton pass

Fixes: 62272098

Change-Id: Id34767ca32836f040e04790f0f2935ae49d88d71
utofillManagerService.java
72f2d98c5ae702d3c33ea4ea3fd8998aef197642 07-Jun-2017 Felipe Leme <felipeal@google.com> Merge "Fixed autofill filter comparison." into oc-dev
be4420cf13e6f92d8ff324b43dbda9fb3adae755 07-Jun-2017 Felipe Leme <felipeal@google.com> Merge "Improved debug to diagnose Save issues." into oc-dev
2e723982d525bc6e7516eb1aecdfc861660f1f7b 07-Jun-2017 Felipe Leme <felipeal@google.com> Merge "Use initial value on save when value didn't change." into oc-dev
b372c74e88352c47dae3d531cc26f69edcb2b062 06-Jun-2017 Felipe Leme <felipeal@google.com> Fixed autofill filter comparison.

Test: existing CtsAutoFillServiceTestCases pass
Test: filterTextDifferentPrefixes() pass

Fixes: 62377334

Change-Id: I9edaf500adad7e5775994a838410c3f8f6af2b1a
i/FillUi.java
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
ession.java
iewState.java
a844927cb60e0d1d7836ca0478ed16671625a58e 03-Jun-2017 Felipe Leme <felipeal@google.com> Improved debug to diagnose Save issues.

Test: manual verification
Bug: 62272098

Change-Id: Id7a6765fbe4228fcabb6cc0df37c5fde102d7077
ession.java
i/AutoFillUI.java
i/SaveUi.java
876377d0b20eb3d64c86ad461562f005b9f0b6d3 02-Jun-2017 Felipe Leme <felipeal@google.com> Catch WindowManager exceptions so they don't crash the system.

WindowManager throws an IllegalStateException when adding a view twice; this
should never happen (since show() and hide() are always called in the UIThread),
but when it does, it should not crash the system.

Test: existing CtsAutoFillServiceTestCases pass
Fixes: 62262781

Change-Id: Idfd246ff173f4abb606865b7ba8cc367eb6acaad
i/FillUi.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
utofillManagerServiceImpl.java
ession.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
ession.java
iewState.java
i/FillUi.java
350b2dca6c252dad099bc8e2d96cbffd6e98dfef 26-May-2017 Felipe Leme <felipeal@google.com> Disable autofill while user setup is not completed.

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

Fixes: 62049772

Change-Id: I1e914c44062755f8c88656482338e76aeaafd543
utofillManagerService.java
utofillManagerServiceImpl.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
ession.java
iewState.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
ession.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
elper.java
ession.java
54ddf4a4e266ab544f43516c2ebb6cf2a8e6c7f1 14-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed and improved (for reuse) PendingRequest lifecycle." into oc-dev
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
utofillManagerService.java
utofillManagerServiceImpl.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
ession.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
utofillManagerService.java
ession.java
i/AutoFillUI.java
205d420c683af8b955b81f392e07b78a16c50306 12-May-2017 Felipe Leme <felipeal@google.com> Fixed and improved (for reuse) PendingRequest lifecycle.

Fixes: 38173625
Test: android.autofillservice.cts.MultipleFragmentLoginTest#loginOnTwoFragments

Change-Id: Ic9ba3cb51048296384d42670cc71db78a0e8fcf6
emoteFillService.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
203ec51e2b0acc8dd4da0a2c0095057434123795 12-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Decrease default number of partitions from 64 to 10." into oc-dev
208711a1e4ec380c9c9ac76489b504761ad3cfa3 11-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Ensure remote calls to a fill service timeout." 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
ession.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
utofillManagerServiceImpl.java
ession.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
utofillManagerService.java
utofillManagerServiceShellCommand.java
elper.java
ession.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
elper.java
ession.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
utofillManagerService.java
ession.java
8bf4c8e2405bc750e00a746eb1610e04f211d4d0 10-May-2017 Svet Ganov <svetoslavganov@google.com> Ensure remote calls to a fill service timeout.

Test: manual

bug:38033547

Change-Id: Ic035b7cd8da0c16fbc80257d6dc3f0c91f0e28b9
emoteFillService.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
utofillManagerService.java
utofillManagerServiceImpl.java
ession.java
iewState.java
i/AutoFillUI.java
i/FillUi.java
f512575c683ff0b35b810dae1b39d8674e43e702 09-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I7c2c9411,Ibc72c84d,Ib3968644 into oc-dev

* changes:
No need to deal with windowTokens
Persistable accessibility ID from ContextWrappers
Check callbacks when operting on UI
370b040cf9e111dcb72e49e4ab4a1eaebb3f2fc2 08-May-2017 Felipe Leme <felipeal@google.com> Merge "Fixed placemente of Autofill UI for virtual views." into oc-dev
85548127a310bff684461ccd256d5e33ef2fd194 08-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Properly measure dataset presentations" into oc-dev
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
utofillManagerService.java
utofillManagerServiceImpl.java
ession.java
i/AutoFillUI.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
utofillManagerService.java
ession.java
i/AutoFillUI.java
1c38d29482f1c733a595fcfbeeafecda775f30ad 08-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed scenario where an authentication response has no dataset." into oc-dev
2e3b0c11c3290ff0a31d562a4c192fe3536c2cd8 06-May-2017 Svetoslav Ganov <svetoslavganov@google.com> Properly measure dataset presentations

Test: Autofill CTS tests pass

bug:37952199

Change-Id: Iaae714dd483ba44d5c7668b6fc7d386901b9d95c
i/FillUi.java
6bfcc82a4bd1a755d747de1dceae9bf51c61fd67 07-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Only clear state for force stopped fill service" into oc-dev
f37ba7496feeadcfc7268a5363a533fd06ba838a 07-May-2017 Svet Ganov <svetoslavganov@google.com> Only clear state for force stopped fill service

Test: manual

bug:37785814

Change-Id: I5e40a284788bacf1ebae5ddefffb93b1a5b47d39
utofillManagerService.java
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
elper.java
ession.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
utofillManagerServiceImpl.java
ession.java
i/AutoFillUI.java
4745fb6b29322819fdcd21647253bfed8e508137 05-May-2017 Felipe Leme <felipeal@google.com> Fixed placemente of Autofill UI for virtual views.

The PopupWindow anchoring offset should be based on the bottom of the anchor
view, but we were using top. Hence, the PopupWindow.tryFitVertical() was
failing to place it above the view in some cases, even when there was plenty
of space.

Fixes: 37991460
Test: manual verification with virtual view sample
Test: CtsAutoFillServiceTestCases pass

Change-Id: Iffdfe0d7858e865192338184d63bf5b93ba7108f
i/FillUi.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
utofillManagerService.java
ession.java
i/AutoFillUI.java
i/FillUi.java
i/SaveUi.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
elper.java
ession.java
iewState.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
ession.java
c0851e72a5864fde0af699b85d19419ed7bc5e67 02-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Make auth fill UI size sane size" into oc-dev
640a135e8abdd49de3bf43f7c1c7d882406b0bc1 02-May-2017 Svetoslav Ganov <svetoslavganov@google.com> Make auth fill UI size sane size

Now the width and height are capped to 0.9 of the screen
dimensions. The height is also adjusted as needed by the
popup window positioning logic.

Test: manual

bug:36660292
Change-Id: I54d032f4e9b9b8fae6f98846c470a1455babcb68
i/FillUi.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
utofillManagerService.java
ession.java
iewState.java
b4ff3bbdb1957b5ebe0f0c6ff8a8a942145cabf8 28-Apr-2017 Philip P. Moltmann <moltmann@google.com> Apply proper theme to SaveUi

Bug: 37754078
Test: Started SaveUI on angler and marlin. angler was green, marlin was
blue
Change-Id: I1b2f07269d3df3949344672f23329ea735c22a94
utofillManagerService.java
i/SaveUi.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
ession.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
utofillManagerService.java
utofillManagerServiceImpl.java
utofillManagerServiceShellCommand.java
elper.java
emoteFillService.java
ession.java
iewState.java
i/AutoFillUI.java
i/FillUi.java
i/Helper.java
i/SaveUi.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
utofillManagerService.java
utofillManagerServiceImpl.java
emoteFillService.java
ession.java
iewState.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
ession.java
8abf3cbe1aaffbd81748f5989cac00fe7100087c 27-Apr-2017 Philip P. Moltmann <moltmann@google.com> Fix LoginActivityTest#testIsServiceEnabled

Test: CtsAutoFillServiceTestCases
Change-Id: I584fb1bf72cbb233a4b3280f3bce47d02dee933c
Fixes: 37728979
utofillManagerService.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
ession.java
d915c42150b53c60b78354531f980a7e5766d6eb 27-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Autofill binding permission fixes." into oc-dev
48f10a2ab53e415f34d86ac717b4f6412dfc824f 27-Apr-2017 Svet Ganov <svetoslavganov@google.com> Handle package changes in autofill manager service

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

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

bug:36638606
bug:36978445

Change-Id: Idd47891774ba2a4e562a1952cbb5a048211fd4e3
utofillManagerService.java
utofillManagerServiceImpl.java
ession.java
decd887f012f0c39bba855c8878eb5d8255595c4 27-Apr-2017 Felipe Leme <felipeal@google.com> Autofill binding permission fixes.

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

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

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

Change-Id: If3abdcb0ae850f0a327bfdbb9ca6c44a24823047
utofillManagerServiceImpl.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
utofillManagerService.java
utofillManagerServiceShellCommand.java
dc6cccb905d77b1fd954c883e4369e7b401cb457 25-Apr-2017 Svetoslav Ganov <svetoslavganov@google.com> Get rid of custom negaitve save button label

Removed the ability for an autofill provider to set
a custom string for the negative button. Also make
the old hidden APIs non-abstract to avoid runime
crashes for unimplemented methods.

Test: CtsAutoFillServiceTestCases pass

bug:37649790

Change-Id: If776d26de48382eeb064bdead5d4d5fdb0ff2e7e
i/SaveUi.java
121e526476fb226cabf400c55a0bbfdd0781e772 25-Apr-2017 Philip P. Moltmann <moltmann@google.com> Return all previous FillContexts onFill

Test: CtsAutoFillServiceTestCases
Fixes: 37673341
Change-Id: I80feb5bd8d6027fb4ec2dd32f5c486dae7c6bc4c
ession.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
emoteFillService.java
ession.java
i/AutoFillUI.java
fc513f98d7086605e9b3499d90a88d3b4592c2b6 25-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added APIs that let AutofillService implementations set themselves as such." into oc-dev
db041188bc9ca03bed3c14a7ca1b3eb9524a9287 22-Apr-2017 Felipe Leme <felipeal@google.com> Added APIs that let AutofillService implementations set themselves as such.

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

Change-Id: I6fd61f8a2826dbf6b6fce831f3deadf6df025386
utofillManagerService.java
utofillManagerServiceImpl.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
utofillManagerServiceImpl.java
elper.java
emoteFillService.java
ession.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
utofillManagerService.java
utofillManagerServiceImpl.java
elper.java
ession.java
iewState.java
i/FillUi.java
05204cb7751ea270ce82d7ffd0ac9a16cefb68fa 22-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added accessibility type on Autofill save dialog." into oc-dev
ede054a73e8b4834ec56a8ffe58f0808b53ee7e1 21-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fine tune the Autofill Save UI" into oc-dev
56d86dd775b7239db9b2289bf1994b3dc2924d61 21-Apr-2017 Felipe Leme <felipeal@google.com> Added accessibility type on Autofill save dialog.

Fixes: 34219631
Test: CtsAutoFillServiceTestCases pass

Change-Id: I19087c57268c05004df91e4262a17db3743947e6
i/SaveUi.java
ab8238e23316cbb6f7f2ff2da44c172960057388 21-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't trigger new partition on fields from SaveInfo" into oc-dev
bb21986b33d4ca26c655c3b659681412e3a8ddfe 21-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Implemented FillResponse.setIgnoredIds()." 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
ession.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
ession.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
utofillManagerServiceImpl.java
ession.java
c530c9dae4ddf55f35dd5e99798e3c9eb3b023ec 18-Apr-2017 Philip P. Moltmann <moltmann@google.com> Fine tune the Autofill Save UI

Test: Looked at UI, CtsAutofillTestCases
Fixes: 37417692
Change-Id: Iee2cc5ceb99dd71cc43f55af7299d488b35234e6
i/SaveUi.java
42775f2a8990c0e599fbfe5b187467f1764c6b75 19-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add a way to read the last AutofillSelection." into oc-dev
fad9b07e316c1d472cca3337d0e3b247d912ed90 19-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Clone autofill service settings on managed profile." into oc-dev
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
utofillManagerService.java
utofillManagerServiceImpl.java
emoteFillService.java
ession.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
aa00896b8dda3b73e8ce73b5caa9308af7e89fa8 18-Apr-2017 Felipe Leme <felipeal@google.com> Clone autofill service settings on managed profile.

Test: manual verification
Change-Id: I9d13e4230265b18444bfd30fd403c5fb98b88159
Fixes: 37351722
utofillManagerService.java
9023d14fb30c23ef58171a5133f893b2ee4e743c 18-Apr-2017 Philip P. Moltmann <moltmann@google.com> Change saveOnAllViewsInsible from boolean to flags

Change-Id: Ibd6f283479bad841eb7b20bb8d006562c4398e9f
Fixes: 35708237
Test: CtsAutoFillServiceTestCases
ession.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
ession.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
ession.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
utofillManagerServiceImpl.java
emoteFillService.java
ession.java
i/AutoFillUI.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
ession.java
833c68e9fd47e8e8ad2e93683d3aba2d94ba73c1 14-Apr-2017 Svet Ganov <svetoslavganov@google.com> Fix NPE in autofill

Test: manual

bug:37330744

Change-Id: I110ece0b9283adb9998f8df795e2107da772482e
ession.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
ession.java
i/AutoFillUI.java
i/FillUi.java
19ffd1d0a597385075cef7a436364e8b7aa083f4 12-Apr-2017 Svet Ganov <svetoslavganov@google.com> Fill UI polish

1. Avoid jank when the suggesting list scrolled

2. Remove hard-coded values from max popup height

3. UX requested tweaks

4. Remove dead code

Test: manual

bug:37245055
bug:37179467

Change-Id: I6a6760edb06230e3d4925e23863667cfd3ac0601
i/AutoFillUI.java
i/FillUi.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
utofillManagerService.java
utofillManagerServiceImpl.java
emoteFillService.java
ession.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
utofillManagerService.java
utofillManagerServiceImpl.java
ession.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
ession.java
i/SaveUi.java
53b6f00dc5c5664c49e0ce615dcc0665fcabb26b 07-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Who wants...to live...forever? The "Save for Autofill?" dialog does!" into oc-dev
db5f6c00a45a9d31128e48d48997a29d3f4650d8 07-Apr-2017 Felipe Leme <felipeal@google.com> Who wants...to live...forever? The "Save for Autofill?" dialog does!

Fixes: 37083017
Test: manual verification
Test: CtsAutoFillServiceTestCases pass

Change-Id: Id177fb59810956e4b43c1d357de415d64ab9d89a
utofillManagerService.java
utofillManagerServiceShellCommand.java
i/AutoFillUI.java
i/SaveUi.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
ession.java
iewState.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
ession.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
ession.java
i/AutoFillUI.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
utofillManagerServiceImpl.java
ession.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
ession.java
iewState.java
aaca304a31ed260e4cca256a28805f71aa2e4ee9 06-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Created SaveInfo types for email and username." into oc-dev
98d5c7f6b02a9e4fabce52549f4aab995a67eaa4 05-Apr-2017 Felipe Leme <felipeal@google.com> Dump autofill service component from settings.

Bug: 36978445
Test: manual verification

Change-Id: I30992452c94a78c05a5a98e94d5ffc5325151a76
utofillManagerServiceImpl.java
24bac614986e0fe8892c5ef36e4b6e516fd01d0b 05-Apr-2017 Felipe Leme <felipeal@google.com> Merge "Temporarily hardcoded dimensions of autofill authentication UI." into oc-dev
045c71f1be06b89614102420b47d9184055cd190 05-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Adds a config for default autofill service." into oc-dev
0962262f42e3636270689100e1bb90b8f3cf6d77 04-Apr-2017 Felipe Leme <felipeal@google.com> Created SaveInfo types for email and username.

Bug: 35707731
Test: LoginActivityTest#testCustomizedSaveUsername
Test: LoginActivityTest#testCustomizedSaveEmailAddress
Change-Id: I3598c64e4f6bb9ceff544c3994d6cdeebd760a85
i/SaveUi.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
utofillManagerServiceImpl.java
ession.java
iewState.java
a759c03606c3f5565a2a97a81ac56e0b3a1e91bf 04-Apr-2017 Felipe Leme <felipeal@google.com> Temporarily hardcoded dimensions of autofill authentication UI.

Bug: 36660292
Test: manual verification
Change-Id: I2d354868a656a2b405a0e7aefb551e380e5fa7e0
i/FillUi.java
ff35509ee9ef89f42607d1424fa6b4df8de98a90 03-Apr-2017 Felipe Leme <felipeal@google.com> Adds a config for default autofill service.

Change-Id: I4d2d8637617439c5df3f62426e9bc45a78edc2e3
Fixes: 35708268
Bug: 36790693
Test: manual verification
utofillManagerService.java
utofillManagerServiceImpl.java
7c6e8e6c00d36f2c232c6c30ba8373a5ab665d5c 03-Apr-2017 Felipe Leme <felipeal@google.com> Fixed NPE when FillService replies with a null FillResponse.

This problem was not detected by CTS tests because the exception is
"harmless" (it's just ignored), but it can be verified at logcat:

W Binder : Caught a RuntimeException from the binder stub implementation.
W Binder : java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.IntentSender android.service.autofill.FillResponse.getAuthentication()' on a null object reference
W Binder : at com.android.server.autofill.ViewState.maybeCallOnFillReady(ViewState.java:159)

Bug: 35707731
Test: CtsAutoFillServiceTestCases pass
Test: manual verification
Change-Id: I58330a7e91b2c186bf97897b7d39640010ca630b
iewState.java
fe9a53bc45fd0124a876dc0a49680aaf86641d3e 31-Mar-2017 Jeff Sharkey <jsharkey@android.com> Consistent dump() permission checking.

This change introduces new methods on DumpUtils that can check if the
caller has DUMP and/or PACKAGE_USAGE_STATS access. It then moves all
existing dump() methods to use these checks so that we emit
consistent error messages.

Test: cts-tradefed run commandAndExit cts-dev -m CtsSecurityTestCases -t android.security.cts.ServicePermissionsTest
Bug: 32806790
Change-Id: Iaff6b9506818ee082b1e169c89ebe1001b3bfeca
utofillManagerService.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
elper.java
ession.java
iewState.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
ession.java
iewState.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
ession.java
i/AutoFillUI.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
utofillManagerServiceImpl.java
ession.java
iewState.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
utofillManagerService.java
utofillManagerServiceImpl.java
emoteFillService.java
i/AutoFillUI.java
i/FillUi.java
81b034d4f83998b15ef94aa0c4b7c33d06b34606 24-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added shadow to RemoteViews used by authentication requests."
60785880083405f4751c47882d8df570b7a82e69 23-Mar-2017 Felipe Leme <felipeal@google.com> Temporarily ignore RuntimeException when displaying the UI.

Change-Id: Ia01f9204736418a8f1e5027aef755d0855feab04
Fixes: 36392498
Test: manual verification by forcing an exception
i/AutoFillUI.java
i/FillUi.java
17b3afcb7efd547f151e9713c059ffdff29b31e7 24-Mar-2017 Felipe Leme <felipeal@google.com> Added shadow to RemoteViews used by authentication requests.

Also removed obsolete autofill symbols and dimensions.

Fixes: 36492836
Bug: 36569941

Test: visual verification
Test: CtsAutoFillServiceTestCases pass

Change-Id: Id8169358bf426af5d70a82fa315e92304d06c159
i/FillUi.java
24d5893b25ce62b7bc9ed9f35fa72b9d47f23cdd 21-Mar-2017 Felipe Leme <felipeal@google.com> Added a UserManager.DISALLOW_AUTOFILL restriction.

bug: 35710740

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

Change-Id: I41b2bf9fe3bc8df627c6650960bd11346c430a7e
utofillManagerService.java
utofillManagerServiceImpl.java
elper.java
a94c527736c62dba6224b9bc6f41f735f8c79df7 22-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Autofill a manual request directly when it only has one dataset."
f7a7bb6b50cda0d292e55e900f70166e9a1fd6ed 21-Mar-2017 Felipe Leme <felipeal@google.com> Autofill a manual request directly when it only has one dataset.

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

Bug: 35708229
Test: LoginActivityTest pass
Test: manual verification
Change-Id: I7aa60ab5df60decaf49d617bf3e9fcf3ab0074fa
utofillManagerServiceImpl.java
5311206f3434d631c6ea81ab2e76a46ca18119b6 20-Mar-2017 Felipe Leme <felipeal@google.com> Add custom presentation (RemoteViews) on Dataset values.

New tests on LoginActivityTest:

- testAutofillOneDatasetCustomPresentation()
- testAutofillMultipleDatasetsCustomPresentations()
- testAutofillMultipleDatasetsCustomPresentationSameFields()
- testAutofillMultipleDatasetsCustomPresentationFirstDatasetMissingSecondField()
- testAutofillMultipleDatasetsCustomPresentationSecondDatasetMissingFirstField()

Fixes: 36067706
Test: CtsAutoFillServiceTestCases pass

Change-Id: Iacb660bf5a5cf311dea4bfcbfe1b3722aab34715
i/FillUi.java
d66c84fa1ae6d04b47cbeab5f5cd3240f73780b2 18-Mar-2017 Felipe Leme <felipeal@google.com> Removed redundant call to session.removeSelf()

Bug: 35721501
Test: CtsAutoFillServiceTestCases pass
Change-Id: I625c08bd8f9f673892387c703082c3eb5b2fd48d
utofillManagerServiceImpl.java
emoteFillService.java
4bb2ccca8d96871b74825e57e215fe05ce29d144 17-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed cancel() and commit():"
b096e588116bea15b1e0ad889cd69bbc78c4cb0f 17-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Sets accessibility title for autofill dataset picker."
6d0cb1e8eb8ff2e0b4cc8d14823debbc37cb7c6e 16-Mar-2017 Felipe Leme <felipeal@google.com> Fixed cancel() and commit():

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

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

Fixes: 35721501
Fixes: 35844249

Change-Id: I9789218777b62a9558a602b8eaed0714d8b77fa0
utofillManagerServiceImpl.java
emoteFillService.java
i/Helper.java
i/SaveUi.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
utofillManagerServiceImpl.java
b4f868deca15bfaecc742bd484311309dfe1dab7 16-Mar-2017 Felipe Leme <felipeal@google.com> Sets accessibility title for autofill dataset picker.

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

Change-Id: I9bda820a41ef82e008f2a1ffd32c286b91841c10
i/AutoFillUI.java
i/FillUi.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
utofillManagerService.java
utofillManagerServiceImpl.java
emoteFillService.java
i/AutoFillUI.java
i/FillUi.java
i/SaveUi.java
5bf03b76408f4e527fc475a793c366583de8896a 16-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Allow users to manually request Autofill."
2ac463e3f5c3b757ecbc7e30e0fc1e8e0d878272 13-Mar-2017 Felipe Leme <felipeal@google.com> Allow users to manually request Autofill.

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

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

Change-Id: I1a64d40da3373774451d178b1cabf20f11120e9d
utofillManagerService.java
utofillManagerServiceImpl.java
emoteFillService.java
0ab7ad5839db7bbdbafd490d1ee4ba0ec532ebae 15-Mar-2017 Philip P. Moltmann <moltmann@google.com> Merge "Do not filter non text values."
2aedac13b71fc4f7546bc73adaef32f51b84be68 15-Mar-2017 Philip P. Moltmann <moltmann@google.com> Do not filter non text values.

Test: Ran CTS autofill tests
Bug: 36123241
Change-Id: I747b516c3ec924487523756f075989ff94d97ab4
utofillManagerServiceImpl.java
i/AutoFillUI.java
i/FillUi.java
82e3793c15298f9c62edee23259c116606f10911 10-Mar-2017 Felipe Leme <felipeal@google.com> Decouple Dataset ids from SaveInfo.

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

Bug: 36076444
Test: OptionalSaveActivityTest pass
Test: m update-api
Change-Id: I1d5faaddf29e1be0f357438c8485e07caf975293
utofillManagerServiceImpl.java
9b31b4eac838238ef3013cbfb1379cddbafa0f12 14-Mar-2017 Philip P. Moltmann <moltmann@google.com> Merge "Make it clear which type of AutoFillValue is set"
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
utofillManagerServiceImpl.java
104b932b7b84e4d4dda51b187615d79e2559ebca 14-Mar-2017 Felipe Leme <felipeal@google.com> Fixed obsolete TODOs.

Test: not needed
Bug: 35395043
Bug: 26742218

Change-Id: I0e5adb574610374055a6546b66529a7aed7cc413
emoteFillService.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
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
utofillManagerService.java
utofillManagerServiceImpl.java
utofillManagerServiceShellCommand.java
emoteFillService.java
i/FillUi.java
55223b48f0f7c89be7a9547cd7be7cb9d7011840 13-Mar-2017 Philip P. Moltmann <moltmann@google.com> Fix java-doc reference

Test: Built
Change-Id: I5171d23145bfddc1e36b8e579c208f73472a0da4
utoFillManagerServiceImpl.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
utoFillManagerService.java
utoFillManagerServiceImpl.java
elper.java
emoteFillService.java
i/AutoFillUI.java
i/FillUi.java
16539f33785b59fa809295ec7def782983664489 08-Mar-2017 Felipe Leme <felipeal@google.com> Two fixes on autofill save.

1.Fixed race condition on save request - if the service was unbound, it would
mark the RemoteFillService as completed and the retry would be dropped.
2.Removed session when save request is canceled.

Change-Id: Ib71514cdcfecc38c07dd7656174d0db68ed758d1
Fixes: 36001206
Test: CtsAutoFillServiceTestCases pass
utoFillManagerServiceImpl.java
emoteFillService.java
i/AutoFillUI.java
7f61163340f678b5e2d39466a1f3ca0e54d4fb8c 09-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Provided an AutofillCallback API."
e6010f2fb4d512c00a21cda55197f5f57e63fdc1 03-Mar-2017 Felipe Leme <felipeal@google.com> Provided an AutofillCallback API.

Some custom views - like WebView - might have their own auto-complete mechanism,
so we need to provide a way for them to know when the auto-fill UI is shown or
hidden.

Fixes: 35948429
Test: CtsAutoFillServiceTestCases (with new tests) pass
Test: m update-api
Test: manual verification

Change-Id: I5682a3b9645d5d077a4a2446e79256d6f77b4b5a
utoFillManagerService.java
utoFillManagerServiceImpl.java
i/AutoFillUI.java
6ee1ed48b583971915759ce8f6e506168f4dfa78 08-Mar-2017 Felipe Leme <felipeal@google.com> Removed deprecated setSavableids().

Bug: 35727295
Test: LoginActivityTest#testAutoFillOneDatasetAndSave passes

Change-Id: I33a33bf438fe258685025118a3dfa8a59bd456da
emoteFillService.java
de4d4c2083a07b4d99eaec6985ca4527d5e48e4d 03-Mar-2017 Felipe Leme <felipeal@google.com> Minor changes on AutoFill Save UI.

- Fixed subtitle layout.
- Added a Shell command to change snackbar lifetime (so CTS tests can verify
it's dismissed).

BUG: 35727295
Test: CtsAutoFillServiceTestCases (with new tests) pass
Test: manual verification

Change-Id: Ie6d42c94599ad59a319ca6f6a1ab02882f8d5f81
utoFillManagerService.java
utoFillManagerServiceShellCommand.java
i/AutoFillUI.java
i/SaveUi.java
5048c1cbb1aee30ba06f9bfd851fa89d26677f63 03-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fill-provider can control the negative button label and listener"
33d06fcac5abdded783d1b59f5b299ca5d27d5c7 01-Mar-2017 Svet Ganov <svetoslavganov@google.com> Fill-provider can control the negative button label and listener

Test: New CTS tests added and all autp-fill tests pass

bug:35869744

Change-Id: I55e5938038e612d728498658a763208f7022f85a
utoFillManagerServiceImpl.java
i/AutoFillUI.java
i/SaveUi.java
7ad11281378a1248c08c703b14cfc681e37cac1b 28-Feb-2017 Svet Ganov <svetoslavganov@google.com> Allow auto-fill services to disable themselves

1. Added a new API for a connected auto-fill service to
disable itself

2. Added a new shell command to destroy all pending sessions
which is used in CTS tests

3. Fixed a bug where the unbind timeout was in minutes
instead of seconds

Test: wrote CTS tests, all auto-fill tests pass

bug:35848030

Change-Id: I681605aa0b8c004a0f14e30b57117c291d89a894
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
emoteFillService.java
b72f012cb49a5930010fb0766776b40c2955ee3e 24-Feb-2017 Felipe Leme <felipeal@google.com> Added customization to SaveInfo.

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

Change-Id: I7eba36b6ab8181ae1cdbd10b0879927b9f9cf086
utoFillManagerServiceImpl.java
i/AutoFillUI.java
i/SaveUi.java
f69761ffbe3098067ae720263ef05262f4b5d41e 24-Feb-2017 Felipe Leme <felipeal@google.com> Refactored savableIds() into a SaveInfo class.

For now it's a "1-to-1" refactoring that keeps the same
functionalities, but soon SaveInfo will be expanded to
allow the AutoFillService to customize it.

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

Change-Id: I5aaa705be2b32590048f70ed0142437e05df94b7
utoFillManagerServiceImpl.java
1b0f1568d927e2a6ac05db5f1b7a1a8c6b520113 24-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Auto-fill logging improvements:"
28a2c7e0579dbcbde09b6e23a17b0a501a3562b9 21-Feb-2017 Svet Ganov <svetoslavganov@google.com> Update fill UI

1. Abstracted the fill/save view and window management
in dedicated classs

2. Avoided the need of a second window to detect outside
touches

3. Simplified the fill-ui window management

4. Moved the UI in its own package to ease mmigration to
sys UI.

5. Removed hard-coded colors from the layout

6. Make sure the save UI cannot grow as wide as the screen
as this would not look good on tablets

7. Update the save UI to look closer to mocks

Test: CTS tests pass
Bug: 35708258

Change-Id: Ia74a5aad6f16bba0047a9e8e61958c77af0d358d
nchoredWindow.java
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillUI.java
atasetPicker.java
avePrompt.java
i/AutoFillUI.java
i/FillUi.java
i/SaveUi.java
0ab53dcb31e7ae52cc265c8020df538df90ed2d7 23-Feb-2017 Felipe Leme <felipeal@google.com> Auto-fill logging improvements:

- Shorten history line by removing less relevant items.
- Decrease number of history items (from 100 to 20).
- Removed redundant logs from service (and kept them on manager)
- Use {} on all log statements.
- Remove DEBUG guard on some important messages.
- Remove DEBUG guard from service-side toString() implementations.
- Don't log FLAG_FOCUS_LOST actions.

BUG: 33197203
Test: manual verification
Change-Id: I30466ab3c0d12cfa2ad68b2b2a107d5890256845
utoFillManagerService.java
utoFillManagerServiceImpl.java
0257c8a5d21cab6a0208347e2b9f4e320902acd5 22-Feb-2017 Felipe Leme <felipeal@google.com> Fixed missing auto-fill save callbacks on TextView.

It was accidentally broken during a previous commit where the CTS test
failure was ignored by a known issue being fixed in another change -
this change fixes both problems.

Bug: 33550221
Bug: 3380254
Test: CtsAutoFillServiceTestCases pass (for real now :-)
Change-Id: I5b2aa6060995ca255e51d85aa6ec93a886fa522f
utoFillManagerServiceImpl.java
utoFillUI.java
5882c4f5d2ff552a233ba88d2445f6810dd7599b 17-Feb-2017 Felipe Leme <felipeal@google.com> Added auto-fill listeners for RadioGroup and CompoundButton.

Bug: 33550221
Bug: 3380254
Test: CtsAutoFillServiceTestCases pass

Change-Id: Ia9293d16b6fe092552e19563328697c298451f8a
utoFillManagerServiceImpl.java
fe35e69d964dbd09cc8e6390e41ca9347baea108 21-Feb-2017 Felipe Leme <felipeal@google.com> Use ArrayList instead of ArraySet for FillResponse.getDatasets()...

...otherwise it might not preserve the order.

Test: manual verification
BUG: 35348724

Change-Id: Ib19d364253ea4f0cbbeca8a73b08800482e74820
atasetPicker.java
00c771dc7d8242362f1491ae4ce3efd641235b36 19-Feb-2017 Svet Ganov <svetoslavganov@google.com> Add support for remote views backed auto-fill UI

Test: CTS and manual

Change-Id: Ia09f0208d78439491052e4886a0e71c387b73370
utoFillManagerServiceImpl.java
utoFillUI.java
atasetPicker.java
elper.java
avePrompt.java
ignInPrompt.java
db908541c41b76e340b8f72edab5590adfe3c921 16-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added missing calls to onConnected() and onDisconnected()."
d473ec1137d9391a279246b96ba9519154caea28 16-Feb-2017 Felipe Leme <felipeal@google.com> Added missing calls to onConnected() and onDisconnected().

They got lost in a previous refactoring....

Bug: 35395043
Test: CtsAutoFillServiceTestCases pass
Test: manual verification
Change-Id: I4e70f84185d6708ea0ebfa831c160e859fcf9e5c
emoteFillService.java
5b2ca0e0ad4be4d8070c51c8924fee05af9c813a 16-Feb-2017 Felipe Leme <felipeal@google.com> Pass FillResponse extra back to onSaveRequest(...).

BUG: 33197203
Test: CtsAutoFillServiceTestCases passes
Change-Id: Ibb57b07c7287527acc4c92607de044e789f09dcc
utoFillManagerServiceImpl.java
emoteFillService.java
8eab775d2cbc0d66f9b57451ec8a973f2464d014 14-Feb-2017 Felipe Leme <felipeal@google.com> R.I.P. temporary, zombie auto-fill notifications.

They died already, but came back to life due to a last-minute API change.

BUG: 33197203
Test: manual verification
Test: CtsAutoFillServiceTestCases passes
Change-Id: I4c248fd30ff087475116326d01e7c5a1c507cd74
utoFillManagerServiceImpl.java
utoFillUI.java
ignInPrompt.java
782043caf81055aa1c331e9cc15b24a10e1bf17a 11-Feb-2017 Svet Ganov <svetoslavganov@google.com> Refactor auto-fill

* Fix a layering issue where auto-fill manager which is in view
depended on activity which is in app

* Moved auto-fill classes to view or service based on their
purpose and removed dependecy on the classes in view to the
classes in service

* Push state to local auto-fill manager whether auto-fill is
enabled to avoid making IPC for every focus transition if
the user did not enable the feature

* Remove unnecessary offload to messages when handling calls
to auto-fill manager service as these are made over a oneway
interface and in general they do almost no work and typically
we do these on the binder thread

* Removed id from data set and fill response as the provider
can embed everything it needs to id them in the auth pending
intent

* Enforce the auth UI to be only an activity as this will work
with multi-window, recents, and back and also does not require
draw on top of other app special permission

* Authentication also no longer requires passing a remotable
callback to the auth activity but the activity handles the
request as if called for a result

* Handling stopping of a user to clean up in-memory state as
well as handling when a user gets unlocked as a provider may
be non-direct boot aware

* User the correct context when creating an auto-fill manager

* Move the receiver that listens for requests to hide system
windows to the manager service as the UI is a singleton and
no need every per-user state to register its own

* Removed extras from dataset as the only case a provider needs
to associate state with a dataset is for auth and the provider
can embed this data in the auth pending intent

Test: manual and CTS

Change-Id: I4bc54c13cf779d7f6fdb3ab894637f9fac73f603
nchoredWindow.java
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillUI.java
atasetPicker.java
elper.java
emoteFillService.java
69a1cae41110f080f2e91dafa2f99947f2886b7a 09-Feb-2017 Felipe Leme <felipeal@google.com> Add Shell commands to list and reset auto-fill sessions.

These commands are useful during development and CTS tests (for
example, the test can assert there is no dangling session after it's
finished).

BUG: 33802548

Test: manual verification
Change-Id: I61f96e30d07642fa2165df9b982c6bf32a4e8716
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
ef0c1885cb9aa62dc2d2eee2849d103b32271133 10-Feb-2017 Svet Ganov <svetoslavganov@google.com> Move auto-fill shell command off IPC

Auto-fill has a shell command that is useful for development
which is currently exposed as a remote method allowing any app
to call it reflectively. Since only case this method is called
is when handling a shell command there is no need to expose it
to IPC over binder.

Test: manual

Change-Id: Iac20b4a39c7065e254f8aa277d1f2fd1c38b24a8
utoFillManagerService.java
utoFillManagerServiceShellCommand.java
660ea8c6d7b18ad84d797f5746aec9db4fa3ecba 09-Feb-2017 Felipe Leme <felipeal@google.com> Merge "Guarded access to mCallback and check for null before using it."
3702b4760c72171082175a70b82c55b9f36051db 09-Feb-2017 Felipe Leme <felipeal@google.com> Merge "Improved some toString() methods."
4997c505c9b6379961ede3b6eef75e3b60f283ac 08-Feb-2017 Felipe Leme <felipeal@google.com> Guarded access to mCallback and check for null before using it.

Fixes: 35143142

Test: manual verification
Test: CtsAutoFillServiceTestCases passes
Change-Id: I465538b896b617c518949611f963e350ee498f7b
utoFillManagerServiceImpl.java
utoFillUI.java
daad456172fe984be44938ba36eca602c5894d78 09-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Make datasets one line and ellipsized."
0223ffb4735fbe27f6c1354552a01963484d7a31 09-Feb-2017 Felipe Leme <felipeal@google.com> Improved some toString() methods.

- Never display AutoFillValue.text, because it could be sensitive.
- Simplified AutoFilllId.

Fixes: 35171960

Test: manual verification
Test: CtsAutoFillServiceTestCases passes

Change-Id: I0853cabb695b842c947b0ae007e344f5d8385395
elper.java
348fd2eb07432a059354054bc8a34a32e082f5b5 08-Feb-2017 Jason Long <jasonlong@google.com> Make datasets one line and ellipsized.

Test: Manual
Test: CtsAutoFillServiceTestCases
Change-Id: I2f58ef5e566ba0551431fcbe43efb179c3efc8e8
atasetPicker.java
359136303dfa590cb989b7081b630b576713607f 08-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix NPE when session is finished before service replies."
8d918a714915a8bcbe57f97c5102c60be8641368 08-Feb-2017 Felipe Leme <felipeal@google.com> Fix NPE when session is finished before service replies.

Fixes: 35114623
Test: manual verificaiton
Test: CtsAutoFillServiceTestCases passes
Change-Id: Id38babd038c79dc3e7070483437adec1b415a072
utoFillManagerServiceImpl.java
8bc078d73413bbfe1a0c790ca62aec12a815080f 08-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Improve AnchoredWindow with smart positioning logic."
f894be41d61d0f0bbd985f61f156a1b7489d6f75 07-Feb-2017 Felipe Leme <felipeal@google.com> Re-added sanitization.

This code was accidentaly removed when rebasing the auth changes..

BUG: 33269702
BUG: 31001899

Test: manual verification
Test: CtsAutoFillServiceTestCases passes
Change-Id: I0dabad9b76ee6c523a546c494f147796a50531e7
utoFillManagerServiceImpl.java
1e92f023878e6b5240a0af904faa9a7a89c5b03b 01-Feb-2017 Jason Long <jasonlong@google.com> Improve AnchoredWindow with smart positioning logic.

* Add appToken.
* Add mWindowSizeListenerView for getting the displayable window size
(screen - system windows - soft input).
* Add mContentView when we have all the necesssary info.
* Change mContentView only if something changes (height, bounds,
displayBounds).

Bug: 34637800
Test: CTS
Change-Id: Icef5eb8d8e0b54376c84cbcaa5719aee0520e345
nchoredWindow.java
utoFillManagerServiceImpl.java
utoFillUI.java
bab851c7c9dfe6f3d063a1009c4d57cfa2ff005c 04-Feb-2017 Felipe Leme <felipeal@google.com> Refined session management so Save can be automatically called.

This is yet another big refactoring:

- AutoFillManager keeps track of its current AutoFillSession.
- Views call AFM.startSession(View) when they can trigger autofill.
(virtual views can call it as well). At this point, the manager
sets an AutoFillSession, gets the activity token, and passes it to
the service.
- Subsequent calls to AFM.start() will be ignored since the session
is set.
- When the Activity is gone, it calls AFM.finishSession().
- Simlilarly, virtual views could call it as well.
- Added getAutoFillValue() to View.
- Removed AFM.updateAutoFillInput(childId): virtual views should now
call startSession(childId) to start a session, and use the
VirtualViewListener callbacks for updates.
- Change AutoFillValue to use String (which is immutable) instead of
CharSequence for text values.
- Check if view is enabled before auto-filling.
- Removed 'cmd autofill fill' since it would require the appCallback
- Automatically dismiss the snack bar after 30s
- Moved the "don't change autofill value when autofilling" Inception
logic into the service side.
- Etc...

BUG: 34819567
BUG: 33269702
BUG: 31001899

Test: manual verification
Test: CtsAutoFillServiceTestCases passes

Change-Id: I5fad928d4d666701302049d142026a1efa7291cd
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
utoFillUI.java
elper.java
0f4928f1f73407485d6d94beda1dba1a2360ebbf 03-Feb-2017 Svet Ganov <svetoslavganov@google.com> Refactoring of auto fill - lifecycle, auth, improvements

1. Move management of the remote fill service in a dedicated
class that abstracts away the async and ephemeral nature
of the binding.

2. Update auth to move fingerprint out of the platform and
allow response and dataset auth.

3. Cleaned up the fill and save callback classes.

4. The UI is now shared among all sessions and cleaned up.

5. Reshuffled the remote callbacks to have cleaner separation.

6. Cleaned up and tightened the reponse and dataset classes.

7. Added API to support communicationn with intent based auth.

Test: CTS + manually

bug:31001899

Change-Id: Idc924a01d1aea82807e0397ff7293d2b8470d4d6
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillUI.java
atasetPicker.java
elper.java
emoteFillService.java
21c8595d764bf6cbf2a1b59715c85ca211240ed4 06-Feb-2017 Svetoslav Ganov <svetoslavganov@google.com> Merge "Revert "Improve AnchoredWindow with smart positioning logic.""
c71593e3de3de4505426f435c46d20102b4b06cf 06-Feb-2017 Svetoslav Ganov <svetoslavganov@google.com> Merge "Revert "Pass token to AutoFillUI.""
7b25218f5aa3fae34316d42d0f2242029096814d 06-Feb-2017 Svetoslav Ganov <svetoslavganov@google.com> Revert "Improve AnchoredWindow with smart positioning logic."

This reverts commit eb3c9344399831542edc59b7c43c84a0496d7a12.

Change-Id: I6af63525bf72dc9d0dd5a215421fb513e7e635be
nchoredWindow.java
utoFillUI.java
21e67a1272b3a1c42df49bec38e227ce2f05ca1d 06-Feb-2017 Svetoslav Ganov <svetoslavganov@google.com> Revert "Pass token to AutoFillUI."

This reverts commit 8f60ea6360dace22e98eb9dfeead8118170fa401.

Change-Id: I16e78ab87d2f570462b24c0d61a5c7e161184c70
utoFillManagerServiceImpl.java
utoFillUI.java
e4fcdbc17013b72a50ec3d4d4563aa7a3bde33ac 03-Feb-2017 Jason Long <jasonlong@google.com> Hide DatasetPicker if all items are filtered.

Bug: 34633695
Test: CTS
Change-Id: I0e808083d32db9e280c9ddd028239540bac01cfc
atasetPicker.java
eb3c9344399831542edc59b7c43c84a0496d7a12 01-Feb-2017 Jason Long <jasonlong@google.com> Improve AnchoredWindow with smart positioning logic.

* Add appToken.
* Add mWindowSizeListenerView for getting the displayable window size
(screen - system windows - soft input).
* Add mContentView when we have all the necesssary info.
* Change mContentView only if something changes (height, bounds,
displayBounds).

Bug: 34637800
Test: CTS
Change-Id: Iade6179f6303a6d4777e99fa6c600ba6352ee863
nchoredWindow.java
utoFillUI.java
8f60ea6360dace22e98eb9dfeead8118170fa401 02-Feb-2017 Jason Long <jasonlong@google.com> Pass token to AutoFillUI.

Bug: 31001899, 34637800
Test: CTS
Change-Id: If0d0a283aebd48db2694c3dcef5d3e077a9fa1f8
utoFillManagerServiceImpl.java
utoFillUI.java
0a6d2b6dace6c487b1d2342778bad3c0fb4b73a5 02-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix AutoFill Save window layout params."
2288eff965f23b77c46e89589c7e639e46aeb555 01-Feb-2017 Jason Long <jasonlong@google.com> Fix AutoFill Save window layout params.

Change-Id: I54ae23e9ab1b12ab868b37fd8e87e89dad7ae8fc
Test: CTS
utoFillUI.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
nchoredWindow.java
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
utoFillUI.java
elper.java
db88bfaa31a559921657cd255e31cde2e73c6f99 01-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Ignore auto-fill requests from system."
4eff26b4235535d49c6d5fbebc3a8fb79ef0660d 31-Jan-2017 Felipe Leme <felipeal@google.com> Ignore auto-fill requests from system.

Change-Id: I3c318aeb96c1ba7a751feba2a0d9042015eaaffb
Fixes: 34819567
Bug: 34171325
Test: could not reproduce
utoFillManagerService.java
226309c555b2c8df4a24c745b06fa7e89f3ed53f 28-Jan-2017 Jason Long <jasonlong@google.com> Refactor AutoFill server code.

With this change, data flows strictly like so:

AFManagerService -> AFManagerServiceImpl -> Session -> ViewSession

A ViewSession is introduced to 1) know when we can show the fill UI,
and 2) know when we need to create or update the current fill UI.

Each class has its own responsibilities:

* AFManagerService - interface to app process
* AFManagerServiceImpl - per user id
* Session - per activity
** AutoFillUI - per activity (can consider moving to ViewSession)
* ViewSession - per view

Bug: 34633695
Change-Id: Ia197a5c40219379ab6a95d0cf5c39ac4f5470d0e
Test: CTS, Manual with GMS Core
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillUI.java
3922e6a8aa0072bc6048f646fdd6a4732bf04450 28-Jan-2017 Jason Long <jasonlong@google.com> Add user picker for anchored window.
Test: CtsAutoFillServiceTestCases

Bug: 34633695
Change-Id: I274264846358941983183a32f07cade3b26c8c05
nchoredWindow.java
utoFillUI.java
atasetPicker.java
b41e016fb97247b8e7543d8b5151f82c68644656 28-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Moves layout code from java files to layout xml"
3742ccf8b5050fcd37be2ac9e38a68f8dd85fb3f 27-Jan-2017 Udam Saini <udam@google.com> Moves layout code from java files to layout xml

Test: manual ui verification
Change-Id: I7d15dc1a25845741c3d165f3f1d33cee2c2d4514
avePrompt.java
9363c695428a1a1ec80539412763b76eaf6b4b58 28-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added dump() to AutoFillUI."
9dd20d23e04ce9c9bd64bb7343a1ef901e022d45 27-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Initial, unpolished version of DatasetPicker."
cd55f670f3619c167910eaa8bfbfec7430d5c95e 27-Jan-2017 Felipe Leme <felipeal@google.com> Initial, unpolished version of DatasetPicker.

Bug: 31001899
Bug: 34637800
Test: manual verification
Change-Id: If0d1c61ffbac0b166de1fbd2184f68ca72b2cd08
atasetPicker.java
911cc0fb6c6defc9e7e96ffcd13cb367a44af895 27-Jan-2017 Felipe Leme <felipeal@google.com> Added dump() to AutoFillUI.

BUG: 31001899
BUG: 34637800
Test: manual verification
Change-Id: Ia7f0a4bf814c4e0e39b0dc09c62c7987a662d238
utoFillManagerService.java
utoFillUI.java
e682445698cadccbb60c4cd797cf1a65167aa399 27-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'session_refactoring'

* changes:
Adds autofill save ui
Moar AutoFill Framework refactoring...
87af2d859644a28d7c49adbac8e963991adefefc 27-Jan-2017 Felipe Leme <felipeal@google.com> Adds autofill save ui

Test: Manual verification of save ui
Test: CtsAutoFillServiceTestCases passes

BUG: 31001899
Change-Id: Ibb154fc6108f20e6a1b889549bd264e8b80f2f0c
utoFillManagerServiceImpl.java
utoFillUI.java
avePrompt.java
bd00fef41ce38d2c711bd4151997c1cd8964b712 25-Jan-2017 Felipe Leme <felipeal@google.com> Moar AutoFill Framework refactoring...

* Encapsulated application-level auto-fill logic on AutoFillSession.
Currently, Activity.java directly manages the IAutoFillCallback binder
object used to auto-fill its views, but this logic need to be
extended so Views can use it to draw the auto-fill bar.

* Pass auto-fill id and boundaries to requests
So AutoFillUI can display its affordance in the right places.

* Uses a new auto-fill id on View (instead of reusing accessibility's).
That allows moving the logic on whether a new request should be made or
the existing UI moved to the service side.

* Split service methods in 2, for shell cmd and app
And applied the right permission check on both.

* Removed CancelationSignal from onSaveRequest()
Since it's not really needed.

* Etc...
¯\_(ツ)_/¯

BUG: 34637800
BUG: 31001899
Test: CtsAutoFillServiceTestCases passes
Test: manual verification

Change-Id: Ibd0cb2cfff6d0f6bb6b697a423ed5e89df687b82
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
utoFillUI.java
d1144eb85ebce68b14bc51f629ec81e440ccfe26 24-Jan-2017 Jason Long <jasonlong@google.com> Add basic AnchoredWindow.

Bug: 34637800
Test: Manual
Change-Id: I82c9ec44296c3423e3f8d3b55832e344a5094cfd
nchoredWindow.java
436ab6a91d64ef6036c67bb361d807e398fb2c4c 15-Dec-2016 Felipe Leme <felipeal@google.com> Added support to authentication.

AutoFillService can now require user authentication, both at
FillResponse and Dataset levels;
- FillResponse authentication is typically used when the user data
need to be unlocked before the first use.
- Dataset authentication is typically used to unlock sensitive data
such as credit card info.

The authentication can be handled by the service itself (for example,
when it uses the credit card CVV to unlock it) or by the Android
system (when the service asks for fingerprint authentication).

Bug: 31001899

Test: manual verification
Test: CtsAutoFillServiceTestCases passes

Change-Id: If62f42f697ab5ef0d14d991ff1077d1c38808e61
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillUI.java
elper.java
3461d3c069468e176fab6bc8b8e78c8e6bc81e8b 19-Jan-2017 Felipe Leme <felipeal@google.com> Initial IME integration.

- Created an AutoFillManager class, which provides methods to show
the auto-fill bar for views and virtual nodes.
- Automatically launches an auto-fill request when the IME is shown
(and an AutoFillService is set for the given user) on TextViews.
- Updated VirtualNodeListener to use this new API.

BUG: 31001899
BUG: 34171325
Test: CtsAutoFillServiceTestCases passes
Test: manual verification

Change-Id: Id72ce97da70217081b5823cfc7b138412634fcf3
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillUI.java
4b93f46130ab9a972773ebf2be9839109d5c6a08 18-Jan-2017 Jason Long <jasonlong@google.com> Add <autofill-service> that declares AutoFillService metadata.

The initial version of <autofill-service> may contain a settingsActivity
attribute.

Test: Manual verification
Change-Id: I63a67aa4b7110fbf21d0b01ee53add712bfb0364
utoFillManagerServiceImpl.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
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
utoFillUI.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
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
fed51fcedbeaf2de98a109087b8297d6e6df8862 11-Nov-2016 Felipe Leme <felipeal@google.com> Uses a notification to request auto-fill.

This is a temporary approach until UX decide the final one.

BUG: 31001899
Test: manually built and ran it

Change-Id: I234ffc9bfffcccae5e5c310f9669c4a2a8e9d65c
utoFillManagerService.java
dfa7fbc8702fae62e6b3f78c4d9245995baee04e 11-Nov-2016 Felipe Leme <felipeal@google.com> Bind AutoFillService on demand.

BUG: 31001899
Test: manually built and ran it

Change-Id: Ied7028e41c273f5e30f88fc92f919249046877eb
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.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
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
utoFillSession.java
5381aa4b585f3fa2a315d88e910111173e2ef77d 13-Oct-2016 Felipe Leme <felipeal@google.com> Initial implementation of the Auto-Fill Framework classes.

This CL provides the initial, skeleton implementation of the Auto-Fill
Framework classes:

- Defines the system service and app-based
AIDL (IAutoFillManagerService.aidl and IAutoFillService.aidl respectively).
- Defines the 'adb shell cmd' interface.
- Defines the permission required to access the service.
- Registers the service on SystemServer.
- Adds the code to bind the app-specified service to system_server.
- Defines the service class (AutoFillService) required by providers.
- Implements the initial startSession() method.

This is still a very early, "work-in-progress" change:
- It has many TODOs.
- It does not have unit or CTS tests yet.
- It does not provide a callback method to auto-fill the fields.
- In fact, it has a lot of TODOs.

Despite these adversities, it can be tested by following the steps
below:

1.Create an app with a service extending AutoFillService

2.Implement the onNewSession() method

3.In the manifest:
- Listen to android.service.autofill.AutoFillService intents.
- Require the android.permission.BIND_AUTO_FILL permission.

4.Explicitly set the app as an autofill-service by running:
adb shell settings put secure auto_fill_service MY_APP/.MY_SERVICE

5.Start a session against the top activity:
adb shell cmd autofill start session

BUG: 31001899
Test: manually built and ran it

Change-Id: I00f4822159b31ddddba8f513e57c4474bc74eb89
utoFillManagerService.java
utoFillManagerServiceImpl.java
utoFillManagerServiceShellCommand.java
utoFillSession.java