Fix a bug in AnomalyDetectionJobService
Even though onStopJob is called, the service may still exist, so we need to reset the mIsJobCanceled in onStartJob Also remove the batteryStats since we don't need it anymore. Change-Id: I6d48efecb750ad4e464569cac426d87014a8db90 Fixes: 77968649 Test: RunSettingsRoboTests
This commit is contained in:
@@ -71,7 +71,8 @@ public class AnomalyDetectionJobService extends JobService {
|
||||
|
||||
private final Object mLock = new Object();
|
||||
@GuardedBy("mLock")
|
||||
private boolean mIsJobCanceled = false;
|
||||
@VisibleForTesting
|
||||
boolean mIsJobCanceled = false;
|
||||
|
||||
public static void scheduleAnomalyDetection(Context context, Intent intent) {
|
||||
final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
|
||||
@@ -89,6 +90,9 @@ public class AnomalyDetectionJobService extends JobService {
|
||||
|
||||
@Override
|
||||
public boolean onStartJob(JobParameters params) {
|
||||
synchronized (mLock) {
|
||||
mIsJobCanceled = false;
|
||||
}
|
||||
ThreadUtils.postOnBackgroundThread(() -> {
|
||||
final Context context = AnomalyDetectionJobService.this;
|
||||
final BatteryDatabaseManager batteryDatabaseManager =
|
||||
@@ -96,18 +100,15 @@ public class AnomalyDetectionJobService extends JobService {
|
||||
final BatteryTipPolicy policy = new BatteryTipPolicy(this);
|
||||
final BatteryUtils batteryUtils = BatteryUtils.getInstance(this);
|
||||
final ContentResolver contentResolver = getContentResolver();
|
||||
final BatteryStatsHelper batteryStatsHelper = new BatteryStatsHelper(this,
|
||||
true /* collectBatteryBroadcast */);
|
||||
final UserManager userManager = getSystemService(UserManager.class);
|
||||
final PowerWhitelistBackend powerWhitelistBackend = PowerWhitelistBackend.getInstance();
|
||||
final PowerUsageFeatureProvider powerUsageFeatureProvider = FeatureFactory
|
||||
.getFactory(this).getPowerUsageFeatureProvider(this);
|
||||
final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory
|
||||
.getFactory(this).getMetricsFeatureProvider();
|
||||
batteryUtils.initBatteryStatsHelper(batteryStatsHelper, null /* bundle */, userManager);
|
||||
|
||||
for (JobWorkItem item = dequeueWork(params); item != null; item = dequeueWork(params)) {
|
||||
saveAnomalyToDatabase(context, batteryStatsHelper, userManager,
|
||||
saveAnomalyToDatabase(context, userManager,
|
||||
batteryDatabaseManager, batteryUtils, policy, powerWhitelistBackend,
|
||||
contentResolver, powerUsageFeatureProvider, metricsFeatureProvider,
|
||||
item.getIntent().getExtras());
|
||||
@@ -128,8 +129,7 @@ public class AnomalyDetectionJobService extends JobService {
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void saveAnomalyToDatabase(Context context, BatteryStatsHelper batteryStatsHelper,
|
||||
UserManager userManager,
|
||||
void saveAnomalyToDatabase(Context context, UserManager userManager,
|
||||
BatteryDatabaseManager databaseManager, BatteryUtils batteryUtils,
|
||||
BatteryTipPolicy policy, PowerWhitelistBackend powerWhitelistBackend,
|
||||
ContentResolver contentResolver, PowerUsageFeatureProvider powerUsageFeatureProvider,
|
||||
|
Reference in New Issue
Block a user