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

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

Merge "Re-add isSuggestionEnabled check"

parents 10cdf29b 0ec6b02f
Loading
Loading
Loading
Loading
+15 −7
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.settings.dashboard.conditional.ConditionManager.ConditionList
import com.android.settings.dashboard.conditional.FocusRecyclerView;
import com.android.settings.dashboard.conditional.FocusRecyclerView.FocusListener;
import com.android.settings.dashboard.suggestions.SuggestionDismissController;
import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.ActionBarShadowController;
import com.android.settingslib.drawer.CategoryKey;
@@ -86,11 +87,15 @@ public class DashboardSummary extends InstrumentedFragment
    public void onAttach(Context context) {
        super.onAttach(context);
        Log.d(TAG, "Creating SuggestionControllerMixin");
        final SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory
                .getFactory(context)
                .getSuggestionFeatureProvider(context);
        if (suggestionFeatureProvider.isSuggestionEnabled(context)) {
            mSuggestionControllerMixin = new SuggestionControllerMixin(context, this /* host */,
                getLifecycle(), FeatureFactory.getFactory(context)
                                    .getSuggestionFeatureProvider(context)
                    getLifecycle(), suggestionFeatureProvider
                    .getSuggestionServiceComponent());
        }
    }

    @Override
    public LoaderManager getLoaderManager() {
@@ -302,6 +307,9 @@ public class DashboardSummary extends InstrumentedFragment
                CategoryKey.CATEGORY_HOMEPAGE);
        mSummaryLoader.updateSummaryToCache(category);
        mStagingCategory = category;
        if (mSuggestionControllerMixin == null) {
            return;
        }
        if (mSuggestionControllerMixin.isSuggestionLoaded()) {
            Log.d(TAG, "Suggestion has loaded, setting suggestion/category");
            ThreadUtils.postOnMainThread(() -> {
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ public interface SuggestionFeatureProvider {
    /**
     * Whether or not the whole suggestion feature is enabled.
     */
    boolean isSuggestionV2Enabled(Context context);
    boolean isSuggestionEnabled(Context context);

    /**
     * Returns the component name for SuggestionService.
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
    private final MetricsFeatureProvider mMetricsFeatureProvider;

    @Override
    public boolean isSuggestionV2Enabled(Context context) {
    public boolean isSuggestionEnabled(Context context) {
        final ActivityManager am =
                (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        return !am.isLowRamDevice();
+0 −1
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.settings.system;

import android.content.Context;
import android.os.Bundle;
import android.os.UserManager;
import android.provider.SearchIndexableResource;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
+27 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.dashboard;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.doNothing;
@@ -34,9 +35,11 @@ import android.support.v7.widget.LinearLayoutManager;
import com.android.settings.TestConfig;
import com.android.settings.dashboard.conditional.ConditionManager;
import com.android.settings.dashboard.conditional.FocusRecyclerView;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.drawer.CategoryKey;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.suggestions.SuggestionControllerMixin;

import org.junit.Before;
import org.junit.Test;
@@ -67,10 +70,12 @@ public class DashboardSummaryTest {

    private Context mContext;
    private DashboardSummary mSummary;
    private FakeFeatureFactory mFeatureFactory;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mFeatureFactory = FakeFeatureFactory.setupForTest();
        mContext = RuntimeEnvironment.application;
        mSummary = spy(new DashboardSummary());
        ReflectionHelpers.setField(mSummary, "mAdapter", mAdapter);
@@ -82,6 +87,28 @@ public class DashboardSummaryTest {
        ReflectionHelpers.setField(mSummary, "mSummaryLoader", mSummaryLoader);
    }

    @Test
    public void onAttach_suggestionDisabled_shouldNotStartSuggestionControllerMixin() {
        when(mFeatureFactory.suggestionsFeatureProvider.isSuggestionEnabled(any(Context.class)))
                .thenReturn(false);

        mSummary.onAttach(mContext);
        final SuggestionControllerMixin mixin = ReflectionHelpers
                .getField(mSummary, "mSuggestionControllerMixin");
        assertThat(mixin).isNull();
    }

    @Test
    public void onAttach_suggestionEnabled_shouldStartSuggestionControllerMixin() {
        when(mFeatureFactory.suggestionsFeatureProvider.isSuggestionEnabled(any(Context.class)))
                .thenReturn(true);

        mSummary.onAttach(mContext);
        final SuggestionControllerMixin mixin = ReflectionHelpers
                .getField(mSummary, "mSuggestionControllerMixin");
        assertThat(mixin).isNotNull();
    }

    @Test
    public void updateCategory_shouldGetCategoryFromFeatureProvider() {
        doReturn(mock(Activity.class)).when(mSummary).getActivity();
Loading