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

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

Merge "Log settings suggestions events only once." into nyc-mr1-dev

parents 124251d5 bfbb964c
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.ArrayList;
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 ArrayList<String> mSuggestionsShownLogged;
    private ArrayList<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 ArrayList<>();
            mSuggestionsHiddenLogged = new ArrayList<>();
        } else {
            mSuggestionsShownLogged =
                    savedInstanceState.getStringArrayList(EXTRA_SUGGESTION_SHOWN_LOGGED);
            mSuggestionsHiddenLogged =
                    savedInstanceState.getStringArrayList(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, "onStart 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.putStringArrayList(EXTRA_SUGGESTION_HIDDEN_LOGGED, mSuggestionsHiddenLogged);
        outState.putStringArrayList(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;