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

Commit 96e6f695 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Filter and display top 3 suggestions for exclusive type"

parents 9b6b6d8c 70b634ad
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -41,12 +41,13 @@ import com.android.settings.dashboard.suggestions.SuggestionDismissController;
import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
import com.android.settings.dashboard.suggestions.SuggestionsChecks;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.CategoryKey;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity;
import com.android.settingslib.drawer.SettingsDrawerActivity.CategoryListener;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.suggestions.SuggestionList;
import com.android.settingslib.suggestions.SuggestionParser;

import java.util.ArrayList;
import java.util.List;
@@ -257,7 +258,9 @@ public class DashboardSummary extends InstrumentedFragment
            final Context context = getContext();
            boolean isSmartSuggestionEnabled =
                    mSuggestionFeatureProvider.isSmartSuggestionEnabled(context);
            List<Tile> suggestions = mSuggestionParser.getSuggestions(isSmartSuggestionEnabled);
            final SuggestionList sl = mSuggestionParser.getSuggestions(isSmartSuggestionEnabled);
            final List<Tile> suggestions = sl.getSuggestions();

            if (isSmartSuggestionEnabled) {
                List<String> suggestionIds = new ArrayList<>(suggestions.size());
                for (Tile suggestion : suggestions) {
@@ -275,6 +278,9 @@ public class DashboardSummary extends InstrumentedFragment
                    suggestions.remove(i--);
                }
            }
            if (sl.isExclusiveSuggestionCategory()) {
                mSuggestionFeatureProvider.filterExclusiveSuggestions(suggestions);
            }
            return suggestions;
        }

+1 −1
Original line number Diff line number Diff line
@@ -22,8 +22,8 @@ import android.support.v7.widget.helper.ItemTouchHelper;

import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.suggestions.SuggestionParser;

public class SuggestionDismissController extends ItemTouchHelper.SimpleCallback {

+6 −1
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@ package com.android.settings.dashboard.suggestions;

import android.content.Context;

import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.suggestions.SuggestionParser;

import java.util.List;

@@ -45,6 +45,11 @@ public interface SuggestionFeatureProvider {
     */
    void rankSuggestions(final List<Tile> suggestions, List<String> suggestionIds);

    /**
     * Only keep top few suggestions from exclusive suggestions.
     */
    void filterExclusiveSuggestions(List<Tile> suggestions);

    /**
     * Dismisses a suggestion.
     */
+16 −1
Original line number Diff line number Diff line
@@ -18,17 +18,21 @@ package com.android.settings.dashboard.suggestions;

import android.content.Context;
import android.content.pm.PackageManager;
import android.util.Log;

import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.suggestions.SuggestionParser;

import java.util.List;

public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider {

    private static final String TAG = "SuggestionFeature";
    private static final int EXCLUSIVE_SUGGESTION_MAX_COUNT = 3;

    private final SuggestionRanker mSuggestionRanker;
    private final MetricsFeatureProvider mMetricsFeatureProvider;

@@ -61,6 +65,17 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
        mSuggestionRanker.rankSuggestions(suggestions, suggestionIds);
    }

    @Override
    public void filterExclusiveSuggestions(List<Tile> suggestions) {
        if (suggestions == null) {
            return;
        }
        for (int i = suggestions.size() - 1; i >= EXCLUSIVE_SUGGESTION_MAX_COUNT; i--) {
            Log.d(TAG, "Removing exclusive suggestion");
            suggestions.remove(i);
        }
    }

    @Override
    public void dismissSuggestion(Context context, SuggestionParser parser, Tile suggestion) {
        if (parser == null || suggestion == null || context == null) {
+1 −1
Original line number Diff line number Diff line
@@ -24,8 +24,8 @@ import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.suggestions.SuggestionParser;

import org.junit.Before;
import org.junit.Test;
Loading