Merge "Prevent non-blocking whitespaces from showing up in search" into oc-dev

am: 120ec5d1eb

Change-Id: Ic9bf5fc2aaa99592c362a3159aea0b11cb7ec950
This commit is contained in:
Matthew Fritze
2017-05-09 21:41:39 +00:00
committed by android-build-merger
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 { public abstract class SearchViewHolder extends RecyclerView.ViewHolder {
private final String mPlaceholderSummary;
public final TextView titleView; public final TextView titleView;
public final TextView summaryView; public final TextView summaryView;
public final TextView breadcrumbView; public final TextView breadcrumbView;
@@ -49,11 +51,14 @@ public abstract class SearchViewHolder extends RecyclerView.ViewHolder {
summaryView = view.findViewById(android.R.id.summary); summaryView = view.findViewById(android.R.id.summary);
iconView = view.findViewById(android.R.id.icon); iconView = view.findViewById(android.R.id.icon);
breadcrumbView = view.findViewById(R.id.breadcrumb); breadcrumbView = view.findViewById(R.id.breadcrumb);
mPlaceholderSummary = view.getContext().getString(R.string.summary_placeholder);
} }
public void onBind(SearchFragment fragment, SearchResult result) { public void onBind(SearchFragment fragment, SearchResult result) {
titleView.setText(result.title); titleView.setText(result.title);
if (TextUtils.isEmpty(result.summary)) { if (TextUtils.isEmpty(result.summary)
|| TextUtils.equals(result.summary, mPlaceholderSummary)) {
summaryView.setVisibility(View.GONE); summaryView.setVisibility(View.GONE);
} else { } else {
summaryView.setText(result.summary); summaryView.setText(result.summary);

View File

@@ -111,7 +111,8 @@ public class IntentSearchViewHolderTest {
@Test @Test
public void testBindViewElements_emptySummary_hideSummaryView() { public void testBindViewElements_emptySummary_hideSummaryView() {
final SearchResult result = new Builder().addTitle(TITLE) final SearchResult result = new Builder()
.addTitle(TITLE)
.addRank(1) .addRank(1)
.addPayload(new IntentPayload(null)) .addPayload(new IntentPayload(null))
.addIcon(mIcon) .addIcon(mIcon)
@@ -127,7 +128,8 @@ public class IntentSearchViewHolderTest {
breadcrumbs.add("a"); breadcrumbs.add("a");
breadcrumbs.add("b"); breadcrumbs.add("b");
breadcrumbs.add("c"); breadcrumbs.add("c");
final SearchResult result = new Builder().addTitle(TITLE) final SearchResult result = new Builder()
.addTitle(TITLE)
.addRank(1) .addRank(1)
.addPayload(new IntentPayload(null)) .addPayload(new IntentPayload(null))
.addBreadcrumbs(breadcrumbs) .addBreadcrumbs(breadcrumbs)
@@ -139,6 +141,20 @@ public class IntentSearchViewHolderTest {
assertThat(mHolder.breadcrumbView.getText()).isEqualTo("a > b > c"); 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 IntentPayload(null))
.build();
mHolder.onBind(mFragment, result);
assertThat(mHolder.summaryView.getVisibility()).isEqualTo(View.GONE);
}
private SearchResult getSearchResult() { private SearchResult getSearchResult() {
Builder builder = new Builder(); Builder builder = new Builder();
builder.addTitle(TITLE) builder.addTitle(TITLE)