From 8f73968308df6057edf6f812989327e347d1054f Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Thu, 7 Dec 2017 15:41:48 -0800 Subject: [PATCH] Add feature flag to control battery app list. If feature flag is on, then display the app list. Otherwise disable it. Bug: 70234293 Test: RunSettingsRoboTests Change-Id: I1663f925abf95e0e4c1a46d98ca165303a76e979 --- .../android/settings/core/FeatureFlags.java | 1 + .../BatteryAppListPreferenceController.java | 4 +++- ...atteryAppListPreferenceControllerTest.java | 21 ++++++++++++++++++- .../fuelgauge/PowerUsageSummaryTest.java | 2 +- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java index 197876fcb17..9ceef47c06a 100644 --- a/src/com/android/settings/core/FeatureFlags.java +++ b/src/com/android/settings/core/FeatureFlags.java @@ -26,4 +26,5 @@ public class FeatureFlags { public static final String APP_INFO_V2 = "settings_app_info_v2"; public static final String CONNECTED_DEVICE_V2 = "settings_connected_device_v2"; public static final String BATTERY_SETTINGS_V2 = "settings_battery_v2"; + public static final String BATTERY_DISPLAY_APP_LIST = "settings_battery_display_app_list"; } diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java index ee0ed212f99..5d95dd2ec71 100644 --- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java @@ -36,6 +36,7 @@ import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import android.text.format.DateUtils; import android.util.ArrayMap; +import android.util.FeatureFlagUtils; import android.util.Log; import android.util.SparseArray; @@ -45,6 +46,7 @@ import com.android.internal.os.BatteryStatsHelper; import com.android.internal.os.PowerProfile; import com.android.settings.R; import com.android.settings.SettingsActivity; +import com.android.settings.core.FeatureFlags; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.Utils; import com.android.settings.core.instrumentation.MetricsFeatureProvider; @@ -149,7 +151,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro @Override public boolean isAvailable() { - return false; + return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.BATTERY_DISPLAY_APP_LIST); } @Override diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java index 528209115ef..a814989a405 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java @@ -27,6 +27,7 @@ import android.support.v14.preference.PreferenceFragment; import android.support.v7.preference.PreferenceGroup; import android.text.TextUtils; import android.text.format.DateUtils; +import android.util.FeatureFlagUtils; import android.util.SparseArray; import com.android.internal.os.BatterySipper; @@ -34,8 +35,10 @@ import com.android.internal.os.BatteryStatsImpl; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.TestConfig; +import com.android.settings.core.FeatureFlags; import com.android.settings.fuelgauge.anomaly.Anomaly; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settings.testutils.shadow.SettingsShadowSystemProperties; import org.junit.Before; import org.junit.Test; @@ -49,7 +52,8 @@ import org.robolectric.annotation.Config; import java.util.List; @RunWith(RobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = + SettingsShadowSystemProperties.class) public class BatteryAppListPreferenceControllerTest { private static final String[] PACKAGE_NAMES = {"com.app1", "com.app2"}; private static final String KEY_APP_LIST = "app_list"; @@ -169,6 +173,7 @@ public class BatteryAppListPreferenceControllerTest { @Test public void testRefreshAnomalyIcon_containsAnomaly_showAnomalyIcon() { + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.BATTERY_DISPLAY_APP_LIST, true); PowerGaugePreference preference = new PowerGaugePreference(mContext); final String key = mPreferenceController.extractKeyFromUid(UID); final SparseArray> anomalySparseArray = new SparseArray<>(); @@ -201,4 +206,18 @@ public class BatteryAppListPreferenceControllerTest { assertThat(mPreferenceController.shouldHideSipper(mNormalBatterySipper)).isFalse(); } + + @Test + public void testIsAvailable_featureOn_returnTrue() { + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.BATTERY_DISPLAY_APP_LIST, true); + + assertThat(mPreferenceController.isAvailable()).isTrue(); + } + + @Test + public void testIsAvailable_featureOff_returnFalse() { + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.BATTERY_DISPLAY_APP_LIST, false); + + assertThat(mPreferenceController.isAvailable()).isFalse(); + } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index 16439f43a81..0ca983f3f80 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -83,7 +83,7 @@ import java.util.List; // TODO: Improve this test class so that it starts up the real activity and fragment. @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, - sdk = TestConfig.SDK_VERSION_O, + sdk = TestConfig.SDK_VERSION, shadows = { SettingsShadowResources.class, SettingsShadowResources.SettingsShadowTheme.class,