From 749a642be6e3bed05b759d876ae58cc5d8601db6 Mon Sep 17 00:00:00 2001 From: mxyyiyi Date: Thu, 11 Apr 2024 13:33:07 +0800 Subject: [PATCH] Update the usage slot info in database - For personal/work profile, always send data to db - For private profile, skip load data in period job Bug: 331720433 Bug: 324191159 Test: manual Change-Id: I77526dfdc837a6edaa9184bf3c751a7455b839a8 --- .../BatteryChartPreferenceController.java | 2 +- .../batteryusage/BatteryUsageDataLoader.java | 2 +- .../batteryusage/PowerUsageAdvanced.java | 2 +- .../fuelgauge/batteryusage/UserIdsSeries.java | 26 +++++++++---------- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java index 5e6d7d59c88..cf4f67fec25 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java @@ -559,7 +559,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll final Map> batteryUsageData = DataProcessor.getBatteryUsageData( context, - new UserIdsSeries(context, /* mainUserOnly= */ false), + new UserIdsSeries(context, /* isNonUIRequest= */ false), batteryHistoryMap); if (batteryUsageData == null) { return null; diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java index 5b1a6a72dde..870faecd106 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java @@ -165,7 +165,7 @@ public final class BatteryUsageDataLoader { if (!isFullChargeStart) { // No app usage data or battery diff data at this time. final UserIdsSeries userIdsSeries = - new UserIdsSeries(context, /* mainUserOnly= */ true); + new UserIdsSeries(context, /* isNonUIRequest= */ true); if (!userIdsSeries.isCurrentUserLocked()) { loadAppUsageData(context, userIdsSeries); preprocessBatteryUsageSlots(context, userIdsSeries); diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java index 14e07d3baa2..45091f65466 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java +++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java @@ -496,7 +496,7 @@ public class PowerUsageAdvanced extends PowerUsageBase { return DataProcessManager.getBatteryLevelData( getContext(), mHandler, - new UserIdsSeries(getContext(), /* mainUserOnly= */ false), + new UserIdsSeries(getContext(), /* isNonUIRequest= */ false), /* isFromPeriodJob= */ false, PowerUsageAdvanced.this::onBatteryDiffDataMapUpdate); } diff --git a/src/com/android/settings/fuelgauge/batteryusage/UserIdsSeries.java b/src/com/android/settings/fuelgauge/batteryusage/UserIdsSeries.java index 3dc311e7248..a92f8f9445d 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/UserIdsSeries.java +++ b/src/com/android/settings/fuelgauge/batteryusage/UserIdsSeries.java @@ -33,31 +33,29 @@ class UserIdsSeries { @Nullable private UserInfo mPrivateUser = 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); mCurrentUserId = context.getUserId(); List aliveUsers = mUserManager != null ? mUserManager.getAliveUsers() : new ArrayList<>(); - if (mainUserOnly) { - aliveUsers.stream() - .filter(UserInfo::isMain) - .forEach(userInfo -> mVisibleUserIds.add(userInfo.id)); - return; - } - for (UserInfo userInfo : aliveUsers) { if (!mUserManager.isSameProfileGroup(mCurrentUserId, userInfo.id)) { continue; } - if (!userInfo.isQuietModeEnabled() || userInfo.isManagedProfile()) { - mVisibleUserIds.add(userInfo.id); - } - if (userInfo.isPrivateProfile()) { - mPrivateUser = userInfo; - } 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); + } + } else if (!userInfo.isQuietModeEnabled()) { + // Load data for other profiles if it is not in quiet mode + mVisibleUserIds.add(userInfo.id); } } }