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
This commit is contained in:
@@ -49,4 +49,8 @@ public abstract class InstrumentedFragment extends ObservableFragment implements
|
||||
mVisibilityLoggerMixin.setSourceMetricsCategory(getActivity());
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
protected final VisibilityLoggerMixin getVisibilityLogger() {
|
||||
return mVisibilityLoggerMixin;
|
||||
}
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user