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(
|
||||
MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_RANK,
|
||||
resultViewHolder.getAdapterPosition()));
|
||||
taggedData.add(Pair.create(
|
||||
MetricsEvent.FIELD_SETTINGS_SEARCH_RESULT_ASYNC_RANKING_STATE,
|
||||
mSearchAdapter.getAsyncRankingState()));
|
||||
taggedData.add(Pair.create(
|
||||
MetricsEvent.FIELD_SETTINGS_SEARCH_QUERY_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})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
private @interface AsyncRankingState {}
|
||||
private static final int DISABLED = 0;
|
||||
private static final int PENDING_RESULTS = 1;
|
||||
private static final int SUCCEEDED = 2;
|
||||
private static final int FAILED = 3;
|
||||
private static final int TIMED_OUT = 4;
|
||||
@VisibleForTesting
|
||||
static final int DISABLED = 0;
|
||||
@VisibleForTesting
|
||||
static final int PENDING_RESULTS = 1;
|
||||
@VisibleForTesting
|
||||
static final int SUCCEEDED = 2;
|
||||
@VisibleForTesting
|
||||
static final int FAILED = 3;
|
||||
@VisibleForTesting
|
||||
static final int TIMED_OUT = 4;
|
||||
private @AsyncRankingState int mAsyncRankingState;
|
||||
|
||||
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.
|
||||
* Prioritizes results from the local database over installed apps.
|
||||
|
@@ -443,6 +443,8 @@ public class SearchFragmentTest {
|
||||
eq("test_setting"),
|
||||
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_ASYNC_RANKING_STATE)),
|
||||
argThat(pairMatches(MetricsProto.MetricsEvent.FIELD_SETTINGS_SEARCH_QUERY_LENGTH)));
|
||||
|
||||
verify(mFeatureFactory.searchFeatureProvider).searchResultClicked(nullable(Context.class),
|
||||
|
@@ -220,6 +220,7 @@ public class SearchResultsAdapterTest {
|
||||
assertThat(results.get(5).title).isEqualTo(TITLES[5]); // appCharlie
|
||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.SUCCEEDED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -245,6 +246,7 @@ public class SearchResultsAdapterTest {
|
||||
assertThat(results.get(5).title).isEqualTo(TITLES[5]); // appCharlie
|
||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.SUCCEEDED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -270,6 +272,7 @@ public class SearchResultsAdapterTest {
|
||||
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.FAILED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -295,6 +298,7 @@ public class SearchResultsAdapterTest {
|
||||
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.FAILED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -321,6 +325,7 @@ public class SearchResultsAdapterTest {
|
||||
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.TIMED_OUT);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -348,6 +353,7 @@ public class SearchResultsAdapterTest {
|
||||
assertThat(results.get(5).title).isEqualTo(TITLES[2]); // charlie
|
||||
verify(mFragment).onSearchResultsDisplayed(mSearchResultsCountCaptor.capture());
|
||||
assertThat(mSearchResultsCountCaptor.getValue()).isEqualTo(6);
|
||||
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.TIMED_OUT);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -451,6 +457,7 @@ public class SearchResultsAdapterTest {
|
||||
mAdapter.notifyResultsLoaded();
|
||||
verify(mSearchFeatureProvider, never()).querySearchResults(
|
||||
any(Context.class), anyString(), any(SearchResultsRankerCallback.class));
|
||||
assertThat(mAdapter.getAsyncRankingState()).isEqualTo(SearchResultsAdapter.DISABLED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -460,6 +467,8 @@ public class SearchResultsAdapterTest {
|
||||
mAdapter.notifyResultsLoaded();
|
||||
verify(mSearchFeatureProvider, times(1)).querySearchResults(
|
||||
any(Context.class), anyString(), any(SearchResultsRankerCallback.class));
|
||||
assertThat(mAdapter.getAsyncRankingState())
|
||||
.isEqualTo(SearchResultsAdapter.PENDING_RESULTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user