Prevent non-blocking whitespaces from showing up in search

Merge from: ag/2217040

Bug: 38029215
Test: make RunSettingsRoboTests
Change-Id: Ifefa785b6c56d56da73ca78d874f46efcb9e991f
This commit is contained in:
Matthew Fritze
2017-05-05 11:05:53 -07:00
parent 87dd45a3f1
commit 0e798baf45
2 changed files with 24 additions and 3 deletions

View File

@@ -34,6 +34,8 @@ import com.android.settings.overlay.FeatureFactory;
*/
public abstract class SearchViewHolder extends RecyclerView.ViewHolder {
private final String mPlaceholderSummary;
public final TextView titleView;
public final TextView summaryView;
public final TextView breadcrumbView;
@@ -52,11 +54,14 @@ public abstract class SearchViewHolder extends RecyclerView.ViewHolder {
summaryView = view.findViewById(android.R.id.summary);
iconView = view.findViewById(android.R.id.icon);
breadcrumbView = view.findViewById(R.id.breadcrumb);
mPlaceholderSummary = view.getContext().getString(R.string.summary_placeholder);
}
public void onBind(SearchFragment fragment, SearchResult result) {
titleView.setText(result.title);
if (TextUtils.isEmpty(result.summary)) {
if (TextUtils.isEmpty(result.summary)
|| TextUtils.equals(result.summary, mPlaceholderSummary)) {
summaryView.setVisibility(View.GONE);
} else {
summaryView.setText(result.summary);

View File

@@ -107,7 +107,8 @@ public class IntentSearchViewHolderTest {
@Test
public void testBindViewElements_emptySummary_hideSummaryView() {
final SearchResult result = new Builder().addTitle(TITLE)
final SearchResult result = new Builder()
.addTitle(TITLE)
.addRank(1)
.addPayload(new ResultPayload(null))
.addIcon(mIcon)
@@ -123,7 +124,8 @@ public class IntentSearchViewHolderTest {
breadcrumbs.add("a");
breadcrumbs.add("b");
breadcrumbs.add("c");
final SearchResult result = new Builder().addTitle(TITLE)
final SearchResult result = new Builder()
.addTitle(TITLE)
.addRank(1)
.addPayload(new ResultPayload(null))
.addBreadcrumbs(breadcrumbs)
@@ -135,6 +137,20 @@ public class IntentSearchViewHolderTest {
assertThat(mHolder.breadcrumbView.getText()).isEqualTo("a > b > c");
}
@Test
public void testBindElements_placeholderSummary_visibilityIsGone() {
String nonBreakingSpace = mContext.getString(R.string.summary_placeholder);
SearchResult result = new Builder()
.addTitle(TITLE)
.addSummary(nonBreakingSpace)
.addPayload(new ResultPayload(null))
.build();
mHolder.onBind(mFragment, result);
assertThat(mHolder.summaryView.getVisibility()).isEqualTo(View.GONE);
}
private SearchResult getSearchResult() {
Builder builder = new Builder();
builder.addTitle(TITLE)