diff options
| author | 2017-09-08 21:29:11 +0000 | |
|---|---|---|
| committer | 2017-09-08 21:29:11 +0000 | |
| commit | 760205ea96dcb80a5dc1024fff0a20e0c454fc8a (patch) | |
| tree | 6da1efd56c4f6be0d5b99fd84ea1c9ddfe8d95e6 | |
| parent | 3c2212e00c6c1579acd4339864cdd964134281b2 (diff) | |
| parent | 30d6df451456327665a5c908b8d30e3e71c65699 (diff) | |
Merge "Add pseudo-filtering on authenticated views." into oc-mr1-dev
am: 30d6df4514
Change-Id: I9c5050c4c62311bdf2f5809164dd802f7b8f7efa
| -rw-r--r-- | services/autofill/java/com/android/server/autofill/ui/FillUi.java | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/services/autofill/java/com/android/server/autofill/ui/FillUi.java b/services/autofill/java/com/android/server/autofill/ui/FillUi.java index 24f3b339b761..371e74d6f04e 100644 --- a/services/autofill/java/com/android/server/autofill/ui/FillUi.java +++ b/services/autofill/java/com/android/server/autofill/ui/FillUi.java @@ -229,6 +229,13 @@ final class FillUi { public void setFilterText(@Nullable String filterText) { throwIfDestroyed(); if (mAdapter == null) { + // ViewState doesn't not support filtering - typically when it's for an authenticated + // FillResponse. + if (TextUtils.isEmpty(filterText)) { + mCallback.requestShowFillUi(mContentWidth, mContentHeight, mWindowPresenter); + } else { + mCallback.requestHideFillUi(); + } return; } @@ -510,8 +517,9 @@ final class FillUi { final ViewItem item = mAllItems.get(i); final String value = item.getValue(); // No value, i.e. null, matches any filter - if (value == null - || value.toLowerCase().startsWith(constraintLowerCase)) { + if ((value == null && item.mDataset.getAuthentication() == null) + || (value != null + && value.toLowerCase().startsWith(constraintLowerCase))) { filteredItems.add(item); } } @@ -525,9 +533,11 @@ final class FillUi { final boolean resultCountChanged; final int oldItemCount = mFilteredItems.size(); mFilteredItems.clear(); - @SuppressWarnings("unchecked") - final List<ViewItem> items = (List<ViewItem>) results.values; - mFilteredItems.addAll(items); + if (results.count > 0) { + @SuppressWarnings("unchecked") + final List<ViewItem> items = (List<ViewItem>) results.values; + mFilteredItems.addAll(items); + } resultCountChanged = (oldItemCount != mFilteredItems.size()); if (resultCountChanged) { announceSearchResultIfNeeded(); |