Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c4780f7 authored by Fan Zhang's avatar Fan Zhang
Browse files

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
parent 5317e70b
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -49,4 +49,8 @@ public abstract class InstrumentedFragment extends ObservableFragment implements
        mVisibilityLoggerMixin.setSourceMetricsCategory(getActivity());
        super.onResume();
    }

    protected final VisibilityLoggerMixin getVisibilityLogger() {
        return mVisibilityLoggerMixin;
    }
}
+2 −12
Original line number Diff line number Diff line
@@ -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());
    }

+5 −2
Original line number Diff line number Diff line
@@ -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