Add feature flag for suggestion/SettingsIntelligence integ.

Bug: 65065268
Test: robotests
Change-Id: I42e1f8b01d7b82de3b94bd77943a9a119adf5867
This commit is contained in:
Fan Zhang
2017-09-14 16:04:35 -07:00
parent fe18f8e876
commit 230b3767d9
2 changed files with 30 additions and 10 deletions

View File

@@ -26,6 +26,7 @@ import android.os.RemoteException;
import android.service.settings.suggestions.ISuggestionService; import android.service.settings.suggestions.ISuggestionService;
import android.service.settings.suggestions.Suggestion; import android.service.settings.suggestions.Suggestion;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.util.FeatureFlagUtils;
import android.util.Log; import android.util.Log;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -40,6 +41,8 @@ import java.util.List;
*/ */
public class SuggestionControllerMixin implements LifecycleObserver, OnStart, OnStop { 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 String TAG = "SuggestionCtrlMixin";
private static final boolean DEBUG = false; private static final boolean DEBUG = false;
@@ -49,6 +52,10 @@ public class SuggestionControllerMixin implements LifecycleObserver, OnStart, On
private ISuggestionService mRemoteService; private ISuggestionService mRemoteService;
public static boolean isEnabled() {
return FeatureFlagUtils.isEnabled(FEATURE_FLAG);
}
public SuggestionControllerMixin(Context context, Lifecycle lifecycle) { public SuggestionControllerMixin(Context context, Lifecycle lifecycle) {
mContext = context.getApplicationContext(); mContext = context.getApplicationContext();
mServiceIntent = new Intent().setComponent( 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. * Get setting suggestions.
*/ */

View File

@@ -21,13 +21,15 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.RemoteException;
import android.service.settings.suggestions.ISuggestionService; import android.service.settings.suggestions.ISuggestionService;
import android.util.FeatureFlagUtils;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -37,7 +39,10 @@ import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class) @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 { public class SuggestionControllerMixinTest {
@Mock @Mock
@@ -55,10 +60,23 @@ public class SuggestionControllerMixinTest {
when(mContext.getApplicationContext()).thenReturn(mContext); when(mContext.getApplicationContext()).thenReturn(mContext);
} }
@After
public void tearDown() {
SettingsShadowSystemProperties.clear();
}
@Test @Test
public void verifyIsEnabled() { public void systemPropertySet_verifyIsEnabled() {
mMixin = new SuggestionControllerMixin(mContext, mLifecycle); SettingsShadowSystemProperties.set(
assertThat(mMixin.isEnabled()).isTrue(); 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 @Test