Loading src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java +6 −30 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ import com.android.settings.fuelgauge.BatteryDiffEntry; import com.android.settings.fuelgauge.BatteryEntry; import com.android.settings.fuelgauge.BatteryUsageStatsLoader; import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.ConvertUtils; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.lifecycle.Lifecycle; Loading Loading @@ -118,11 +117,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController } if (mBatteryDiffEntry != null) { Log.i(TAG, "BatteryDiffEntry not null, launch : " + mBatteryDiffEntry.getPackageName() + " | uid : " + mBatteryDiffEntry.mBatteryHistEntry.mUid + " with DiffEntry data"); Log.i(TAG, "handlePreferenceTreeClick():\n" + mBatteryDiffEntry); AdvancedPowerUsageDetail.startBatteryDetailPage( mParent.getActivity(), mParent, Loading Loading @@ -176,30 +171,11 @@ public class AppBatteryPreferenceController extends BasePreferenceController if (mPackageName == null) { return null; } final List<BatteryDiffEntry> batteryDiffEntries = BatteryChartPreferenceController.getBatteryLast24HrUsageData(mContext); if (batteryDiffEntries == null) { return null; } // Filter entry with consumer type to avoid system app, // then use user id to divide normal app and work profile app, // return target application from filter list by package name. return batteryDiffEntries.stream() .filter(entry -> entry.mBatteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY) .filter(entry -> entry.mBatteryHistEntry.mUserId == mUserId) .filter(entry -> { if (mPackageName.equals(entry.getPackageName())) { Log.i(TAG, "Return target application: " + entry.mBatteryHistEntry.mPackageName + " | uid: " + entry.mBatteryHistEntry.mUid + " | userId: " + entry.mBatteryHistEntry.mUserId); return true; } return false; }) .findFirst() .orElse(/* other */null); final BatteryDiffEntry entry = BatteryChartPreferenceController.getBatteryLast24HrUsageData( mContext, mPackageName, mUserId); Log.d(TAG, "loadBatteryDiffEntries():\n" + entry); return entry; } @Override Loading src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +24 −1 Original line number Diff line number Diff line Loading @@ -617,7 +617,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll return true; } public static List<BatteryDiffEntry> getBatteryLast24HrUsageData(Context context) { /** Used for {@link AppBatteryPreferenceController}. */ static List<BatteryDiffEntry> getBatteryLast24HrUsageData(Context context) { final long start = System.currentTimeMillis(); final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = FeatureFactory.getFactory(context) Loading @@ -638,6 +639,28 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll return batteryIndexedMap.get(BatteryChartView.SELECTED_INDEX_ALL); } /** Used for {@link AppBatteryPreferenceController}. */ public static BatteryDiffEntry getBatteryLast24HrUsageData( Context context, String packageName, int userId) { if (packageName == null) { return null; } final List<BatteryDiffEntry> entries = getBatteryLast24HrUsageData(context); if (entries == null) { return null; } for (BatteryDiffEntry entry : entries) { final BatteryHistEntry batteryHistEntry = entry.mBatteryHistEntry; if (batteryHistEntry != null && batteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY && batteryHistEntry.mUserId == userId && packageName.equals(entry.getPackageName())) { return entry; } } return null; } private static long[] getBatteryHistoryKeys( final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) { final List<Long> batteryHistoryKeyList = Loading Loading
src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java +6 −30 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ import com.android.settings.fuelgauge.BatteryDiffEntry; import com.android.settings.fuelgauge.BatteryEntry; import com.android.settings.fuelgauge.BatteryUsageStatsLoader; import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.ConvertUtils; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.lifecycle.Lifecycle; Loading Loading @@ -118,11 +117,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController } if (mBatteryDiffEntry != null) { Log.i(TAG, "BatteryDiffEntry not null, launch : " + mBatteryDiffEntry.getPackageName() + " | uid : " + mBatteryDiffEntry.mBatteryHistEntry.mUid + " with DiffEntry data"); Log.i(TAG, "handlePreferenceTreeClick():\n" + mBatteryDiffEntry); AdvancedPowerUsageDetail.startBatteryDetailPage( mParent.getActivity(), mParent, Loading Loading @@ -176,30 +171,11 @@ public class AppBatteryPreferenceController extends BasePreferenceController if (mPackageName == null) { return null; } final List<BatteryDiffEntry> batteryDiffEntries = BatteryChartPreferenceController.getBatteryLast24HrUsageData(mContext); if (batteryDiffEntries == null) { return null; } // Filter entry with consumer type to avoid system app, // then use user id to divide normal app and work profile app, // return target application from filter list by package name. return batteryDiffEntries.stream() .filter(entry -> entry.mBatteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY) .filter(entry -> entry.mBatteryHistEntry.mUserId == mUserId) .filter(entry -> { if (mPackageName.equals(entry.getPackageName())) { Log.i(TAG, "Return target application: " + entry.mBatteryHistEntry.mPackageName + " | uid: " + entry.mBatteryHistEntry.mUid + " | userId: " + entry.mBatteryHistEntry.mUserId); return true; } return false; }) .findFirst() .orElse(/* other */null); final BatteryDiffEntry entry = BatteryChartPreferenceController.getBatteryLast24HrUsageData( mContext, mPackageName, mUserId); Log.d(TAG, "loadBatteryDiffEntries():\n" + entry); return entry; } @Override Loading
src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +24 −1 Original line number Diff line number Diff line Loading @@ -617,7 +617,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll return true; } public static List<BatteryDiffEntry> getBatteryLast24HrUsageData(Context context) { /** Used for {@link AppBatteryPreferenceController}. */ static List<BatteryDiffEntry> getBatteryLast24HrUsageData(Context context) { final long start = System.currentTimeMillis(); final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = FeatureFactory.getFactory(context) Loading @@ -638,6 +639,28 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll return batteryIndexedMap.get(BatteryChartView.SELECTED_INDEX_ALL); } /** Used for {@link AppBatteryPreferenceController}. */ public static BatteryDiffEntry getBatteryLast24HrUsageData( Context context, String packageName, int userId) { if (packageName == null) { return null; } final List<BatteryDiffEntry> entries = getBatteryLast24HrUsageData(context); if (entries == null) { return null; } for (BatteryDiffEntry entry : entries) { final BatteryHistEntry batteryHistEntry = entry.mBatteryHistEntry; if (batteryHistEntry != null && batteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY && batteryHistEntry.mUserId == userId && packageName.equals(entry.getPackageName())) { return entry; } } return null; } private static long[] getBatteryHistoryKeys( final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) { final List<Long> batteryHistoryKeyList = Loading