Loading src/com/android/settings/dashboard/DashboardSummary.java +15 −7 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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() { Loading Loading @@ -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(() -> { Loading src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -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. Loading src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -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(); Loading src/com/android/settings/system/SystemDashboardFragment.java +0 −1 Original line number Diff line number Diff line Loading @@ -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; Loading tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading @@ -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 Loading
src/com/android/settings/dashboard/DashboardSummary.java +15 −7 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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() { Loading Loading @@ -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(() -> { Loading
src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -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. Loading
src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -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(); Loading
src/com/android/settings/system/SystemDashboardFragment.java +0 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading @@ -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