Loading res/values/dimens.xml +1 −1 Original line number Diff line number Diff line Loading @@ -443,7 +443,7 @@ <!-- Battery usage chart view component --> <dimen name="chartview_divider_width">1dp</dimen> <dimen name="chartview_divider_height">4dp</dimen> <dimen name="chartview_trapezoid_radius">2dp</dimen> <dimen name="chartview_trapezoid_radius">3dp</dimen> <dimen name="chartview_trapezoid_margin_start">1dp</dimen> <dimen name="chartview_trapezoid_margin_bottom">2dp</dimen> </resources> src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +11 −3 Original line number Diff line number Diff line Loading @@ -317,6 +317,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll } int prefIndex = mAppListPrefGroup.getPreferenceCount(); for (BatteryDiffEntry entry : entries) { boolean isAdded = false; final String appLabel = entry.getAppLabel(); final Drawable appIcon = entry.getAppIcon(); if (TextUtils.isEmpty(appLabel) || appIcon == null) { Loading @@ -324,8 +325,13 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll continue; } final String prefKey = entry.mBatteryHistEntry.getKey(); PowerGaugePreference pref = (PowerGaugePreference) mPreferenceCache.get(prefKey); PowerGaugePreference pref = mAppListPrefGroup.findPreference(prefKey); if (pref != null) { isAdded = true; Log.w(TAG, "preference should be removed for\n" + entry); } else { pref = (PowerGaugePreference) mPreferenceCache.get(prefKey); } // Creates new innstance if cached preference is not found. if (pref == null) { pref = new PowerGaugePreference(mPrefContext); Loading @@ -340,7 +346,9 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll // Sets the BatteryDiffEntry to preference for launching detailed page. pref.setBatteryDiffEntry(entry); setPreferenceSummary(pref, entry); if (!isAdded) { mAppListPrefGroup.addPreference(pref); } prefIndex++; } } Loading src/com/android/settings/fuelgauge/BatteryChartView.java +11 −1 Original line number Diff line number Diff line Loading @@ -97,8 +97,18 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick public void setLevels(int[] levels) { // We should provide trapezoid count + 1 data to draw all trapezoids. mLevels = levels.length == mTrapezoidCount + 1 ? levels : null; setClickable(mLevels != null); setClickable(false); invalidate(); if (mLevels == null) { return; } // Sets the chart is clickable if there is at least one valid item in it. for (int index = 0; index < mLevels.length; index++) { if (mLevels[index] != 0) { setClickable(true); break; } } } /** Sets the selected group index to draw highlight effect. */ Loading src/com/android/settings/fuelgauge/ConvertUtils.java +18 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ public final class ConvertUtils { private static String sZoneId; private static SimpleDateFormat sSimpleDateFormat; private static SimpleDateFormat sSimpleDateFormatForHour; private ConvertUtils() {} Loading Loading @@ -139,10 +140,27 @@ public final class ConvertUtils { sZoneId = currentZoneId; sSimpleDateFormat = new SimpleDateFormat("MMM dd,yyyy HH:mm:ss", Locale.ENGLISH); sSimpleDateFormatForHour = null; } return sSimpleDateFormat.format(new Date(timestamp)); } /** Converts UTC timestamp to local time hour data. */ public static int utcToLocalTimeHour(long timestamp) { final String currentZoneId = TimeZone.getDefault().getID(); if (!currentZoneId.equals(sZoneId) || sSimpleDateFormatForHour == null) { sZoneId = currentZoneId; sSimpleDateFormat = null; sSimpleDateFormatForHour = new SimpleDateFormat("HH", Locale.ENGLISH); } try { return Integer.parseInt( sSimpleDateFormatForHour.format(new Date(timestamp))); } catch (NumberFormatException e) { return Integer.MIN_VALUE; } } /** Gets indexed battery usage data for each corresponding time slot. */ public static Map<Integer, List<BatteryDiffEntry>> getIndexedUsageMap( final Context context, Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java +35 −22 Original line number Diff line number Diff line Loading @@ -57,6 +57,8 @@ import java.util.Map; @RunWith(RobolectricTestRunner.class) public final class BatteryChartPreferenceControllerTest { private static final String PREF_KEY = "pref_key"; private static final String PREF_SUMMARY = "fake preference summary"; @Mock private InstrumentedPreferenceFragment mFragment; @Mock private SettingsActivity mSettingsActivity; Loading Loading @@ -120,10 +122,9 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testOnDestroy_clearPreferenceCache() { final String prefKey = "preference fake key"; // Ensures the testing environment is correct. mBatteryChartPreferenceController.mPreferenceCache.put( prefKey, mPowerGaugePreference); PREF_KEY, mPowerGaugePreference); assertThat(mBatteryChartPreferenceController.mPreferenceCache).hasSize(1); mBatteryChartPreferenceController.onDestroy(); Loading Loading @@ -231,17 +232,16 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testRemoveAndCacheAllPrefs_buildCacheAndRemoveAllPreference() { final int trapezoidIndex = 1; final String prefKey = "preference fake key"; doReturn(1).when(mAppListGroup).getPreferenceCount(); doReturn(mPowerGaugePreference).when(mAppListGroup).getPreference(0); doReturn(prefKey).when(mPowerGaugePreference).getKey(); doReturn(PREF_KEY).when(mPowerGaugePreference).getKey(); // Ensures the testing data is correct. assertThat(mBatteryChartPreferenceController.mPreferenceCache).isEmpty(); mBatteryChartPreferenceController.refreshUi( trapezoidIndex, /*isForce=*/ true); assertThat(mBatteryChartPreferenceController.mPreferenceCache.get(prefKey)) assertThat(mBatteryChartPreferenceController.mPreferenceCache.get(PREF_KEY)) .isEqualTo(mPowerGaugePreference); verify(mAppListGroup).removeAll(); } Loading @@ -255,12 +255,12 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testAddPreferenceToScreen_addPreferenceIntoScreen() { final String prefKey = "preference fake key"; final String appLabel = "fake app label"; doReturn(1).when(mAppListGroup).getPreferenceCount(); doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon(); doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel(); doReturn(prefKey).when(mBatteryHistEntry).getKey(); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); doReturn(null).when(mAppListGroup).findPreference(PREF_KEY); mBatteryChartPreferenceController.addPreferenceToScreen( Arrays.asList(mBatteryDiffEntry)); Loading @@ -268,11 +268,11 @@ public final class BatteryChartPreferenceControllerTest { // Verifies the preference cache. final PowerGaugePreference pref = (PowerGaugePreference) mBatteryChartPreferenceController.mPreferenceCache .get(prefKey); .get(PREF_KEY); assertThat(pref).isNotNull(); // Verifies the added preference configuration. verify(mAppListGroup).addPreference(pref); assertThat(pref.getKey()).isEqualTo(prefKey); assertThat(pref.getKey()).isEqualTo(PREF_KEY); assertThat(pref.getTitle()).isEqualTo(appLabel); assertThat(pref.getIcon()).isEqualTo(mDrawable); assertThat(pref.getOrder()).isEqualTo(1); Loading @@ -280,6 +280,21 @@ public final class BatteryChartPreferenceControllerTest { assertThat(pref.isSingleLineTitle()).isTrue(); } @Test public void testAddPreferenceToScreen_alreadyInScreen_notAddPreferenceAgain() { final String appLabel = "fake app label"; doReturn(1).when(mAppListGroup).getPreferenceCount(); doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon(); doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel(); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); doReturn(mPowerGaugePreference).when(mAppListGroup).findPreference(PREF_KEY); mBatteryChartPreferenceController.addPreferenceToScreen( Arrays.asList(mBatteryDiffEntry)); verify(mAppListGroup, never()).addPreference(any()); } @Test public void testHandlePreferenceTreeClick_notPowerGaugePreference_returnFalse() { assertThat(mBatteryChartPreferenceController.handlePreferenceTreeClick(mAppListGroup)) Loading Loading @@ -310,7 +325,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setNullContentIfTotalUsageTimeIsZero() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -322,7 +337,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setBackgroundUsageTimeOnly() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -334,7 +349,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setTotalUsageTimeLessThanAMinute() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -346,7 +361,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setTotalTimeIfBackgroundTimeLessThanAMinute() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -358,7 +373,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setTotalAndBackgroundUsageTime() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -370,7 +385,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_notAllowShownPackage_setSummayAsNull() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); final BatteryDiffEntry batteryDiffEntry = spy(createBatteryDiffEntry( /*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS, Loading Loading @@ -436,33 +451,31 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testOnExpand_expandedIsTrue_addSystemEntriesToPreferenceGroup() { final String prefKey = "preference_key"; doReturn(1).when(mAppListGroup).getPreferenceCount(); mBatteryChartPreferenceController.mSystemEntries.add(mBatteryDiffEntry); doReturn("label").when(mBatteryDiffEntry).getAppLabel(); doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon(); doReturn(prefKey).when(mBatteryHistEntry).getKey(); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); mBatteryChartPreferenceController.onExpand(/*isExpanded=*/ true); final ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class); verify(mAppListGroup).addPreference(captor.capture()); // Verifies the added preference. assertThat(captor.getValue().getKey()).isEqualTo(prefKey); assertThat(captor.getValue().getKey()).isEqualTo(PREF_KEY); } @Test public void testOnExpand_expandedIsFalse_removeSystemEntriesFromPreferenceGroup() { final String prefKey = "preference_key"; doReturn(prefKey).when(mBatteryHistEntry).getKey(); doReturn(mPowerGaugePreference).when(mAppListGroup).findPreference(prefKey); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); doReturn(mPowerGaugePreference).when(mAppListGroup).findPreference(PREF_KEY); mBatteryChartPreferenceController.mSystemEntries.add(mBatteryDiffEntry); // Verifies the cache is empty first. assertThat(mBatteryChartPreferenceController.mPreferenceCache).isEmpty(); mBatteryChartPreferenceController.onExpand(/*isExpanded=*/ false); verify(mAppListGroup).findPreference(prefKey); verify(mAppListGroup).findPreference(PREF_KEY); verify(mAppListGroup).removePreference(mPowerGaugePreference); assertThat(mBatteryChartPreferenceController.mPreferenceCache).hasSize(1); } Loading Loading
res/values/dimens.xml +1 −1 Original line number Diff line number Diff line Loading @@ -443,7 +443,7 @@ <!-- Battery usage chart view component --> <dimen name="chartview_divider_width">1dp</dimen> <dimen name="chartview_divider_height">4dp</dimen> <dimen name="chartview_trapezoid_radius">2dp</dimen> <dimen name="chartview_trapezoid_radius">3dp</dimen> <dimen name="chartview_trapezoid_margin_start">1dp</dimen> <dimen name="chartview_trapezoid_margin_bottom">2dp</dimen> </resources>
src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +11 −3 Original line number Diff line number Diff line Loading @@ -317,6 +317,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll } int prefIndex = mAppListPrefGroup.getPreferenceCount(); for (BatteryDiffEntry entry : entries) { boolean isAdded = false; final String appLabel = entry.getAppLabel(); final Drawable appIcon = entry.getAppIcon(); if (TextUtils.isEmpty(appLabel) || appIcon == null) { Loading @@ -324,8 +325,13 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll continue; } final String prefKey = entry.mBatteryHistEntry.getKey(); PowerGaugePreference pref = (PowerGaugePreference) mPreferenceCache.get(prefKey); PowerGaugePreference pref = mAppListPrefGroup.findPreference(prefKey); if (pref != null) { isAdded = true; Log.w(TAG, "preference should be removed for\n" + entry); } else { pref = (PowerGaugePreference) mPreferenceCache.get(prefKey); } // Creates new innstance if cached preference is not found. if (pref == null) { pref = new PowerGaugePreference(mPrefContext); Loading @@ -340,7 +346,9 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll // Sets the BatteryDiffEntry to preference for launching detailed page. pref.setBatteryDiffEntry(entry); setPreferenceSummary(pref, entry); if (!isAdded) { mAppListPrefGroup.addPreference(pref); } prefIndex++; } } Loading
src/com/android/settings/fuelgauge/BatteryChartView.java +11 −1 Original line number Diff line number Diff line Loading @@ -97,8 +97,18 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick public void setLevels(int[] levels) { // We should provide trapezoid count + 1 data to draw all trapezoids. mLevels = levels.length == mTrapezoidCount + 1 ? levels : null; setClickable(mLevels != null); setClickable(false); invalidate(); if (mLevels == null) { return; } // Sets the chart is clickable if there is at least one valid item in it. for (int index = 0; index < mLevels.length; index++) { if (mLevels[index] != 0) { setClickable(true); break; } } } /** Sets the selected group index to draw highlight effect. */ Loading
src/com/android/settings/fuelgauge/ConvertUtils.java +18 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ public final class ConvertUtils { private static String sZoneId; private static SimpleDateFormat sSimpleDateFormat; private static SimpleDateFormat sSimpleDateFormatForHour; private ConvertUtils() {} Loading Loading @@ -139,10 +140,27 @@ public final class ConvertUtils { sZoneId = currentZoneId; sSimpleDateFormat = new SimpleDateFormat("MMM dd,yyyy HH:mm:ss", Locale.ENGLISH); sSimpleDateFormatForHour = null; } return sSimpleDateFormat.format(new Date(timestamp)); } /** Converts UTC timestamp to local time hour data. */ public static int utcToLocalTimeHour(long timestamp) { final String currentZoneId = TimeZone.getDefault().getID(); if (!currentZoneId.equals(sZoneId) || sSimpleDateFormatForHour == null) { sZoneId = currentZoneId; sSimpleDateFormat = null; sSimpleDateFormatForHour = new SimpleDateFormat("HH", Locale.ENGLISH); } try { return Integer.parseInt( sSimpleDateFormatForHour.format(new Date(timestamp))); } catch (NumberFormatException e) { return Integer.MIN_VALUE; } } /** Gets indexed battery usage data for each corresponding time slot. */ public static Map<Integer, List<BatteryDiffEntry>> getIndexedUsageMap( final Context context, Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java +35 −22 Original line number Diff line number Diff line Loading @@ -57,6 +57,8 @@ import java.util.Map; @RunWith(RobolectricTestRunner.class) public final class BatteryChartPreferenceControllerTest { private static final String PREF_KEY = "pref_key"; private static final String PREF_SUMMARY = "fake preference summary"; @Mock private InstrumentedPreferenceFragment mFragment; @Mock private SettingsActivity mSettingsActivity; Loading Loading @@ -120,10 +122,9 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testOnDestroy_clearPreferenceCache() { final String prefKey = "preference fake key"; // Ensures the testing environment is correct. mBatteryChartPreferenceController.mPreferenceCache.put( prefKey, mPowerGaugePreference); PREF_KEY, mPowerGaugePreference); assertThat(mBatteryChartPreferenceController.mPreferenceCache).hasSize(1); mBatteryChartPreferenceController.onDestroy(); Loading Loading @@ -231,17 +232,16 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testRemoveAndCacheAllPrefs_buildCacheAndRemoveAllPreference() { final int trapezoidIndex = 1; final String prefKey = "preference fake key"; doReturn(1).when(mAppListGroup).getPreferenceCount(); doReturn(mPowerGaugePreference).when(mAppListGroup).getPreference(0); doReturn(prefKey).when(mPowerGaugePreference).getKey(); doReturn(PREF_KEY).when(mPowerGaugePreference).getKey(); // Ensures the testing data is correct. assertThat(mBatteryChartPreferenceController.mPreferenceCache).isEmpty(); mBatteryChartPreferenceController.refreshUi( trapezoidIndex, /*isForce=*/ true); assertThat(mBatteryChartPreferenceController.mPreferenceCache.get(prefKey)) assertThat(mBatteryChartPreferenceController.mPreferenceCache.get(PREF_KEY)) .isEqualTo(mPowerGaugePreference); verify(mAppListGroup).removeAll(); } Loading @@ -255,12 +255,12 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testAddPreferenceToScreen_addPreferenceIntoScreen() { final String prefKey = "preference fake key"; final String appLabel = "fake app label"; doReturn(1).when(mAppListGroup).getPreferenceCount(); doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon(); doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel(); doReturn(prefKey).when(mBatteryHistEntry).getKey(); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); doReturn(null).when(mAppListGroup).findPreference(PREF_KEY); mBatteryChartPreferenceController.addPreferenceToScreen( Arrays.asList(mBatteryDiffEntry)); Loading @@ -268,11 +268,11 @@ public final class BatteryChartPreferenceControllerTest { // Verifies the preference cache. final PowerGaugePreference pref = (PowerGaugePreference) mBatteryChartPreferenceController.mPreferenceCache .get(prefKey); .get(PREF_KEY); assertThat(pref).isNotNull(); // Verifies the added preference configuration. verify(mAppListGroup).addPreference(pref); assertThat(pref.getKey()).isEqualTo(prefKey); assertThat(pref.getKey()).isEqualTo(PREF_KEY); assertThat(pref.getTitle()).isEqualTo(appLabel); assertThat(pref.getIcon()).isEqualTo(mDrawable); assertThat(pref.getOrder()).isEqualTo(1); Loading @@ -280,6 +280,21 @@ public final class BatteryChartPreferenceControllerTest { assertThat(pref.isSingleLineTitle()).isTrue(); } @Test public void testAddPreferenceToScreen_alreadyInScreen_notAddPreferenceAgain() { final String appLabel = "fake app label"; doReturn(1).when(mAppListGroup).getPreferenceCount(); doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon(); doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel(); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); doReturn(mPowerGaugePreference).when(mAppListGroup).findPreference(PREF_KEY); mBatteryChartPreferenceController.addPreferenceToScreen( Arrays.asList(mBatteryDiffEntry)); verify(mAppListGroup, never()).addPreference(any()); } @Test public void testHandlePreferenceTreeClick_notPowerGaugePreference_returnFalse() { assertThat(mBatteryChartPreferenceController.handlePreferenceTreeClick(mAppListGroup)) Loading Loading @@ -310,7 +325,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setNullContentIfTotalUsageTimeIsZero() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -322,7 +337,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setBackgroundUsageTimeOnly() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -334,7 +349,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setTotalUsageTimeLessThanAMinute() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -346,7 +361,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setTotalTimeIfBackgroundTimeLessThanAMinute() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -358,7 +373,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_setTotalAndBackgroundUsageTime() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); mBatteryChartPreferenceController.setPreferenceSummary( pref, createBatteryDiffEntry( Loading @@ -370,7 +385,7 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testSetPreferenceSummary_notAllowShownPackage_setSummayAsNull() { final PowerGaugePreference pref = new PowerGaugePreference(mContext); pref.setSummary("fake preference summary"); pref.setSummary(PREF_SUMMARY); final BatteryDiffEntry batteryDiffEntry = spy(createBatteryDiffEntry( /*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS, Loading Loading @@ -436,33 +451,31 @@ public final class BatteryChartPreferenceControllerTest { @Test public void testOnExpand_expandedIsTrue_addSystemEntriesToPreferenceGroup() { final String prefKey = "preference_key"; doReturn(1).when(mAppListGroup).getPreferenceCount(); mBatteryChartPreferenceController.mSystemEntries.add(mBatteryDiffEntry); doReturn("label").when(mBatteryDiffEntry).getAppLabel(); doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon(); doReturn(prefKey).when(mBatteryHistEntry).getKey(); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); mBatteryChartPreferenceController.onExpand(/*isExpanded=*/ true); final ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class); verify(mAppListGroup).addPreference(captor.capture()); // Verifies the added preference. assertThat(captor.getValue().getKey()).isEqualTo(prefKey); assertThat(captor.getValue().getKey()).isEqualTo(PREF_KEY); } @Test public void testOnExpand_expandedIsFalse_removeSystemEntriesFromPreferenceGroup() { final String prefKey = "preference_key"; doReturn(prefKey).when(mBatteryHistEntry).getKey(); doReturn(mPowerGaugePreference).when(mAppListGroup).findPreference(prefKey); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); doReturn(mPowerGaugePreference).when(mAppListGroup).findPreference(PREF_KEY); mBatteryChartPreferenceController.mSystemEntries.add(mBatteryDiffEntry); // Verifies the cache is empty first. assertThat(mBatteryChartPreferenceController.mPreferenceCache).isEmpty(); mBatteryChartPreferenceController.onExpand(/*isExpanded=*/ false); verify(mAppListGroup).findPreference(prefKey); verify(mAppListGroup).findPreference(PREF_KEY); verify(mAppListGroup).removePreference(mPowerGaugePreference); assertThat(mBatteryChartPreferenceController.mPreferenceCache).hasSize(1); } Loading