diff --git a/src/com/android/settings/core/InstrumentedFragment.java b/src/com/android/settings/core/InstrumentedFragment.java index 188dbde0782..45db836efcc 100644 --- a/src/com/android/settings/core/InstrumentedFragment.java +++ b/src/com/android/settings/core/InstrumentedFragment.java @@ -49,4 +49,8 @@ public abstract class InstrumentedFragment extends ObservableFragment implements mVisibilityLoggerMixin.setSourceMetricsCategory(getActivity()); super.onResume(); } + + protected final VisibilityLoggerMixin getVisibilityLogger() { + return mVisibilityLoggerMixin; + } } diff --git a/src/com/android/settings/search/SearchFragment.java b/src/com/android/settings/search/SearchFragment.java index 092404c7690..ca951c67e52 100644 --- a/src/com/android/settings/search/SearchFragment.java +++ b/src/com/android/settings/search/SearchFragment.java @@ -75,7 +75,6 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O private static final String STATE_QUERY = "state_query"; private static final String STATE_SHOWING_SAVED_QUERY = "state_showing_saved_query"; private static final String STATE_NEVER_ENTERED_QUERY = "state_never_entered_query"; - private static final String STATE_RESULT_CLICK_COUNT = "state_result_click_count"; static final class SearchLoaderId { // Search Query IDs @@ -96,17 +95,12 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O @VisibleForTesting AtomicInteger mUnfinishedLoadersCount = new AtomicInteger(NUM_QUERY_LOADERS); - // Logging - @VisibleForTesting - static final String RESULT_CLICK_COUNT = "settings_search_result_click_count"; - @VisibleForTesting String mQuery; private boolean mNeverEnteredQuery = true; @VisibleForTesting boolean mShowingSavedQuery; - private int mResultClickCount; private MetricsFeatureProvider mMetricsFeatureProvider; @VisibleForTesting SavedQueryController mSavedQueryController; @@ -161,7 +155,6 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O if (savedInstanceState != null) { mQuery = savedInstanceState.getString(STATE_QUERY); mNeverEnteredQuery = savedInstanceState.getBoolean(STATE_NEVER_ENTERED_QUERY); - mResultClickCount = savedInstanceState.getInt(STATE_RESULT_CLICK_COUNT); mShowingSavedQuery = savedInstanceState.getBoolean(STATE_SHOWING_SAVED_QUERY); } else { mShowingSavedQuery = true; @@ -244,7 +237,6 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O super.onStop(); final Activity activity = getActivity(); if (activity != null && activity.isFinishing()) { - mMetricsFeatureProvider.histogram(activity, RESULT_CLICK_COUNT, mResultClickCount); if (mNeverEnteredQuery) { mMetricsFeatureProvider.action(activity, MetricsEvent.ACTION_LEAVE_SEARCH_RESULT_WITHOUT_QUERY); @@ -258,7 +250,6 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O outState.putString(STATE_QUERY, mQuery); outState.putBoolean(STATE_NEVER_ENTERED_QUERY, mNeverEnteredQuery); outState.putBoolean(STATE_SHOWING_SAVED_QUERY, mShowingSavedQuery); - outState.putInt(STATE_RESULT_CLICK_COUNT, mResultClickCount); } @Override @@ -276,7 +267,6 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O mNoResultsView.setVisibility(View.GONE); } - mResultClickCount = 0; mNeverEnteredQuery = false; mQuery = query; @@ -335,7 +325,6 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O if (mUnfinishedLoadersCount.decrementAndGet() != 0) { return; } - mSearchAdapter.notifyResultsLoaded(); } @@ -372,7 +361,6 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O logSearchResultClicked(resultViewHolder, result, logTaggedData); mSearchFeatureProvider.searchResultClicked(getContext(), mQuery, result); mSavedQueryController.saveQuery(mQuery); - mResultClickCount++; } public void onSearchResultsDisplayed(int resultCount) { @@ -384,6 +372,8 @@ public class SearchFragment extends InstrumentedFragment implements SearchView.O mNoResultsView.setVisibility(View.GONE); mResultsRecyclerView.scrollToPosition(0); } + mMetricsFeatureProvider.action( + getVisibilityLogger(), MetricsEvent.ACTION_SEARCH_RESULTS, 1); mSearchFeatureProvider.showFeedbackButton(this, getView()); } diff --git a/tests/robotests/src/com/android/settings/search/SearchFragmentTest.java b/tests/robotests/src/com/android/settings/search/SearchFragmentTest.java index 4976c6a01ef..b897008aa80 100644 --- a/tests/robotests/src/com/android/settings/search/SearchFragmentTest.java +++ b/tests/robotests/src/com/android/settings/search/SearchFragmentTest.java @@ -43,6 +43,7 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.TestConfig; +import com.android.settings.core.instrumentation.VisibilityLoggerMixin; import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; @@ -207,8 +208,6 @@ public class SearchFragmentTest { verify(mFeatureFactory.metricsFeatureProvider, never()).action( any(Context.class), eq(MetricsProto.MetricsEvent.ACTION_LEAVE_SEARCH_RESULT_WITHOUT_QUERY)); - verify(mFeatureFactory.metricsFeatureProvider).histogram( - any(Context.class), eq(SearchFragment.RESULT_CLICK_COUNT), eq(0)); verify(mFeatureFactory.searchFeatureProvider) .getDatabaseSearchLoader(any(Context.class), anyString()); verify(mFeatureFactory.searchFeatureProvider) @@ -231,6 +230,10 @@ public class SearchFragmentTest { any(Context.class), anyInt(), eq(MetricsProto.MetricsEvent.SETTINGS_SEARCH_NO_RESULT)); + verify(mFeatureFactory.metricsFeatureProvider).action( + any(VisibilityLoggerMixin.class), + eq(MetricsProto.MetricsEvent.ACTION_SEARCH_RESULTS), + eq(1)); } @Test