Loading src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +5 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.os.Bundle; import android.util.ArrayMap; import android.util.SparseIntArray; import androidx.annotation.NonNull; import com.android.settings.fuelgauge.batteryusage.BatteryDiffData; import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType; import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList; Loading Loading @@ -162,5 +164,7 @@ public interface PowerUsageFeatureProvider { /** Collect and process battery reattribute data if needed. */ boolean processBatteryReattributeData( Context context, Map<Long, BatteryDiffData> batteryDiffDataMap); @NonNull Context context, @NonNull Map<Long, BatteryDiffData> batteryDiffDataMap, final boolean isFromPeriodJob); } src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +5 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.SparseIntArray; import androidx.annotation.NonNull; import com.android.internal.util.ArrayUtils; import com.android.settings.fuelgauge.batteryusage.BatteryDiffData; import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType; Loading Loading @@ -250,7 +252,9 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider @Override public boolean processBatteryReattributeData( Context context, Map<Long, BatteryDiffData> batteryDiffDataMap) { @NonNull Context context, @NonNull Map<Long, BatteryDiffData> batteryDiffDataMap, final boolean isFromPeriodJob) { return false; } } src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java +0 −3 Original line number Diff line number Diff line Loading @@ -128,9 +128,6 @@ public final class BatteryUsageDataLoader { final PowerUsageFeatureProvider featureProvider = FeatureFactory.getFeatureFactory() .getPowerUsageFeatureProvider(); // Collect and process battery reattribute data. featureProvider.processBatteryReattributeData( context, batteryDiffDataMap); DatabaseUtils.sendBatteryUsageSlotData( context, ConvertUtils.convertToBatteryUsageSlotList( Loading src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java +17 −7 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.overlay.FeatureFactory; import java.util.ArrayList; import java.util.Calendar; Loading Loading @@ -78,6 +80,7 @@ public class DataProcessManager { // Raw start timestamp with round to the nearest hour. private final long mRawStartTimestamp; private final long mLastFullChargeTimestamp; private final boolean mIsFromPeriodJob; private final Context mContext; private final Handler mHandler; private final UserIdsSeries mUserIdsSeries; Loading Loading @@ -122,6 +125,7 @@ public class DataProcessManager { Context context, Handler handler, final UserIdsSeries userIdsSeries, final boolean isFromPeriodJob, final long rawStartTimestamp, final long lastFullChargeTimestamp, @NonNull final OnBatteryDiffDataMapLoadedListener callbackFunction, Loading @@ -130,6 +134,7 @@ public class DataProcessManager { mContext = context.getApplicationContext(); mHandler = handler; mUserIdsSeries = userIdsSeries; mIsFromPeriodJob = isFromPeriodJob; mRawStartTimestamp = rawStartTimestamp; mLastFullChargeTimestamp = lastFullChargeTimestamp; mCallbackFunction = callbackFunction; Loading @@ -147,6 +152,7 @@ public class DataProcessManager { mHandler = handler; mUserIdsSeries = userIdsSeries; mCallbackFunction = callbackFunction; mIsFromPeriodJob = false; mRawStartTimestamp = 0L; mLastFullChargeTimestamp = 0L; mHourlyBatteryLevelsPerDay = null; Loading @@ -158,14 +164,9 @@ public class DataProcessManager { /** Starts the async tasks to load battery history data and app usage data. */ public void start() { start(/* isFromPeriodJob= */ false); } /** Starts the async tasks to load battery history data and app usage data. */ public void start(boolean isFromPeriodJob) { // If we have battery level data, load the battery history map and app usage simultaneously. if (mHourlyBatteryLevelsPerDay != null) { if (isFromPeriodJob) { if (mIsFromPeriodJob) { mIsCurrentBatteryHistoryLoaded = true; mIsCurrentAppUsageLoaded = true; mIsBatteryUsageSlotLoaded = true; Loading Loading @@ -514,6 +515,14 @@ public class DataProcessManager { mAppUsagePeriodMap, getSystemAppsPackageNames(), getSystemAppsUids())); // Process the reattributate data for the following two cases: // 1) the latest slot for the timestamp "until now" // 2) walkthrough all BatteryDiffData again to handle "re-compute" case final PowerUsageFeatureProvider featureProvider = FeatureFactory.getFeatureFactory() .getPowerUsageFeatureProvider(); featureProvider.processBatteryReattributeData( mContext, batteryDiffDataMap, mIsFromPeriodJob); Log.d( TAG, Loading Loading @@ -683,12 +692,13 @@ public class DataProcessManager { context, handler, userIdsSeries, isFromPeriodJob, startTimestamp, lastFullChargeTime, onBatteryDiffDataMapLoadedListener, batteryLevelData.getHourlyBatteryLevelsPerDay(), processedBatteryHistoryMap) .start(isFromPeriodJob); .start(); return batteryLevelData; } Loading tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,7 @@ public final class DataProcessManagerTest { mContext, /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* rawStartTimestamp= */ 0L, /* lastFullChargeTimestamp= */ 0L, /* callbackFunction= */ null, Loading Loading @@ -258,6 +259,7 @@ public final class DataProcessManagerTest { mContext, /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* rawStartTimestamp= */ 2L, /* lastFullChargeTimestamp= */ 1L, /* callbackFunction= */ null, Loading Loading
src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +5 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.os.Bundle; import android.util.ArrayMap; import android.util.SparseIntArray; import androidx.annotation.NonNull; import com.android.settings.fuelgauge.batteryusage.BatteryDiffData; import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType; import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList; Loading Loading @@ -162,5 +164,7 @@ public interface PowerUsageFeatureProvider { /** Collect and process battery reattribute data if needed. */ boolean processBatteryReattributeData( Context context, Map<Long, BatteryDiffData> batteryDiffDataMap); @NonNull Context context, @NonNull Map<Long, BatteryDiffData> batteryDiffDataMap, final boolean isFromPeriodJob); }
src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +5 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.SparseIntArray; import androidx.annotation.NonNull; import com.android.internal.util.ArrayUtils; import com.android.settings.fuelgauge.batteryusage.BatteryDiffData; import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType; Loading Loading @@ -250,7 +252,9 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider @Override public boolean processBatteryReattributeData( Context context, Map<Long, BatteryDiffData> batteryDiffDataMap) { @NonNull Context context, @NonNull Map<Long, BatteryDiffData> batteryDiffDataMap, final boolean isFromPeriodJob) { return false; } }
src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java +0 −3 Original line number Diff line number Diff line Loading @@ -128,9 +128,6 @@ public final class BatteryUsageDataLoader { final PowerUsageFeatureProvider featureProvider = FeatureFactory.getFeatureFactory() .getPowerUsageFeatureProvider(); // Collect and process battery reattribute data. featureProvider.processBatteryReattributeData( context, batteryDiffDataMap); DatabaseUtils.sendBatteryUsageSlotData( context, ConvertUtils.convertToBatteryUsageSlotList( Loading
src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java +17 −7 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.overlay.FeatureFactory; import java.util.ArrayList; import java.util.Calendar; Loading Loading @@ -78,6 +80,7 @@ public class DataProcessManager { // Raw start timestamp with round to the nearest hour. private final long mRawStartTimestamp; private final long mLastFullChargeTimestamp; private final boolean mIsFromPeriodJob; private final Context mContext; private final Handler mHandler; private final UserIdsSeries mUserIdsSeries; Loading Loading @@ -122,6 +125,7 @@ public class DataProcessManager { Context context, Handler handler, final UserIdsSeries userIdsSeries, final boolean isFromPeriodJob, final long rawStartTimestamp, final long lastFullChargeTimestamp, @NonNull final OnBatteryDiffDataMapLoadedListener callbackFunction, Loading @@ -130,6 +134,7 @@ public class DataProcessManager { mContext = context.getApplicationContext(); mHandler = handler; mUserIdsSeries = userIdsSeries; mIsFromPeriodJob = isFromPeriodJob; mRawStartTimestamp = rawStartTimestamp; mLastFullChargeTimestamp = lastFullChargeTimestamp; mCallbackFunction = callbackFunction; Loading @@ -147,6 +152,7 @@ public class DataProcessManager { mHandler = handler; mUserIdsSeries = userIdsSeries; mCallbackFunction = callbackFunction; mIsFromPeriodJob = false; mRawStartTimestamp = 0L; mLastFullChargeTimestamp = 0L; mHourlyBatteryLevelsPerDay = null; Loading @@ -158,14 +164,9 @@ public class DataProcessManager { /** Starts the async tasks to load battery history data and app usage data. */ public void start() { start(/* isFromPeriodJob= */ false); } /** Starts the async tasks to load battery history data and app usage data. */ public void start(boolean isFromPeriodJob) { // If we have battery level data, load the battery history map and app usage simultaneously. if (mHourlyBatteryLevelsPerDay != null) { if (isFromPeriodJob) { if (mIsFromPeriodJob) { mIsCurrentBatteryHistoryLoaded = true; mIsCurrentAppUsageLoaded = true; mIsBatteryUsageSlotLoaded = true; Loading Loading @@ -514,6 +515,14 @@ public class DataProcessManager { mAppUsagePeriodMap, getSystemAppsPackageNames(), getSystemAppsUids())); // Process the reattributate data for the following two cases: // 1) the latest slot for the timestamp "until now" // 2) walkthrough all BatteryDiffData again to handle "re-compute" case final PowerUsageFeatureProvider featureProvider = FeatureFactory.getFeatureFactory() .getPowerUsageFeatureProvider(); featureProvider.processBatteryReattributeData( mContext, batteryDiffDataMap, mIsFromPeriodJob); Log.d( TAG, Loading Loading @@ -683,12 +692,13 @@ public class DataProcessManager { context, handler, userIdsSeries, isFromPeriodJob, startTimestamp, lastFullChargeTime, onBatteryDiffDataMapLoadedListener, batteryLevelData.getHourlyBatteryLevelsPerDay(), processedBatteryHistoryMap) .start(isFromPeriodJob); .start(); return batteryLevelData; } Loading
tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,7 @@ public final class DataProcessManagerTest { mContext, /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* rawStartTimestamp= */ 0L, /* lastFullChargeTimestamp= */ 0L, /* callbackFunction= */ null, Loading Loading @@ -258,6 +259,7 @@ public final class DataProcessManagerTest { mContext, /* handler= */ null, mUserIdsSeries, /* isFromPeriodJob= */ false, /* rawStartTimestamp= */ 2L, /* lastFullChargeTimestamp= */ 1L, /* callbackFunction= */ null, Loading