From 298f325f544e85d354aa0f802c3b2bb5812c52a6 Mon Sep 17 00:00:00 2001 From: Zoltan Szatmary-Ban Date: Thu, 26 Jun 2014 17:03:22 +0100 Subject: [PATCH] Update Battery Settings for Enterprise Items related to the managed profile should show up on the Battery usage list in Settings. Bug: 15466789 Change-Id: Iaa5f5752130423a30dad3b0354fe558a17d3d9b3 --- .../settings/fuelgauge/PowerUsageSummary.java | 81 +++++++++++-------- 1 file changed, 47 insertions(+), 34 deletions(-) diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 1159a2c5fd9..70e917621d6 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -45,6 +45,8 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import java.util.List; +import java.util.ArrayList; +import java.util.Collections; /** * Displays a list of apps and subsystems that consume power, ordered by how much power was @@ -72,8 +74,10 @@ public class PowerUsageSummary extends PreferenceFragment { private int mStatsType = BatteryStats.STATS_SINCE_CHARGED; - private static final int MIN_POWER_THRESHOLD = 5; + private static final int MIN_POWER_THRESHOLD_MILLI_AMP = 5; private static final int MAX_ITEMS_TO_LIST = 10; + private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10; + private static final int SECONDS_IN_HOUR = 60 * 60; private BatteryStatsHelper mStatsHelper; @@ -241,43 +245,52 @@ public class PowerUsageSummary extends PreferenceFragment { private void refreshStats() { mAppListGroup.removeAll(); mAppListGroup.setOrderingAsAdded(false); - - mStatsHelper.refreshStats(BatteryStats.STATS_SINCE_CHARGED, UserHandle.myUserId()); - - mHistPref = new BatteryHistoryPreference( - getActivity(), mStatsHelper.getStats(), mStatsHelper.getBatteryBroadcast()); + mHistPref = new BatteryHistoryPreference(getActivity(), mStatsHelper.getStats(), + mStatsHelper.getBatteryBroadcast()); mHistPref.setOrder(-1); mAppListGroup.addPreference(mHistPref); - - if (mStatsHelper.getPowerProfile().getAveragePower( - PowerProfile.POWER_SCREEN_FULL) < 10) { - addNotAvailableMessage(); - return; - } boolean addedSome = false; - final int dischargeAmount = mStatsHelper.getStats().getDischargeAmount(mStatsType); - List usageList = mStatsHelper.getUsageList(); - for (int i=0; i= MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP) { + final List profiles = mUm.getUserProfiles(); + + mStatsHelper.refreshStats(BatteryStats.STATS_SINCE_CHARGED, profiles); + + final List usageList = mStatsHelper.getUsageList(); + + final int dischargeAmount = mStatsHelper.getStats().getDischargeAmount(mStatsType); + final int numSippers = usageList.size(); + for (int i = 0; i < numSippers; i++) { + final BatterySipper sipper = usageList.get(i); + if ((sipper.value * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP) { + continue; + } + final double percentOfTotal = + ((sipper.value / mStatsHelper.getTotalPower()) * dischargeAmount); + if (((int) (percentOfTotal + .5)) < 1) { + continue; + } + final UserHandle userHandle = new UserHandle(UserHandle.getUserId(sipper.getUid())); + final BatteryEntry entry = new BatteryEntry(getActivity(), mHandler, mUm, sipper); + final PowerGaugePreference pref = new PowerGaugePreference(getActivity(), + mUm.getBadgedDrawableForUser(entry.getIcon(), userHandle), entry); + + final double percentOfMax = (sipper.value * 100) / mStatsHelper.getMaxPower(); + sipper.percent = percentOfTotal; + pref.setTitle(entry.getLabel()); + pref.setOrder(i + 1); + pref.setPercent(percentOfMax, percentOfTotal); + if (sipper.uidObj != null) { + pref.setKey(Integer.toString(sipper.uidObj.getUid())); + } + addedSome = true; + mAppListGroup.addPreference(pref); + if (mAppListGroup.getPreferenceCount() > (MAX_ITEMS_TO_LIST + 1)) { + break; + } } - addedSome = true; - mAppListGroup.addPreference(pref); - if (mAppListGroup.getPreferenceCount() > (MAX_ITEMS_TO_LIST+1)) break; } if (!addedSome) { addNotAvailableMessage();