History log of /frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2ee821b6757ffc07b474c254b50e3d45e774172f 09-Jun-2017 Svetoslav Ganov <svetoslavganov@google.com> Protect autofill UI against redressing

Test: LoginActivityTest#testAutoFillOneDatasetAndSaveHidingOverlays

bug:62357517

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

Test: manual verification
Bug: 62272098

Change-Id: Id7a6765fbe4228fcabb6cc0df37c5fde102d7077
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
7a1deb7c5f2c57df4f905ba997863a03d363a53e 12-May-2017 Felipe Leme <felipeal@google.com> Couple autofill fixes.

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

Bug: 38173625

Test: android.autofillservice.cts.MultipleFragmentLoginTest#loginOnTwoFragments

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

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

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

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

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

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

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

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

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

bug:37724701
bug:37424539

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

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

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

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

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

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

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

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

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

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

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

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

Fixes: 36141126

Test: CtsAutoFillServiceTestCases pass
Test: manual verification

Change-Id: Ic08ee9a2adc10e63f49bbcc7ed126455462dc9c1
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
c7619632145c23e6b5dd45620094e0bc686ad2db 25-Apr-2017 Philip P. Moltmann <moltmann@google.com> Report multiple FillContext-s onSave

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

Test: CtsAutofillServiceTestCases (added test for multiple Contexts)
Change-Id: If09e00b7267d293e4234a7a9837ad88d73af1b24
Fixes: 36481649
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
013efe173e56612a910ebd8576480ce4ef005e3c 14-Apr-2017 Svet Ganov <svetoslavganov@google.com> Add support for multiple fill contexts

When saving data filled by the user the platform provides to
an autofill provider the state of the UI allowing the provider
to interpret this state and store relevant information.

A limitation of the current design is that the fill provider
needs to interpret the screen content twice, once handling a
fill request and once handling a save request. To address this
we are introducing a id for each fill request allowing the
autofill provider to associate arbitrary state with each fill
request and store it in the client data bundle later passed
to save.

Another limitation of the current design is that if the screen
changes dynamically while the user interacts with the app the
UI state passed on save represents a static snapshot, therefore
it is not possible to the autofill provider to determine the
context in which the data in the UI was filled. We could
keep the views and have deltas for views being removed/added
/moved/changed but this is not enough as the fill provider
needs to know not only what changed but what changed for every
fill request and in one session there could be multiple fill
requests. To address this we provide a list of fill contexts
on save each of which has the id of the corresponding fill
request. This allows the fill provider to know the exact context
in which the data was popuplated and also use its custom client
state for this fill request if desired.

This change deprecates the old APIs and the new ones delegate
to the old ones. Once the clients migrate to the new APIs we
will remove the old ones.

Test: all autofill CTS tests pass

Change-Id: Idcebcc671aa3c078a305d8c358e225274fccc588
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
c3d1c85bda1eb0a7f5a45cbe51406f2239b57cb2 13-Apr-2017 Svet Ganov <svetoslavganov@google.com> Allow custom buttons in autofill UI

Test: added CTS test in topic

bug:36871561

Change-Id: I78ffd8ba33fb982183677fffc587bbf1a077e132
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
c7ed8c395bfe3f173b54a0dde683a2ce4cb98fa2 06-Apr-2017 Felipe Leme <felipeal@google.com> Shows a Toast when manual autofill request cannot be fulfilled.

Bug: 35708229
Test: manual verification
Change-Id: If4fa6556dd94a805727329f0aebc4b37f548b3a1
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
7320ca9f99bb582dd7cb8199cedae30f8b1367a4 30-Mar-2017 Felipe Leme <felipeal@google.com> Adds FillResponse extra to passed to authentication intent.

Test: CtsAutoFillServiceTestCases (with new test) pass
Fixes: 36603378

Change-Id: I3d04a656e50b2b3665405f6c1891ad0379a54ea6
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
4753bb0c34e068f57fff208529836a7688b3ef41 23-Mar-2017 Felipe Leme <felipeal@google.com> Make auto-fill UI robust

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

Test: all autofill CTS tests pass

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

Change-Id: I0321913b2e2e759f4b17003bf85cb873e63a467c
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
b096e588116bea15b1e0ad889cd69bbc78c4cb0f 17-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Sets accessibility title for autofill dataset picker."
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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
7b7711680244108923f0dbb4ca6e35db7e659e6a 04-Mar-2017 Philip P. Moltmann <moltmann@google.com> TRON log important auto-fill events

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

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

Test: Ran auto-fill tests and looked at event log.
Change-Id: I58aaa58e4435e7d04c8cd91878411943d3eb13de
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
2aedac13b71fc4f7546bc73adaef32f51b84be68 15-Mar-2017 Philip P. Moltmann <moltmann@google.com> Do not filter non text values.

Test: Ran CTS autofill tests
Bug: 36123241
Change-Id: I747b516c3ec924487523756f075989ff94d97ab4
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
640f30a7763b0a4b80c767acb84c740aac04768b 07-Mar-2017 Felipe Leme <felipeal@google.com> Replaced auto-fill by autofill to keep it consistent with API style.

This change will affects 2 types of apps: autofill service implementations
and apps that use autofill APIs.

Since just the former is known to be used at the moment, we're not trying
to keep backward compatibility with the latter.

Bug: 35956626
Test: CtsAutoFillServiceTestCases pass
Test: android.provider.SettingsBackupTest pass

Change-Id: Ia720083508716deae9e887f9faa7ae7c5a82f471
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java
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
/frameworks/base/services/autofill/java/com/android/server/autofill/ui/AutoFillUI.java