Provide getBatteryLast24HrUsageData() method for application info
Bug: 178197718 Test: make SettingsRoboTests Change-Id: Iaa5f0c1bdead1a5380129f63987bbae3b4461633
This commit is contained in:
@@ -43,7 +43,6 @@ import com.android.settings.fuelgauge.BatteryDiffEntry;
|
|||||||
import com.android.settings.fuelgauge.BatteryEntry;
|
import com.android.settings.fuelgauge.BatteryEntry;
|
||||||
import com.android.settings.fuelgauge.BatteryUsageStatsLoader;
|
import com.android.settings.fuelgauge.BatteryUsageStatsLoader;
|
||||||
import com.android.settings.fuelgauge.BatteryUtils;
|
import com.android.settings.fuelgauge.BatteryUtils;
|
||||||
import com.android.settings.fuelgauge.ConvertUtils;
|
|
||||||
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
@@ -118,11 +117,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mBatteryDiffEntry != null) {
|
if (mBatteryDiffEntry != null) {
|
||||||
Log.i(TAG, "BatteryDiffEntry not null, launch : "
|
Log.i(TAG, "handlePreferenceTreeClick():\n" + mBatteryDiffEntry);
|
||||||
+ mBatteryDiffEntry.getPackageName()
|
|
||||||
+ " | uid : "
|
|
||||||
+ mBatteryDiffEntry.mBatteryHistEntry.mUid
|
|
||||||
+ " with DiffEntry data");
|
|
||||||
AdvancedPowerUsageDetail.startBatteryDetailPage(
|
AdvancedPowerUsageDetail.startBatteryDetailPage(
|
||||||
mParent.getActivity(),
|
mParent.getActivity(),
|
||||||
mParent,
|
mParent,
|
||||||
@@ -176,30 +171,11 @@ public class AppBatteryPreferenceController extends BasePreferenceController
|
|||||||
if (mPackageName == null) {
|
if (mPackageName == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final List<BatteryDiffEntry> batteryDiffEntries =
|
final BatteryDiffEntry entry =
|
||||||
BatteryChartPreferenceController.getBatteryLast24HrUsageData(mContext);
|
BatteryChartPreferenceController.getBatteryLast24HrUsageData(
|
||||||
if (batteryDiffEntries == null) {
|
mContext, mPackageName, mUserId);
|
||||||
return null;
|
Log.d(TAG, "loadBatteryDiffEntries():\n" + entry);
|
||||||
}
|
return entry;
|
||||||
// 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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -617,7 +617,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
|||||||
return true;
|
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 long start = System.currentTimeMillis();
|
||||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
|
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
|
||||||
FeatureFactory.getFactory(context)
|
FeatureFactory.getFactory(context)
|
||||||
@@ -638,6 +639,28 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
|||||||
return batteryIndexedMap.get(BatteryChartView.SELECTED_INDEX_ALL);
|
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(
|
private static long[] getBatteryHistoryKeys(
|
||||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
|
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
|
||||||
final List<Long> batteryHistoryKeyList =
|
final List<Long> batteryHistoryKeyList =
|
||||||
|
Reference in New Issue
Block a user