Update Settings search result unique ids

- SearchResult stableIds are now DocIds from the database
- DocIds are data reference key's hash, when the key is not
empty or null
- Otherwise, DocIds are a hashcode from a set of fields.

Change-Id: Id36f7bf4ceaaa3a2bd326ecafbfe97fd0b247df2
Fixes: 37327194
Test: make RunSettingsRoboTest
This commit is contained in:
Matthew Fritze
2017-05-12 15:59:19 -07:00
parent 7f2d779e15
commit 6efea1e624
12 changed files with 347 additions and 499 deletions

View File

@@ -47,6 +47,7 @@ import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import static com.google.common.truth.Truth.assertThat;
@@ -188,18 +189,20 @@ public class SearchResultsAdapterTest {
List<SearchResult> results = new ArrayList<>();
ResultPayload payload = new ResultPayload(new Intent());
SearchResult.Builder builder = new SearchResult.Builder();
builder.addPayload(payload);
builder.addTitle(TITLES[0])
.addRank(1);
builder.setPayload(payload)
.setTitle(TITLES[0])
.setRank(1)
.setStableId(Objects.hash(TITLES[0], "db"));
results.add(builder.build());
builder.addTitle(TITLES[1])
.addRank(3);
builder.setTitle(TITLES[1])
.setRank(3)
.setStableId(Objects.hash(TITLES[1], "db"));
results.add(builder.build());
builder.addTitle(TITLES[2])
.addRank(6);
builder.setTitle(TITLES[2])
.setRank(6)
.setStableId(Objects.hash(TITLES[2], "db"));
results.add(builder.build());
return results;
@@ -209,18 +212,20 @@ public class SearchResultsAdapterTest {
List<AppSearchResult> results = new ArrayList<>();
ResultPayload payload = new ResultPayload(new Intent());
AppSearchResult.Builder builder = new AppSearchResult.Builder();
builder.addPayload(payload);
builder.addTitle(TITLES[3])
.addRank(1);
builder.setPayload(payload)
.setTitle(TITLES[3])
.setRank(1)
.setStableId(Objects.hash(TITLES[3], "app"));
results.add(builder.build());
builder.addTitle(TITLES[4])
.addRank(2);
builder.setTitle(TITLES[4])
.setRank(2)
.setStableId(Objects.hash(TITLES[4], "app"));
results.add(builder.build());
builder.addTitle(TITLES[5])
.addRank(4);
builder.setTitle(TITLES[5])
.setRank(4)
.setStableId(Objects.hash(TITLES[5], "app"));
results.add(builder.build());
return results;
@@ -232,18 +237,21 @@ public class SearchResultsAdapterTest {
final Drawable icon = mContext.getDrawable(R.drawable.ic_search_history);
final ResultPayload payload = new ResultPayload(null);
final SearchResult.Builder builder = new Builder();
builder.addTitle("title")
.addSummary("summary")
.addRank(1)
builder.setTitle("title")
.setSummary("summary")
.setRank(1)
.addBreadcrumbs(breadcrumbs)
.addIcon(icon)
.addPayload(payload);
.setIcon(icon)
.setPayload(payload)
.setStableId(Objects.hash("title", "summary", 1));
sampleResults.add(builder.build());
builder.addRank(2);
builder.setRank(2)
.setStableId(Objects.hash("title", "summary", 2));
sampleResults.add(builder.build());
builder.addRank(3);
builder.setRank(3)
.setStableId(Objects.hash("title", "summary", 3));
sampleResults.add(builder.build());
return sampleResults;
}