From 5c4780f79931bf693d4c17d0350f6c9c3d234df4 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Wed, 18 Oct 2017 15:27:13 -0700 Subject: [PATCH] Misc logging improvements - Log ACTION_SEARCH_RESULTS whenever a search query is performed. eg, type "qu" will result 2 such logging events. - Remove historam logging to search result click count (already logged as ACTION_CLICK_SETTINGS_SEARCH_RESULT) Change-Id: Ia207b34702e0f24a7885e47d093f6cce1314ebc4 Fixes: 67743512 Fixes: 64939544 Test: robotests --- .../settings/core/InstrumentedFragment.java | 4 ++++ .../android/settings/search/SearchFragment.java | 14 ++------------ .../settings/search/SearchFragmentTest.java | 7 +++++-- 3 files changed, 11 insertions(+), 14 deletions(-) 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