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

Commit d26489e5 authored by Doris Ling's avatar Doris Ling Committed by Android (Google) Code Review
Browse files

Merge "Log settings suggestions events only once."

parents c17d319f b14d4208
Loading
Loading
Loading
Loading
+35 −11
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity;
import com.android.settingslib.drawer.Tile;

import java.util.HashSet;
import java.util.List;

public class DashboardSummary extends InstrumentedFragment
@@ -63,6 +64,8 @@ public class DashboardSummary extends InstrumentedFragment
    private static final String SUGGESTIONS = "suggestions";

    private static final String EXTRA_SCROLL_POSITION = "scroll_position";
    private static final String EXTRA_SUGGESTION_SHOWN_LOGGED = "suggestions_shown_logged";
    private static final String EXTRA_SUGGESTION_HIDDEN_LOGGED = "suggestions_hidden_logged";

    private FocusRecyclerView mDashboard;
    private DashboardAdapter mAdapter;
@@ -71,6 +74,8 @@ public class DashboardSummary extends InstrumentedFragment
    private SuggestionParser mSuggestionParser;
    private LinearLayoutManager mLayoutManager;
    private SuggestionsChecks mSuggestionsChecks;
    private HashSet<String> mSuggestionsShownLogged;
    private HashSet<String> mSuggestionsHiddenLogged;

    @Override
    protected int getMetricsCategory() {
@@ -90,6 +95,15 @@ public class DashboardSummary extends InstrumentedFragment
        mSuggestionParser = new SuggestionParser(context,
                context.getSharedPreferences(SUGGESTIONS, 0), R.xml.suggestion_ordering);
        mSuggestionsChecks = new SuggestionsChecks(getContext());
        if (savedInstanceState == null) {
            mSuggestionsShownLogged = new HashSet();
            mSuggestionsHiddenLogged = new HashSet();
        } else {
            mSuggestionsShownLogged =
                    (HashSet) savedInstanceState.getSerializable(EXTRA_SUGGESTION_SHOWN_LOGGED);
            mSuggestionsHiddenLogged =
                    (HashSet) savedInstanceState.getSerializable(EXTRA_SUGGESTION_HIDDEN_LOGGED);
        }
        if (DEBUG_TIMING) Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime)
                + " ms");
    }
@@ -112,12 +126,6 @@ public class DashboardSummary extends InstrumentedFragment
                MetricsLogger.visible(getContext(), c.getMetricsConstant());
            }
        }
        if (mAdapter.getSuggestions() != null) {
            for (Tile suggestion : mAdapter.getSuggestions()) {
                MetricsLogger.action(getContext(), MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION,
                        DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion));
            }
        }
        if (DEBUG_TIMING) Log.d(TAG, "onResume took " + (System.currentTimeMillis() - startTime)
                + " ms");
    }
@@ -136,9 +144,15 @@ public class DashboardSummary extends InstrumentedFragment
        if (mAdapter.getSuggestions() == null) {
            return;
        }
        if (!getActivity().isChangingConfigurations()) {
            for (Tile suggestion : mAdapter.getSuggestions()) {
            MetricsLogger.action(getContext(), MetricsEvent.ACTION_HIDE_SETTINGS_SUGGESTION,
                    DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion));
                String id = DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion);
                if (!mSuggestionsHiddenLogged.contains(id)) {
                    mSuggestionsHiddenLogged.add(id);
                    MetricsLogger.action(getContext(),
                            MetricsEvent.ACTION_HIDE_SETTINGS_SUGGESTION, id);
                }
            }
        }
    }

@@ -169,6 +183,8 @@ public class DashboardSummary extends InstrumentedFragment
        if (mAdapter != null) {
            mAdapter.onSaveInstanceState(outState);
        }
        outState.putSerializable(EXTRA_SUGGESTION_HIDDEN_LOGGED, mSuggestionsHiddenLogged);
        outState.putSerializable(EXTRA_SUGGESTION_SHOWN_LOGGED, mSuggestionsShownLogged);
    }

    @Override
@@ -222,9 +238,17 @@ public class DashboardSummary extends InstrumentedFragment
        protected List<Tile> doInBackground(Void... params) {
            List<Tile> suggestions = mSuggestionParser.getSuggestions();
            for (int i = 0; i < suggestions.size(); i++) {
                if (mSuggestionsChecks.isSuggestionComplete(suggestions.get(i))) {
                    mAdapter.disableSuggestion(suggestions.get(i));
                Tile suggestion = suggestions.get(i);
                if (mSuggestionsChecks.isSuggestionComplete(suggestion)) {
                    mAdapter.disableSuggestion(suggestion);
                    suggestions.remove(i--);
                } else {
                    String id = DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion);
                    if (!mSuggestionsShownLogged.contains(id)) {
                        mSuggestionsShownLogged.add(id);
                        MetricsLogger.action(getContext(),
                                MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, id);
                    }
                }
            }
            return suggestions;