Loading src/com/android/settings/fuelgauge/PowerUsageAdvanced.java +7 −5 Original line number Diff line number Diff line Loading @@ -71,9 +71,11 @@ public class PowerUsageAdvanced extends PowerUsageBase { mHistPref = (BatteryHistoryPreference) findPreference(KEY_BATTERY_GRAPH); mUsageListGroup = (PreferenceGroup) findPreference(KEY_BATTERY_USAGE_LIST); mPowerUsageFeatureProvider = FeatureFactory.getFactory(getContext()) .getPowerUsageFeatureProvider(getContext()); mPackageManager = getContext().getPackageManager(); final Context context = getContext(); mPowerUsageFeatureProvider = FeatureFactory.getFactory(context) .getPowerUsageFeatureProvider(context); mPackageManager = context.getPackageManager(); } @Override Loading Loading @@ -137,9 +139,9 @@ public class PowerUsageAdvanced extends PowerUsageBase { return UsageType.USER; } else if (drainType == DrainType.CELL) { return UsageType.CELL; } else if (uid == Process.SYSTEM_UID || uid == Process.ROOT_UID) { } else if (mPowerUsageFeatureProvider.isTypeSystem(sipper)) { return UsageType.SYSTEM; } else if (mPowerUsageFeatureProvider.isTypeService(sipper.mPackages)) { } else if (mPowerUsageFeatureProvider.isTypeService(sipper)) { return UsageType.SERVICE; } else { return UsageType.APP; Loading src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +35 −29 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.fuelgauge; import android.content.Intent; import com.android.internal.os.BatterySipper; /** * Feature Provider used in power usage Loading Loading @@ -45,7 +46,12 @@ public interface PowerUsageFeatureProvider { /** * Check whether it is type service */ boolean isTypeService(String[] packages); boolean isTypeService(BatterySipper sipper); /** * Check whether it is type system */ boolean isTypeSystem(BatterySipper sipper); /** * Check whether the toggle for power accounting is enabled Loading src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +31 −5 Original line number Diff line number Diff line Loading @@ -16,9 +16,40 @@ package com.android.settings.fuelgauge; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Process; import com.android.internal.os.BatterySipper; import com.android.internal.util.ArrayUtils; public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider { private static final String PACKAGE_CALENDAR_PROVIDER = "com.android.providers.calendar"; protected PackageManager mPackageManager; public PowerUsageFeatureProviderImpl(Context context) { mPackageManager = context.getPackageManager(); } @Override public boolean isTypeService(BatterySipper sipper) { return false; } @Override public boolean isTypeSystem(BatterySipper sipper) { final int uid = sipper.uidObj == null ? -1 : sipper.getUid(); sipper.mPackages = mPackageManager.getPackagesForUid(uid); // Classify all the sippers to type system if the range of uid is 0...FIRST_APPLICATION_UID if (uid >= Process.ROOT_UID && uid < Process.FIRST_APPLICATION_UID) { return true; } else { return ArrayUtils.contains(sipper.mPackages, PACKAGE_CALENDAR_PROVIDER); } } @Override public boolean isLocationSettingEnabled(String[] packages) { return false; Loading @@ -39,11 +70,6 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider return false; } @Override public boolean isTypeService(String[] packages) { return false; } @Override public boolean isPowerAccountingToggleEnabled() { return false; Loading src/com/android/settings/fuelgauge/PowerUsageSummary.java +18 −11 Original line number Diff line number Diff line Loading @@ -99,16 +99,17 @@ public class PowerUsageSummary extends PowerUsageBase { @VisibleForTesting boolean mShowAllApps = false; @VisibleForTesting Preference mScreenUsagePref; @VisibleForTesting Preference mScreenConsumptionPref; @VisibleForTesting Preference mCellularNetworkPref; @VisibleForTesting PowerUsageFeatureProvider mPowerFeatureProvider; private LayoutPreference mBatteryLayoutPref; private PreferenceGroup mAppListGroup; private int mStatsType = BatteryStats.STATS_SINCE_CHARGED; @Override Loading @@ -121,6 +122,8 @@ public class PowerUsageSummary extends PowerUsageBase { mScreenUsagePref = findPreference(KEY_SCREEN_USAGE); mScreenConsumptionPref = findPreference(KEY_SCREEN_CONSUMPTION); mCellularNetworkPref = findPreference(KEY_CELLULAR_NETWORK); initFeatureProvider(); } @Override Loading Loading @@ -193,14 +196,11 @@ public class PowerUsageSummary extends PowerUsageBase { menu.add(Menu.NONE, MENU_HIGH_POWER_APPS, Menu.NONE, R.string.high_power_apps); PowerUsageFeatureProvider powerUsageFeatureProvider = FeatureFactory.getFactory(getContext()).getPowerUsageFeatureProvider(getContext()); if (powerUsageFeatureProvider != null && powerUsageFeatureProvider.isAdditionalBatteryInfoEnabled()) { if (mPowerFeatureProvider.isAdditionalBatteryInfoEnabled()) { menu.add(Menu.NONE, MENU_ADDITIONAL_BATTERY_INFO, Menu.NONE, R.string.additional_battery_info); } if (powerUsageFeatureProvider.isPowerAccountingToggleEnabled()) { if (mPowerFeatureProvider.isPowerAccountingToggleEnabled()) { menu.add(Menu.NONE, MENU_TOGGLE_APPS, Menu.NONE, mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps); } Loading Loading @@ -579,12 +579,12 @@ public class PowerUsageSummary extends PowerUsageBase { @VisibleForTesting boolean shouldHideSipper(BatterySipper sipper) { final DrainType drainType = sipper.drainType; final int uid = sipper.getUid(); return drainType == DrainType.IDLE || drainType == DrainType.CELL || drainType == DrainType.SCREEN || uid == Process.ROOT_UID || uid == Process.SYSTEM_UID || (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP; || drainType == DrainType.SCREEN || (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP || mPowerFeatureProvider.isTypeService(sipper) || mPowerFeatureProvider.isTypeSystem(sipper); } @VisibleForTesting Loading Loading @@ -620,6 +620,13 @@ public class PowerUsageSummary extends PowerUsageBase { mBatteryLayoutPref = layoutPreference; } @VisibleForTesting void initFeatureProvider() { final Context context = getContext(); mPowerFeatureProvider = FeatureFactory.getFactory(context) .getPowerUsageFeatureProvider(context); } private static List<BatterySipper> getFakeStats() { ArrayList<BatterySipper> stats = new ArrayList<>(); float use = 5; Loading src/com/android/settings/overlay/FeatureFactoryImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ public class FeatureFactoryImpl extends FeatureFactory { @Override public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) { if (mPowerUsageFeatureProvider == null) { mPowerUsageFeatureProvider = new PowerUsageFeatureProviderImpl(); mPowerUsageFeatureProvider = new PowerUsageFeatureProviderImpl(context); } return mPowerUsageFeatureProvider; } Loading Loading
src/com/android/settings/fuelgauge/PowerUsageAdvanced.java +7 −5 Original line number Diff line number Diff line Loading @@ -71,9 +71,11 @@ public class PowerUsageAdvanced extends PowerUsageBase { mHistPref = (BatteryHistoryPreference) findPreference(KEY_BATTERY_GRAPH); mUsageListGroup = (PreferenceGroup) findPreference(KEY_BATTERY_USAGE_LIST); mPowerUsageFeatureProvider = FeatureFactory.getFactory(getContext()) .getPowerUsageFeatureProvider(getContext()); mPackageManager = getContext().getPackageManager(); final Context context = getContext(); mPowerUsageFeatureProvider = FeatureFactory.getFactory(context) .getPowerUsageFeatureProvider(context); mPackageManager = context.getPackageManager(); } @Override Loading Loading @@ -137,9 +139,9 @@ public class PowerUsageAdvanced extends PowerUsageBase { return UsageType.USER; } else if (drainType == DrainType.CELL) { return UsageType.CELL; } else if (uid == Process.SYSTEM_UID || uid == Process.ROOT_UID) { } else if (mPowerUsageFeatureProvider.isTypeSystem(sipper)) { return UsageType.SYSTEM; } else if (mPowerUsageFeatureProvider.isTypeService(sipper.mPackages)) { } else if (mPowerUsageFeatureProvider.isTypeService(sipper)) { return UsageType.SERVICE; } else { return UsageType.APP; Loading
src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +35 −29 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.fuelgauge; import android.content.Intent; import com.android.internal.os.BatterySipper; /** * Feature Provider used in power usage Loading Loading @@ -45,7 +46,12 @@ public interface PowerUsageFeatureProvider { /** * Check whether it is type service */ boolean isTypeService(String[] packages); boolean isTypeService(BatterySipper sipper); /** * Check whether it is type system */ boolean isTypeSystem(BatterySipper sipper); /** * Check whether the toggle for power accounting is enabled Loading
src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +31 −5 Original line number Diff line number Diff line Loading @@ -16,9 +16,40 @@ package com.android.settings.fuelgauge; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Process; import com.android.internal.os.BatterySipper; import com.android.internal.util.ArrayUtils; public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider { private static final String PACKAGE_CALENDAR_PROVIDER = "com.android.providers.calendar"; protected PackageManager mPackageManager; public PowerUsageFeatureProviderImpl(Context context) { mPackageManager = context.getPackageManager(); } @Override public boolean isTypeService(BatterySipper sipper) { return false; } @Override public boolean isTypeSystem(BatterySipper sipper) { final int uid = sipper.uidObj == null ? -1 : sipper.getUid(); sipper.mPackages = mPackageManager.getPackagesForUid(uid); // Classify all the sippers to type system if the range of uid is 0...FIRST_APPLICATION_UID if (uid >= Process.ROOT_UID && uid < Process.FIRST_APPLICATION_UID) { return true; } else { return ArrayUtils.contains(sipper.mPackages, PACKAGE_CALENDAR_PROVIDER); } } @Override public boolean isLocationSettingEnabled(String[] packages) { return false; Loading @@ -39,11 +70,6 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider return false; } @Override public boolean isTypeService(String[] packages) { return false; } @Override public boolean isPowerAccountingToggleEnabled() { return false; Loading
src/com/android/settings/fuelgauge/PowerUsageSummary.java +18 −11 Original line number Diff line number Diff line Loading @@ -99,16 +99,17 @@ public class PowerUsageSummary extends PowerUsageBase { @VisibleForTesting boolean mShowAllApps = false; @VisibleForTesting Preference mScreenUsagePref; @VisibleForTesting Preference mScreenConsumptionPref; @VisibleForTesting Preference mCellularNetworkPref; @VisibleForTesting PowerUsageFeatureProvider mPowerFeatureProvider; private LayoutPreference mBatteryLayoutPref; private PreferenceGroup mAppListGroup; private int mStatsType = BatteryStats.STATS_SINCE_CHARGED; @Override Loading @@ -121,6 +122,8 @@ public class PowerUsageSummary extends PowerUsageBase { mScreenUsagePref = findPreference(KEY_SCREEN_USAGE); mScreenConsumptionPref = findPreference(KEY_SCREEN_CONSUMPTION); mCellularNetworkPref = findPreference(KEY_CELLULAR_NETWORK); initFeatureProvider(); } @Override Loading Loading @@ -193,14 +196,11 @@ public class PowerUsageSummary extends PowerUsageBase { menu.add(Menu.NONE, MENU_HIGH_POWER_APPS, Menu.NONE, R.string.high_power_apps); PowerUsageFeatureProvider powerUsageFeatureProvider = FeatureFactory.getFactory(getContext()).getPowerUsageFeatureProvider(getContext()); if (powerUsageFeatureProvider != null && powerUsageFeatureProvider.isAdditionalBatteryInfoEnabled()) { if (mPowerFeatureProvider.isAdditionalBatteryInfoEnabled()) { menu.add(Menu.NONE, MENU_ADDITIONAL_BATTERY_INFO, Menu.NONE, R.string.additional_battery_info); } if (powerUsageFeatureProvider.isPowerAccountingToggleEnabled()) { if (mPowerFeatureProvider.isPowerAccountingToggleEnabled()) { menu.add(Menu.NONE, MENU_TOGGLE_APPS, Menu.NONE, mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps); } Loading Loading @@ -579,12 +579,12 @@ public class PowerUsageSummary extends PowerUsageBase { @VisibleForTesting boolean shouldHideSipper(BatterySipper sipper) { final DrainType drainType = sipper.drainType; final int uid = sipper.getUid(); return drainType == DrainType.IDLE || drainType == DrainType.CELL || drainType == DrainType.SCREEN || uid == Process.ROOT_UID || uid == Process.SYSTEM_UID || (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP; || drainType == DrainType.SCREEN || (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP || mPowerFeatureProvider.isTypeService(sipper) || mPowerFeatureProvider.isTypeSystem(sipper); } @VisibleForTesting Loading Loading @@ -620,6 +620,13 @@ public class PowerUsageSummary extends PowerUsageBase { mBatteryLayoutPref = layoutPreference; } @VisibleForTesting void initFeatureProvider() { final Context context = getContext(); mPowerFeatureProvider = FeatureFactory.getFactory(context) .getPowerUsageFeatureProvider(context); } private static List<BatterySipper> getFakeStats() { ArrayList<BatterySipper> stats = new ArrayList<>(); float use = 5; Loading
src/com/android/settings/overlay/FeatureFactoryImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ public class FeatureFactoryImpl extends FeatureFactory { @Override public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) { if (mPowerUsageFeatureProvider == null) { mPowerUsageFeatureProvider = new PowerUsageFeatureProviderImpl(); mPowerUsageFeatureProvider = new PowerUsageFeatureProviderImpl(context); } return mPowerUsageFeatureProvider; } Loading