Merge "Add pseudo-filtering on authenticated views." into oc-mr1-dev

This commit is contained in:
TreeHugger Robot
2017-09-08 21:13:02 +00:00
committed by Android (Google) Code Review

View File

@@ -229,6 +229,13 @@ final class FillUi {
public void setFilterText(@Nullable String filterText) { public void setFilterText(@Nullable String filterText) {
throwIfDestroyed(); throwIfDestroyed();
if (mAdapter == null) { 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; return;
} }
@@ -510,8 +517,9 @@ final class FillUi {
final ViewItem item = mAllItems.get(i); final ViewItem item = mAllItems.get(i);
final String value = item.getValue(); final String value = item.getValue();
// No value, i.e. null, matches any filter // No value, i.e. null, matches any filter
if (value == null if ((value == null && item.mDataset.getAuthentication() == null)
|| value.toLowerCase().startsWith(constraintLowerCase)) { || (value != null
&& value.toLowerCase().startsWith(constraintLowerCase))) {
filteredItems.add(item); filteredItems.add(item);
} }
} }
@@ -525,9 +533,11 @@ final class FillUi {
final boolean resultCountChanged; final boolean resultCountChanged;
final int oldItemCount = mFilteredItems.size(); final int oldItemCount = mFilteredItems.size();
mFilteredItems.clear(); mFilteredItems.clear();
if (results.count > 0) {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
final List<ViewItem> items = (List<ViewItem>) results.values; final List<ViewItem> items = (List<ViewItem>) results.values;
mFilteredItems.addAll(items); mFilteredItems.addAll(items);
}
resultCountChanged = (oldItemCount != mFilteredItems.size()); resultCountChanged = (oldItemCount != mFilteredItems.size());
if (resultCountChanged) { if (resultCountChanged) {
announceSearchResultIfNeeded(); announceSearchResultIfNeeded();