Merge "Update the usage slot info in database" into main

This commit is contained in:
Zaiyue Xue
2024-04-11 10:05:10 +00:00
committed by Android (Google) Code Review
4 changed files with 15 additions and 17 deletions

View File

@@ -559,7 +559,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageData = final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageData =
DataProcessor.getBatteryUsageData( DataProcessor.getBatteryUsageData(
context, context,
new UserIdsSeries(context, /* mainUserOnly= */ false), new UserIdsSeries(context, /* isNonUIRequest= */ false),
batteryHistoryMap); batteryHistoryMap);
if (batteryUsageData == null) { if (batteryUsageData == null) {
return null; return null;

View File

@@ -165,7 +165,7 @@ public final class BatteryUsageDataLoader {
if (!isFullChargeStart) { if (!isFullChargeStart) {
// No app usage data or battery diff data at this time. // No app usage data or battery diff data at this time.
final UserIdsSeries userIdsSeries = final UserIdsSeries userIdsSeries =
new UserIdsSeries(context, /* mainUserOnly= */ true); new UserIdsSeries(context, /* isNonUIRequest= */ true);
if (!userIdsSeries.isCurrentUserLocked()) { if (!userIdsSeries.isCurrentUserLocked()) {
loadAppUsageData(context, userIdsSeries); loadAppUsageData(context, userIdsSeries);
preprocessBatteryUsageSlots(context, userIdsSeries); preprocessBatteryUsageSlots(context, userIdsSeries);

View File

@@ -496,7 +496,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
return DataProcessManager.getBatteryLevelData( return DataProcessManager.getBatteryLevelData(
getContext(), getContext(),
mHandler, mHandler,
new UserIdsSeries(getContext(), /* mainUserOnly= */ false), new UserIdsSeries(getContext(), /* isNonUIRequest= */ false),
/* isFromPeriodJob= */ false, /* isFromPeriodJob= */ false,
PowerUsageAdvanced.this::onBatteryDiffDataMapUpdate); PowerUsageAdvanced.this::onBatteryDiffDataMapUpdate);
} }

View File

@@ -33,31 +33,29 @@ class UserIdsSeries {
@Nullable private UserInfo mPrivateUser = null; @Nullable private UserInfo mPrivateUser = null;
@Nullable private UserInfo mManagedProfileUser = null; @Nullable private UserInfo mManagedProfileUser = null;
UserIdsSeries(final Context context, final boolean mainUserOnly) { UserIdsSeries(final Context context, final boolean isNonUIRequest) {
mUserManager = context.getSystemService(UserManager.class); mUserManager = context.getSystemService(UserManager.class);
mCurrentUserId = context.getUserId(); mCurrentUserId = context.getUserId();
List<UserInfo> aliveUsers = List<UserInfo> aliveUsers =
mUserManager != null ? mUserManager.getAliveUsers() : new ArrayList<>(); mUserManager != null ? mUserManager.getAliveUsers() : new ArrayList<>();
if (mainUserOnly) {
aliveUsers.stream()
.filter(UserInfo::isMain)
.forEach(userInfo -> mVisibleUserIds.add(userInfo.id));
return;
}
for (UserInfo userInfo : aliveUsers) { for (UserInfo userInfo : aliveUsers) {
if (!mUserManager.isSameProfileGroup(mCurrentUserId, userInfo.id)) { if (!mUserManager.isSameProfileGroup(mCurrentUserId, userInfo.id)) {
continue; continue;
} }
if (!userInfo.isQuietModeEnabled() || userInfo.isManagedProfile()) { if (userInfo.isManagedProfile()) {
// Load data for WorkProfile mode
mManagedProfileUser = userInfo;
mVisibleUserIds.add(userInfo.id);
} else if (userInfo.isPrivateProfile()) {
mPrivateUser = userInfo;
// Load data for PrivateProfile if it is from UI caller and PS is unlocked.
if (!isNonUIRequest && !userInfo.isQuietModeEnabled()) {
mVisibleUserIds.add(userInfo.id); mVisibleUserIds.add(userInfo.id);
} }
if (userInfo.isPrivateProfile()) { } else if (!userInfo.isQuietModeEnabled()) {
mPrivateUser = userInfo; // Load data for other profiles if it is not in quiet mode
} mVisibleUserIds.add(userInfo.id);
if (userInfo.isManagedProfile()) {
mManagedProfileUser = userInfo;
} }
} }
} }