Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f739683 authored by jackqdyulei's avatar jackqdyulei
Browse files

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
parent 12405495
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -26,4 +26,5 @@ public class FeatureFlags {
    public static final String APP_INFO_V2 = "settings_app_info_v2";
    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 CONNECTED_DEVICE_V2 = "settings_connected_device_v2";
    public static final String BATTERY_SETTINGS_V2 = "settings_battery_v2";
    public static final String BATTERY_SETTINGS_V2 = "settings_battery_v2";
    public static final String BATTERY_DISPLAY_APP_LIST = "settings_battery_display_app_list";
}
}
+3 −1
Original line number Original line Diff line number Diff line
@@ -36,6 +36,7 @@ import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.ArrayMap;
import android.util.FeatureFlagUtils;
import android.util.Log;
import android.util.Log;
import android.util.SparseArray;
import android.util.SparseArray;


@@ -45,6 +46,7 @@ import com.android.internal.os.BatteryStatsHelper;
import com.android.internal.os.PowerProfile;
import com.android.internal.os.PowerProfile;
import com.android.settings.R;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsActivity;
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.Utils;
import com.android.settings.Utils;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
@@ -149,7 +151,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro


    @Override
    @Override
    public boolean isAvailable() {
    public boolean isAvailable() {
        return false;
        return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.BATTERY_DISPLAY_APP_LIST);
    }
    }


    @Override
    @Override
+20 −1
Original line number Original line Diff line number Diff line
@@ -27,6 +27,7 @@ import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceGroup;
import android.text.TextUtils;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.text.format.DateUtils;
import android.util.FeatureFlagUtils;
import android.util.SparseArray;
import android.util.SparseArray;


import com.android.internal.os.BatterySipper;
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.R;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsActivity;
import com.android.settings.TestConfig;
import com.android.settings.TestConfig;
import com.android.settings.core.FeatureFlags;
import com.android.settings.fuelgauge.anomaly.Anomaly;
import com.android.settings.fuelgauge.anomaly.Anomaly;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;


import org.junit.Before;
import org.junit.Before;
import org.junit.Test;
import org.junit.Test;
@@ -49,7 +52,8 @@ import org.robolectric.annotation.Config;
import java.util.List;
import java.util.List;


@RunWith(RobolectricTestRunner.class)
@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 {
public class BatteryAppListPreferenceControllerTest {
    private static final String[] PACKAGE_NAMES = {"com.app1", "com.app2"};
    private static final String[] PACKAGE_NAMES = {"com.app1", "com.app2"};
    private static final String KEY_APP_LIST = "app_list";
    private static final String KEY_APP_LIST = "app_list";
@@ -169,6 +173,7 @@ public class BatteryAppListPreferenceControllerTest {


    @Test
    @Test
    public void testRefreshAnomalyIcon_containsAnomaly_showAnomalyIcon() {
    public void testRefreshAnomalyIcon_containsAnomaly_showAnomalyIcon() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.BATTERY_DISPLAY_APP_LIST, true);
        PowerGaugePreference preference = new PowerGaugePreference(mContext);
        PowerGaugePreference preference = new PowerGaugePreference(mContext);
        final String key = mPreferenceController.extractKeyFromUid(UID);
        final String key = mPreferenceController.extractKeyFromUid(UID);
        final SparseArray<List<Anomaly>> anomalySparseArray = new SparseArray<>();
        final SparseArray<List<Anomaly>> anomalySparseArray = new SparseArray<>();
@@ -201,4 +206,18 @@ public class BatteryAppListPreferenceControllerTest {


        assertThat(mPreferenceController.shouldHideSipper(mNormalBatterySipper)).isFalse();
        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();
    }
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -83,7 +83,7 @@ import java.util.List;
// TODO: Improve this test class so that it starts up the real activity and fragment.
// TODO: Improve this test class so that it starts up the real activity and fragment.
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH,
@Config(manifest = TestConfig.MANIFEST_PATH,
        sdk = TestConfig.SDK_VERSION_O,
        sdk = TestConfig.SDK_VERSION,
        shadows = {
        shadows = {
                SettingsShadowResources.class,
                SettingsShadowResources.class,
                SettingsShadowResources.SettingsShadowTheme.class,
                SettingsShadowResources.SettingsShadowTheme.class,