diff --git a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java index e85859a7558..0940e19d480 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java +++ b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java @@ -168,11 +168,16 @@ public class PowerUsageAdvanced extends PowerUsageBase { if (context == null) { return; } - updatePreference(mHistPref); + refreshPowerUsageDataList(mStatsHelper, mUsageListGroup); + BatteryEntry.startRequestQueue(); + } - List dataList = parsePowerUsageData(mStatsHelper); - mUsageListGroup.removeAll(); + @VisibleForTesting + void refreshPowerUsageDataList(BatteryStatsHelper statsHelper, + PreferenceGroup preferenceGroup) { + List dataList = parsePowerUsageData(statsHelper); + preferenceGroup.removeAll(); for (int i = 0, size = dataList.size(); i < size; i++) { final PowerUsageData batteryData = dataList.get(i); if (shouldHideCategory(batteryData)) { @@ -184,10 +189,9 @@ public class PowerUsageAdvanced extends PowerUsageBase { pref.setTitle(batteryData.titleResId); pref.setSummary(batteryData.summary); pref.setPercent(batteryData.percentage); - mUsageListGroup.addPreference(pref); + pref.setSelectable(false); + preferenceGroup.addPreference(pref); } - - BatteryEntry.startRequestQueue(); } @VisibleForTesting diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java index 8694dbdbf85..26cf7e00054 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java @@ -15,10 +15,22 @@ */ package com.android.settings.fuelgauge; +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.content.Context; import android.content.pm.PackageManager; import android.os.UserManager; -import android.text.TextUtils; +import android.support.v7.preference.PreferenceCategory; +import android.support.v7.preference.PreferenceGroup; +import android.support.v7.preference.PreferenceManager; import com.android.internal.os.BatterySipper; import com.android.internal.os.BatterySipper.DrainType; @@ -43,16 +55,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Matchers.eq; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class PowerUsageAdvancedTest { @@ -119,6 +121,21 @@ public class PowerUsageAdvancedTest { mNormalBatterySipper.drainType = DrainType.SCREEN; } + @Test + public void testPrefs_shouldNotBeSelectable() { + PreferenceManager pm = new PreferenceManager(mShadowContext); + when(mPowerUsageAdvanced.getPreferenceManager()).thenReturn(pm); + PreferenceGroup prefGroup = spy(new PreferenceCategory(mShadowContext)); + when(prefGroup.getPreferenceManager()).thenReturn(pm); + + mPowerUsageAdvanced.refreshPowerUsageDataList(mBatteryStatsHelper, prefGroup); + assertThat(prefGroup.getPreferenceCount()).isAtLeast(1); + for (int i = 0, count = prefGroup.getPreferenceCount(); i < count; i++) { + PowerGaugePreference pref = (PowerGaugePreference) prefGroup.getPreference(i); + assertThat(pref.isSelectable()).isFalse(); + } + } + @Test public void testExtractUsageType_TypeSystem_ReturnSystem() { mNormalBatterySipper.drainType = DrainType.APP;