OSDN Git Service

Prevent non-blocking whitespaces from showing up in search
authorMatthew Fritze <mfritze@google.com>
Fri, 5 May 2017 18:05:53 +0000 (11:05 -0700)
committerMatthew Fritze <mfritze@google.com>
Tue, 9 May 2017 16:29:47 +0000 (09:29 -0700)
Merge from: ag/2217040

Bug: 38029215
Test: make RunSettingsRoboTests
Change-Id: Ifefa785b6c56d56da73ca78d874f46efcb9e991f

src/com/android/settings/search2/SearchViewHolder.java
tests/robotests/src/com/android/settings/search2/IntentSearchViewHolderTest.java

index 54e78fb..88d8a46 100644 (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);
index 477c03b..41084a5 100644 (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)