Log async ranking state in Settings search ranking
Bug: 62072727 Test: RunSettingsRoboTests Change-Id: I2140c41d01f18a1e4b9e3f505e0afa4a8757d049
This commit is contained in:
@@ -418,6 +418,9 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O
|
|||||||
taggedData.add(Pair.create(
|
taggedData.add(Pair.create(
|
||||||
MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_RANK,
|
MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_RANK,
|
||||||
resultViewHolder.getAdapterPosition()));
|
resultViewHolder.getAdapterPosition()));
|
||||||
|
taggedData.add(Pair.create(
|
||||||
|
MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_ASYNC_RANKING_STATE,
|
||||||
|
mSearchAdapter.getAsyncRankingState()));
|
||||||
taggedData.add(Pair.create(
|
taggedData.add(Pair.create(
|
||||||
MetricsEvent.FIELD_SETTINGS_SEARCH_QUERY_LENGTH,
|
MetricsEvent.FIELD_SETTINGS_SEARCH_QUERY_LENGTH,
|
||||||
TextUtils.isEmpty(mQuery) ? 0 : mQuery.length()));
|
TextUtils.isEmpty(mQuery) ? 0 : mQuery.length()));
|
||||||
|
@@ -77,11 +77,16 @@ public class SearchResultsAdapter extends RecyclerView.Adapter<SearchViewHolder>
|
|||||||
@IntDef({DISABLED, PENDING_RESULTS, SUCCEEDED, FAILED, TIMED_OUT})
|
@IntDef({DISABLED, PENDING_RESULTS, SUCCEEDED, FAILED, TIMED_OUT})
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
private @interface AsyncRankingState {}
|
private @interface AsyncRankingState {}
|
||||||
private static final int DISABLED = 0;
|
@VisibleForTesting
|
||||||
private static final int PENDING_RESULTS = 1;
|
static final int DISABLED = 0;
|
||||||
private static final int SUCCEEDED = 2;
|
@VisibleForTesting
|
||||||
private static final int FAILED = 3;
|
static final int PENDING_RESULTS = 1;
|
||||||
private static final int TIMED_OUT = 4;
|
@VisibleForTesting
|
||||||
|
static final int SUCCEEDED = 2;
|
||||||
|
@VisibleForTesting
|
||||||
|
static final int FAILED = 3;
|
||||||
|
@VisibleForTesting
|
||||||
|
static final int TIMED_OUT = 4;
|
||||||
private @AsyncRankingState int mAsyncRankingState;
|
private @AsyncRankingState int mAsyncRankingState;
|
||||||
|
|
||||||
public SearchResultsAdapter(SearchFragment fragment,
|
public SearchResultsAdapter(SearchFragment fragment,
|
||||||
@@ -244,6 +249,10 @@ public class SearchResultsAdapter extends RecyclerView.Adapter<SearchViewHolder>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AsyncRankingState int getAsyncRankingState() {
|
||||||
|
return mAsyncRankingState;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Merge the results from each of the loaders into one list for the adapter.
|
* Merge the results from each of the loaders into one list for the adapter.
|
||||||
* Prioritizes results from the local database over installed apps.
|
* Prioritizes results from the local database over installed apps.
|
||||||
|
@@ -443,6 +443,8 @@ public class SearchFragmentTest {
|
|||||||
eq("test_setting"),
|
eq("test_setting"),
|
||||||
argThat(pairMatches(MetricsProto.MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_COUNT)),
|
argThat(pairMatches(MetricsProto.MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_COUNT)),
|
||||||
argThat(pairMatches(MetricsProto.MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_RANK)),
|
argThat(pairMatches(MetricsProto.MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_RANK)),
|
||||||
|
argThat(pairMatches(MetricsProto.MetricsEvent
|
||||||
|
.FIELD_SETTINGS_SEARCH_RESULT_ASYNC_RANKING_STATE)),
|
||||||
argThat(pairMatches(MetricsProto.MetricsEvent.FIELD_SETTINGS_SEARCH_QUERY_LENGTH)));
|
argThat(pairMatches(MetricsProto.MetricsEvent.FIELD_SETTINGS_SEARCH_QUERY_LENGTH)));
|
||||||
|
|
||||||
verify(mFeatureFactory.searchFeatureProvider).searchResultClicked(nullable(Context.class),
|
verify(mFeatureFactory.searchFeatureProvider).searchResultClicked(nullable(Context.class),
|
||||||
|
@@ -220,6 +220,7 @@ public class SearchResultsAdapterTest {
|
|||||||
assertThat(results.get(5).title).isEqualTo(TITLES[5]); // appCharlie
|
assertThat(results.get(5).title).isEqualTo(TITLES[5]); // appCharlie
|
||||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||||
|
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.SUCCEEDED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -245,6 +246,7 @@ public class SearchResultsAdapterTest {
|
|||||||
assertThat(results.get(5).title).isEqualTo(TITLES[5]); // appCharlie
|
assertThat(results.get(5).title).isEqualTo(TITLES[5]); // appCharlie
|
||||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||||
|
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.SUCCEEDED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -270,6 +272,7 @@ public class SearchResultsAdapterTest {
|
|||||||
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
||||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||||
|
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.FAILED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -295,6 +298,7 @@ public class SearchResultsAdapterTest {
|
|||||||
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
||||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||||
|
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.FAILED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -321,6 +325,7 @@ public class SearchResultsAdapterTest {
|
|||||||
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
||||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||||
|
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.TIMED_OUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -348,6 +353,7 @@ public class SearchResultsAdapterTest {
|
|||||||
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
||||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||||
|
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.TIMED_OUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -451,6 +457,7 @@ public class SearchResultsAdapterTest {
|
|||||||
mAdapter.notifyResultsLoaded();
|
mAdapter.notifyResultsLoaded();
|
||||||
verify(mSearchFeatureProvider, never()).querySearchResults(
|
verify(mSearchFeatureProvider, never()).querySearchResults(
|
||||||
any(Context.class), anyString(), any(SearchResultsRankerCallback.class));
|
any(Context.class), anyString(), any(SearchResultsRankerCallback.class));
|
||||||
|
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.DISABLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -460,6 +467,8 @@ public class SearchResultsAdapterTest {
|
|||||||
mAdapter.notifyResultsLoaded();
|
mAdapter.notifyResultsLoaded();
|
||||||
verify(mSearchFeatureProvider, times(1)).querySearchResults(
|
verify(mSearchFeatureProvider, times(1)).querySearchResults(
|
||||||
any(Context.class), anyString(), any(SearchResultsRankerCallback.class));
|
any(Context.class), anyString(), any(SearchResultsRankerCallback.class));
|
||||||
|
assertThat(mAdapter.getAsyncRankingState())
|
||||||
|
.isEqualTo(SearchResultsAdapter.PENDING_RESULTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user