Fix only one battery stat showing sometimes.
Take into account the prefs we are currently caching within the
group when counting how many prefs have been added.
Change-Id: I962acd41592c1a9366882711d3f4944bffb54d22
Fixes: 27931457
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 1a3c850..a992897 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -399,6 +399,10 @@
}
}
+ protected int getCachedCount() {
+ return mPreferenceCache.size();
+ }
+
private void highlightPreference(String key) {
final int position = canUseListViewForHighLighting(key);
if (position >= 0) {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 79ce204..78f9833 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -368,7 +368,8 @@
}
addedSome = true;
mAppListGroup.addPreference(pref);
- if (mAppListGroup.getPreferenceCount() > (MAX_ITEMS_TO_LIST + 1)) {
+ if (mAppListGroup.getPreferenceCount() - getCachedCount()
+ > (MAX_ITEMS_TO_LIST + 1)) {
break;
}
}
@@ -391,8 +392,10 @@
stats.add(new BatterySipper(type, null, use));
use += 5;
}
- stats.add(new BatterySipper(DrainType.APP,
- new FakeUid(Process.FIRST_APPLICATION_UID), use));
+ for (int i = 0; i < 100; i++) {
+ stats.add(new BatterySipper(DrainType.APP,
+ new FakeUid(Process.FIRST_APPLICATION_UID + i), use));
+ }
stats.add(new BatterySipper(DrainType.APP,
new FakeUid(0), use));