Update feature flag dashboard UI to display all features

Bug: 36222960
Test: robotests
Change-Id: I1aea8f32df9bd8ae24708374b60d173953a7c266
This commit is contained in:
Fan Zhang
2017-12-07 12:48:12 -08:00
parent d7d5754cfd
commit 3ba0381567
8 changed files with 25 additions and 17 deletions

View File

@@ -84,7 +84,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
super.onCreate(icicle); super.onCreate(icicle);
final Bundle arguments = getArguments(); final Bundle arguments = getArguments();
if (FeatureFlagUtils.isEnabled(getContext(), DEVICE_INFO_V2) || true) { if (FeatureFlagUtils.isEnabled(getContext(), DEVICE_INFO_V2)) {
// Do not override initial expand children count if we come from // Do not override initial expand children count if we come from
// search (EXTRA_FRAGMENT_ARG_KEY is set) - we need to display every if entry point // search (EXTRA_FRAGMENT_ARG_KEY is set) - we need to display every if entry point
// is search. // is search.
@@ -119,7 +119,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
@Override @Override
protected int getPreferenceScreenResId() { protected int getPreferenceScreenResId() {
return FeatureFlagUtils.isEnabled(getContext(), DEVICE_INFO_V2) || true return FeatureFlagUtils.isEnabled(getContext(), DEVICE_INFO_V2)
? R.xml.device_info_settings_v2 : R.xml.device_info_settings; ? R.xml.device_info_settings_v2 : R.xml.device_info_settings;
} }
@@ -156,7 +156,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context, private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Activity activity, Fragment fragment, Lifecycle lifecycle) { Activity activity, Fragment fragment, Lifecycle lifecycle) {
if (FeatureFlagUtils.isEnabled(context, DEVICE_INFO_V2) || true) { if (FeatureFlagUtils.isEnabled(context, DEVICE_INFO_V2)) {
final List<AbstractPreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
// Device name // Device name
@@ -220,7 +220,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
public List<SearchIndexableResource> getXmlResourcesToIndex( public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) { Context context, boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context); final SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = FeatureFlagUtils.isEnabled(context, DEVICE_INFO_V2) || true sir.xmlResId = FeatureFlagUtils.isEnabled(context, DEVICE_INFO_V2)
? R.xml.device_info_settings_v2 : R.xml.device_info_settings; ? R.xml.device_info_settings_v2 : R.xml.device_info_settings;
return Arrays.asList(sir); return Arrays.asList(sir);
} }

View File

@@ -92,7 +92,7 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
} }
private static boolean isV2Enabled(Context context) { private static boolean isV2Enabled(Context context) {
return FeatureFlagUtils.isEnabled(context, SUGGESTIONS_V2) || true; return FeatureFlagUtils.isEnabled(context, SUGGESTIONS_V2);
} }
@Override @Override

View File

@@ -17,7 +17,6 @@
package com.android.settings.development.featureflags; package com.android.settings.development.featureflags;
import android.content.Context; import android.content.Context;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
@@ -68,14 +67,8 @@ public class FeatureFlagsPreferenceController extends AbstractPreferenceControll
} }
mScreen.removeAll(); mScreen.removeAll();
final Context prefContext = mScreen.getContext(); final Context prefContext = mScreen.getContext();
for (String prefixedFeature : featureMap.keySet()) { for (String feature : featureMap.keySet()) {
if (prefixedFeature.startsWith(FeatureFlagUtils.FFLAG_PREFIX) mScreen.addPreference(new FeatureFlagPreference(prefContext, feature));
&& !prefixedFeature.startsWith(FeatureFlagUtils.FFLAG_OVERRIDE_PREFIX)) {
final String feature = prefixedFeature.substring(
FeatureFlagUtils.FFLAG_PREFIX.length());
final Preference pref = new FeatureFlagPreference(prefContext, feature);
mScreen.addPreference(pref);
}
} }
} }
} }

View File

@@ -51,7 +51,7 @@ public class DeviceModelPreferenceController extends AbstractPreferenceControlle
super.displayPreference(screen); super.displayPreference(screen);
final Preference pref = screen.findPreference(KEY_DEVICE_MODEL); final Preference pref = screen.findPreference(KEY_DEVICE_MODEL);
if (pref != null) { if (pref != null) {
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.DEVICE_INFO_V2) || true) { if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.DEVICE_INFO_V2)) {
pref.setSummary(mContext.getResources().getString(R.string.model_summary, pref.setSummary(mContext.getResources().getString(R.string.model_summary,
getDeviceModel())); getDeviceModel()));
} else { } else {

View File

@@ -59,7 +59,7 @@ public class HardwareInfoDialogFragment extends InstrumentedDialogFragment {
DeviceModelPreferenceController.getDeviceModel()); DeviceModelPreferenceController.getDeviceModel());
// Serial number // Serial number
if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DEVICE_INFO_V2) || true) { if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DEVICE_INFO_V2)) {
setText(content, R.id.serial_number_label, R.id.serial_number_value, getSerialNumber()); setText(content, R.id.serial_number_label, R.id.serial_number_value, getSerialNumber());
} else { } else {
content.findViewById(R.id.serial_number_label).setVisibility(View.GONE); content.findViewById(R.id.serial_number_label).setVisibility(View.GONE);

View File

@@ -94,7 +94,12 @@ public class DeviceInfoSettingsTest {
} }
@Test @Test
@Config(shadows = {
SettingsShadowSystemProperties.class
})
public void getPrefXml_shouldReturnDeviceInfoXml() { public void getPrefXml_shouldReturnDeviceInfoXml() {
SystemProperties.set(FeatureFlagUtils.FFLAG_OVERRIDE_PREFIX + FeatureFlags.DEVICE_INFO_V2,
"true");
assertThat(mSettings.getPreferenceScreenResId()).isEqualTo(R.xml.device_info_settings_v2); assertThat(mSettings.getPreferenceScreenResId()).isEqualTo(R.xml.device_info_settings_v2);
} }

View File

@@ -21,6 +21,7 @@ import static android.arch.lifecycle.Lifecycle.Event.ON_START;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -70,6 +71,6 @@ public class FeatureFlagPreferenceControllerTest {
mLifecycle.handleLifecycleEvent(ON_START); mLifecycle.handleLifecycleEvent(ON_START);
verify(mScreen).removeAll(); verify(mScreen).removeAll();
verify(mScreen).addPreference(any(FeatureFlagPreference.class)); verify(mScreen, atLeastOnce()).addPreference(any(FeatureFlagPreference.class));
} }
} }

View File

@@ -26,12 +26,16 @@ import static org.mockito.Mockito.when;
import android.app.Fragment; import android.app.Fragment;
import android.content.Context; import android.content.Context;
import android.os.SystemProperties;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.util.FeatureFlagUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import com.android.settings.core.FeatureFlags;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -72,7 +76,12 @@ public class DeviceModelPreferenceControllerTest {
} }
@Test @Test
@Config(shadows = {
SettingsShadowSystemProperties.class
})
public void displayPref_shouldSetSummary() { public void displayPref_shouldSetSummary() {
SystemProperties.set(FeatureFlagUtils.FFLAG_OVERRIDE_PREFIX + FeatureFlags.DEVICE_INFO_V2,
"true");
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
verify(mPreference).setSummary(mContext.getResources().getString(R.string.model_summary, verify(mPreference).setSummary(mContext.getResources().getString(R.string.model_summary,