Loading src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java +24 −3 Original line number Diff line number Diff line Loading @@ -257,6 +257,27 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro BatteryEntry.startRequestQueue(); } /** * Gets the BatteryEntry list by using the supplied BatteryUsageStats. */ public List<BatteryEntry> getBatteryEntryList( BatteryUsageStats batteryUsageStats, boolean showAllApps) { mBatteryUsageStats = USE_FAKE_DATA ? getFakeStats() : batteryUsageStats; if (!sConfig.shouldShowBatteryAttributionList(mContext)) { return null; } final int dischargePercentage = getDischargePercentage(batteryUsageStats); final List<BatteryEntry> usageList = getCoalescedUsageList(showAllApps); final double totalPower = batteryUsageStats.getConsumedPower(); for (int i = 0; i < usageList.size(); i++) { final BatteryEntry entry = usageList.get(i); final double percentOfTotal = mBatteryUtils.calculateBatteryPercent( entry.getConsumedPower(), totalPower, dischargePercentage); entry.percent = percentOfTotal; } return usageList; } private int getDischargePercentage(BatteryUsageStats batteryUsageStats) { int dischargePercentage = batteryUsageStats.getDischargePercentage(); if (dischargePercentage < 0) { Loading Loading @@ -311,7 +332,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro final int index = batteryEntryList.indexOfKey(realUid); if (index < 0) { // New entry. batteryEntryList.put(realUid, new BatteryEntry(mActivity, mHandler, mUserManager, batteryEntryList.put(realUid, new BatteryEntry(mContext, mHandler, mUserManager, consumer, isHidden, packages, null)); } else { // Combine BatterySippers if we already have one with this UID. Loading @@ -328,7 +349,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro continue; } results.add(new BatteryEntry(mActivity, mHandler, mUserManager, results.add(new BatteryEntry(mContext, mHandler, mUserManager, consumer, /* isHidden */ true, null, null)); } Loading @@ -337,7 +358,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro mBatteryUsageStats.getUserBatteryConsumers(); for (int i = 0, size = userBatteryConsumers.size(); i < size; i++) { final UserBatteryConsumer consumer = userBatteryConsumers.get(i); results.add(new BatteryEntry(mActivity, mHandler, mUserManager, results.add(new BatteryEntry(mContext, mHandler, mUserManager, consumer, /* isHidden */ true, null, null)); } } Loading src/com/android/settings/fuelgauge/BatteryEntry.java +58 −43 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.os.UserBatteryConsumer; import android.os.UserHandle; import android.os.UserManager; import android.util.Log; import android.util.Pair; import androidx.annotation.NonNull; Loading Loading @@ -182,49 +183,10 @@ public class BatteryEntry { getQuickNameIconForUid(uid, packages); return; } else if (batteryConsumer instanceof SystemBatteryConsumer) { switch(((SystemBatteryConsumer) batteryConsumer).getDrainType()) { case SystemBatteryConsumer.DRAIN_TYPE_AMBIENT_DISPLAY: name = context.getResources().getString(R.string.ambient_display_screen_title); iconId = R.drawable.ic_settings_aod; break; case SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH: name = context.getResources().getString(R.string.power_bluetooth); iconId = com.android.internal.R.drawable.ic_settings_bluetooth; break; case SystemBatteryConsumer.DRAIN_TYPE_CAMERA: name = context.getResources().getString(R.string.power_camera); iconId = R.drawable.ic_settings_camera; break; case SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO: name = context.getResources().getString(R.string.power_cell); iconId = R.drawable.ic_cellular_1_bar; break; case SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT: name = context.getResources().getString(R.string.power_flashlight); iconId = R.drawable.ic_settings_display; break; case SystemBatteryConsumer.DRAIN_TYPE_PHONE: name = context.getResources().getString(R.string.power_phone); iconId = R.drawable.ic_settings_voice_calls; break; case SystemBatteryConsumer.DRAIN_TYPE_SCREEN: name = context.getResources().getString(R.string.power_screen); iconId = R.drawable.ic_settings_display; break; case SystemBatteryConsumer.DRAIN_TYPE_WIFI: name = context.getResources().getString(R.string.power_wifi); iconId = R.drawable.ic_settings_wireless; break; case SystemBatteryConsumer.DRAIN_TYPE_IDLE: case SystemBatteryConsumer.DRAIN_TYPE_MEMORY: name = context.getResources().getString(R.string.power_idle); iconId = R.drawable.ic_settings_phone_idle; break; case SystemBatteryConsumer.DRAIN_TYPE_CUSTOM: name = null; iconId = R.drawable.ic_power_system; break; } final Pair<Integer, String> resourcePair = getResourcePairFromDrainType( context, ((SystemBatteryConsumer) batteryConsumer).getDrainType()); iconId = resourcePair.first; name = resourcePair.second; } else if (batteryConsumer instanceof UserBatteryConsumer) { UserInfo info = um.getUserInfo(((UserBatteryConsumer) batteryConsumer).getUserId()); if (info != null) { Loading Loading @@ -493,4 +455,57 @@ public class BatteryEntry { ((UidBatteryConsumer) batteryConsumer).getPackageWithHighestDrain(); } } /** * Gets icon ID and name from system battery consumer drain type. */ public static Pair<Integer, String> getResourcePairFromDrainType( Context context, int drainType) { String name = null; int iconId = 0; switch (drainType) { case SystemBatteryConsumer.DRAIN_TYPE_AMBIENT_DISPLAY: name = context.getResources().getString(R.string.ambient_display_screen_title); iconId = R.drawable.ic_settings_aod; break; case SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH: name = context.getResources().getString(R.string.power_bluetooth); iconId = com.android.internal.R.drawable.ic_settings_bluetooth; break; case SystemBatteryConsumer.DRAIN_TYPE_CAMERA: name = context.getResources().getString(R.string.power_camera); iconId = R.drawable.ic_settings_camera; break; case SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO: name = context.getResources().getString(R.string.power_cell); iconId = R.drawable.ic_cellular_1_bar; break; case SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT: name = context.getResources().getString(R.string.power_flashlight); iconId = R.drawable.ic_settings_display; break; case SystemBatteryConsumer.DRAIN_TYPE_PHONE: name = context.getResources().getString(R.string.power_phone); iconId = R.drawable.ic_settings_voice_calls; break; case SystemBatteryConsumer.DRAIN_TYPE_SCREEN: name = context.getResources().getString(R.string.power_screen); iconId = R.drawable.ic_settings_display; break; case SystemBatteryConsumer.DRAIN_TYPE_WIFI: name = context.getResources().getString(R.string.power_wifi); iconId = R.drawable.ic_settings_wireless; break; case SystemBatteryConsumer.DRAIN_TYPE_IDLE: case SystemBatteryConsumer.DRAIN_TYPE_MEMORY: name = context.getResources().getString(R.string.power_idle); iconId = R.drawable.ic_settings_phone_idle; break; case SystemBatteryConsumer.DRAIN_TYPE_CUSTOM: name = null; iconId = R.drawable.ic_power_system; break; } return new Pair<>(Integer.valueOf(iconId), name); } } Loading
src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java +24 −3 Original line number Diff line number Diff line Loading @@ -257,6 +257,27 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro BatteryEntry.startRequestQueue(); } /** * Gets the BatteryEntry list by using the supplied BatteryUsageStats. */ public List<BatteryEntry> getBatteryEntryList( BatteryUsageStats batteryUsageStats, boolean showAllApps) { mBatteryUsageStats = USE_FAKE_DATA ? getFakeStats() : batteryUsageStats; if (!sConfig.shouldShowBatteryAttributionList(mContext)) { return null; } final int dischargePercentage = getDischargePercentage(batteryUsageStats); final List<BatteryEntry> usageList = getCoalescedUsageList(showAllApps); final double totalPower = batteryUsageStats.getConsumedPower(); for (int i = 0; i < usageList.size(); i++) { final BatteryEntry entry = usageList.get(i); final double percentOfTotal = mBatteryUtils.calculateBatteryPercent( entry.getConsumedPower(), totalPower, dischargePercentage); entry.percent = percentOfTotal; } return usageList; } private int getDischargePercentage(BatteryUsageStats batteryUsageStats) { int dischargePercentage = batteryUsageStats.getDischargePercentage(); if (dischargePercentage < 0) { Loading Loading @@ -311,7 +332,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro final int index = batteryEntryList.indexOfKey(realUid); if (index < 0) { // New entry. batteryEntryList.put(realUid, new BatteryEntry(mActivity, mHandler, mUserManager, batteryEntryList.put(realUid, new BatteryEntry(mContext, mHandler, mUserManager, consumer, isHidden, packages, null)); } else { // Combine BatterySippers if we already have one with this UID. Loading @@ -328,7 +349,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro continue; } results.add(new BatteryEntry(mActivity, mHandler, mUserManager, results.add(new BatteryEntry(mContext, mHandler, mUserManager, consumer, /* isHidden */ true, null, null)); } Loading @@ -337,7 +358,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro mBatteryUsageStats.getUserBatteryConsumers(); for (int i = 0, size = userBatteryConsumers.size(); i < size; i++) { final UserBatteryConsumer consumer = userBatteryConsumers.get(i); results.add(new BatteryEntry(mActivity, mHandler, mUserManager, results.add(new BatteryEntry(mContext, mHandler, mUserManager, consumer, /* isHidden */ true, null, null)); } } Loading
src/com/android/settings/fuelgauge/BatteryEntry.java +58 −43 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.os.UserBatteryConsumer; import android.os.UserHandle; import android.os.UserManager; import android.util.Log; import android.util.Pair; import androidx.annotation.NonNull; Loading Loading @@ -182,49 +183,10 @@ public class BatteryEntry { getQuickNameIconForUid(uid, packages); return; } else if (batteryConsumer instanceof SystemBatteryConsumer) { switch(((SystemBatteryConsumer) batteryConsumer).getDrainType()) { case SystemBatteryConsumer.DRAIN_TYPE_AMBIENT_DISPLAY: name = context.getResources().getString(R.string.ambient_display_screen_title); iconId = R.drawable.ic_settings_aod; break; case SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH: name = context.getResources().getString(R.string.power_bluetooth); iconId = com.android.internal.R.drawable.ic_settings_bluetooth; break; case SystemBatteryConsumer.DRAIN_TYPE_CAMERA: name = context.getResources().getString(R.string.power_camera); iconId = R.drawable.ic_settings_camera; break; case SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO: name = context.getResources().getString(R.string.power_cell); iconId = R.drawable.ic_cellular_1_bar; break; case SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT: name = context.getResources().getString(R.string.power_flashlight); iconId = R.drawable.ic_settings_display; break; case SystemBatteryConsumer.DRAIN_TYPE_PHONE: name = context.getResources().getString(R.string.power_phone); iconId = R.drawable.ic_settings_voice_calls; break; case SystemBatteryConsumer.DRAIN_TYPE_SCREEN: name = context.getResources().getString(R.string.power_screen); iconId = R.drawable.ic_settings_display; break; case SystemBatteryConsumer.DRAIN_TYPE_WIFI: name = context.getResources().getString(R.string.power_wifi); iconId = R.drawable.ic_settings_wireless; break; case SystemBatteryConsumer.DRAIN_TYPE_IDLE: case SystemBatteryConsumer.DRAIN_TYPE_MEMORY: name = context.getResources().getString(R.string.power_idle); iconId = R.drawable.ic_settings_phone_idle; break; case SystemBatteryConsumer.DRAIN_TYPE_CUSTOM: name = null; iconId = R.drawable.ic_power_system; break; } final Pair<Integer, String> resourcePair = getResourcePairFromDrainType( context, ((SystemBatteryConsumer) batteryConsumer).getDrainType()); iconId = resourcePair.first; name = resourcePair.second; } else if (batteryConsumer instanceof UserBatteryConsumer) { UserInfo info = um.getUserInfo(((UserBatteryConsumer) batteryConsumer).getUserId()); if (info != null) { Loading Loading @@ -493,4 +455,57 @@ public class BatteryEntry { ((UidBatteryConsumer) batteryConsumer).getPackageWithHighestDrain(); } } /** * Gets icon ID and name from system battery consumer drain type. */ public static Pair<Integer, String> getResourcePairFromDrainType( Context context, int drainType) { String name = null; int iconId = 0; switch (drainType) { case SystemBatteryConsumer.DRAIN_TYPE_AMBIENT_DISPLAY: name = context.getResources().getString(R.string.ambient_display_screen_title); iconId = R.drawable.ic_settings_aod; break; case SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH: name = context.getResources().getString(R.string.power_bluetooth); iconId = com.android.internal.R.drawable.ic_settings_bluetooth; break; case SystemBatteryConsumer.DRAIN_TYPE_CAMERA: name = context.getResources().getString(R.string.power_camera); iconId = R.drawable.ic_settings_camera; break; case SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO: name = context.getResources().getString(R.string.power_cell); iconId = R.drawable.ic_cellular_1_bar; break; case SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT: name = context.getResources().getString(R.string.power_flashlight); iconId = R.drawable.ic_settings_display; break; case SystemBatteryConsumer.DRAIN_TYPE_PHONE: name = context.getResources().getString(R.string.power_phone); iconId = R.drawable.ic_settings_voice_calls; break; case SystemBatteryConsumer.DRAIN_TYPE_SCREEN: name = context.getResources().getString(R.string.power_screen); iconId = R.drawable.ic_settings_display; break; case SystemBatteryConsumer.DRAIN_TYPE_WIFI: name = context.getResources().getString(R.string.power_wifi); iconId = R.drawable.ic_settings_wireless; break; case SystemBatteryConsumer.DRAIN_TYPE_IDLE: case SystemBatteryConsumer.DRAIN_TYPE_MEMORY: name = context.getResources().getString(R.string.power_idle); iconId = R.drawable.ic_settings_phone_idle; break; case SystemBatteryConsumer.DRAIN_TYPE_CUSTOM: name = null; iconId = R.drawable.ic_power_system; break; } return new Pair<>(Integer.valueOf(iconId), name); } }