diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java b/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java index 0142203499e..f58946dfa1c 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java @@ -26,6 +26,7 @@ import android.os.RemoteException; import android.service.settings.suggestions.ISuggestionService; import android.service.settings.suggestions.Suggestion; import android.support.annotation.VisibleForTesting; +import android.util.FeatureFlagUtils; import android.util.Log; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -40,6 +41,8 @@ import java.util.List; */ public class SuggestionControllerMixin implements LifecycleObserver, OnStart, OnStop { + @VisibleForTesting + static final String FEATURE_FLAG = "new_settings_suggestion"; private static final String TAG = "SuggestionCtrlMixin"; private static final boolean DEBUG = false; @@ -49,6 +52,10 @@ public class SuggestionControllerMixin implements LifecycleObserver, OnStart, On private ISuggestionService mRemoteService; + public static boolean isEnabled() { + return FeatureFlagUtils.isEnabled(FEATURE_FLAG); + } + public SuggestionControllerMixin(Context context, Lifecycle lifecycle) { mContext = context.getApplicationContext(); mServiceIntent = new Intent().setComponent( @@ -79,11 +86,6 @@ public class SuggestionControllerMixin implements LifecycleObserver, OnStart, On } } - public boolean isEnabled() { - // TODO: Set up feature flag - return true; - } - /** * Get setting suggestions. */ diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java index 10611846bc2..ac2026c0cc4 100644 --- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java @@ -21,13 +21,15 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; -import android.os.RemoteException; import android.service.settings.suggestions.ISuggestionService; +import android.util.FeatureFlagUtils; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.testutils.shadow.SettingsShadowSystemProperties; import com.android.settingslib.core.lifecycle.Lifecycle; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -37,7 +39,10 @@ import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, + shadows = { + SettingsShadowSystemProperties.class + }) public class SuggestionControllerMixinTest { @Mock @@ -55,10 +60,23 @@ public class SuggestionControllerMixinTest { when(mContext.getApplicationContext()).thenReturn(mContext); } + @After + public void tearDown() { + SettingsShadowSystemProperties.clear(); + } + @Test - public void verifyIsEnabled() { - mMixin = new SuggestionControllerMixin(mContext, mLifecycle); - assertThat(mMixin.isEnabled()).isTrue(); + public void systemPropertySet_verifyIsEnabled() { + SettingsShadowSystemProperties.set( + FeatureFlagUtils.FFLAG_PREFIX + SuggestionControllerMixin.FEATURE_FLAG, "true"); + assertThat(SuggestionControllerMixin.isEnabled()).isTrue(); + } + + @Test + public void systemPropertyNotSet_verifyIsDisabled() { + SettingsShadowSystemProperties.set( + FeatureFlagUtils.FFLAG_PREFIX + SuggestionControllerMixin.FEATURE_FLAG, "false"); + assertThat(SuggestionControllerMixin.isEnabled()).isFalse(); } @Test