From 2cbd720d215c5c241d65dc585e88b4a7c656957b Mon Sep 17 00:00:00 2001 From: Antony Sargent Date: Mon, 29 Oct 2018 14:59:15 -0700 Subject: [PATCH] Add a feature flag for new version of Network and internet settings page In addition to adding the flag, this also adds a new xml layout that is the same as the existing network and internet page, but will begin to be changed in subsequent CLs. There is also a change in code to use this new layout when the flag is turned on. One other change is to make the list of displayed feature flags in developer options be in sorted order instead of whatever semirandom order they come out of the map's key set. Bug: 116349402 Test: Manual (settings_network_and_internet_v2 flag should should up in Settings -> System -> Developer options -> Feature flags, and those flags should be in sorted order) Change-Id: I5520d286efb6bec50ba4ca99f64aeca94f01d533 --- res/xml/network_and_internet_v2.xml | 100 ++++++++++++++++++ .../android/settings/core/FeatureFlags.java | 1 + .../FeatureFlagsPreferenceController.java | 5 +- .../network/NetworkDashboardFragment.java | 8 +- 4 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 res/xml/network_and_internet_v2.xml diff --git a/res/xml/network_and_internet_v2.xml b/res/xml/network_and_internet_v2.xml new file mode 100644 index 00000000000..680b268d1df --- /dev/null +++ b/res/xml/network_and_internet_v2.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java index 567bd121898..811f7ade83f 100644 --- a/src/com/android/settings/core/FeatureFlags.java +++ b/src/com/android/settings/core/FeatureFlags.java @@ -27,4 +27,5 @@ public class FeatureFlags { public static final String MOBILE_NETWORK_V2 = "settings_mobile_network_v2"; public static final String DATA_USAGE_V2 = "settings_data_usage_v2"; public static final String WIFI_MAC_RANDOMIZATION = "settings_wifi_mac_randomization"; + public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2"; } diff --git a/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java b/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java index e6bd2095c52..1c4df4cb23c 100644 --- a/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java +++ b/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java @@ -59,8 +59,7 @@ public class FeatureFlagsPreferenceController extends BasePreferenceController } mGroup.removeAll(); final Context prefContext = mGroup.getContext(); - for (String feature : featureMap.keySet()) { - mGroup.addPreference(new FeatureFlagPreference(prefContext, feature)); - } + featureMap.keySet().stream().sorted().forEach(feature -> + mGroup.addPreference(new FeatureFlagPreference(prefContext, feature))); } } diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java index 9706ba01ec6..70481f107a8 100644 --- a/src/com/android/settings/network/NetworkDashboardFragment.java +++ b/src/com/android/settings/network/NetworkDashboardFragment.java @@ -21,6 +21,7 @@ import static com.android.settings.network.MobilePlanPreferenceController import android.app.Dialog; import android.content.Context; import android.provider.SearchIndexableResource; +import android.util.FeatureFlagUtils; import android.util.Log; import androidx.appcompat.app.AlertDialog; @@ -28,6 +29,7 @@ import androidx.fragment.app.Fragment; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; +import com.android.settings.core.FeatureFlags; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.network.MobilePlanPreferenceController.MobilePlanPreferenceHost; import com.android.settings.search.BaseSearchIndexProvider; @@ -59,7 +61,11 @@ public class NetworkDashboardFragment extends DashboardFragment implements @Override protected int getPreferenceScreenResId() { - return R.xml.network_and_internet; + if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2)) { + return R.xml.network_and_internet_v2; + } else { + return R.xml.network_and_internet; + } } @Override