diff options
Diffstat (limited to 'src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java')
-rw-r--r-- | src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java deleted file mode 100644 index fbd7dedf05..0000000000 --- a/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.fuelgauge.anomaly; - -import android.content.Context; -import android.content.pm.PackageManager; -import android.os.BatteryStats; -import android.os.Bundle; -import android.os.UserManager; -import androidx.annotation.VisibleForTesting; -import android.util.Log; - -import com.android.internal.os.BatteryStatsHelper; -import com.android.internal.util.ArrayUtils; -import com.android.settingslib.utils.AsyncLoader; - -import java.io.FileDescriptor; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; - -/** - * Loader to compute which apps are anomaly and return a anomaly list. It will return - * an empty list if there is no anomaly. - */ -public class AnomalyLoader extends AsyncLoader<List<Anomaly>> { - private static final String TAG = "AnomalyLoader"; - - private static final boolean USE_FAKE_DATA = false; - private BatteryStatsHelper mBatteryStatsHelper; - private String mPackageName; - private UserManager mUserManager; - @VisibleForTesting - AnomalyUtils mAnomalyUtils; - @VisibleForTesting - AnomalyDetectionPolicy mPolicy; - - /** - * Create {@link AnomalyLoader} that runs anomaly check for all apps. - */ - public AnomalyLoader(Context context, BatteryStatsHelper batteryStatsHelper) { - this(context, batteryStatsHelper, null, new AnomalyDetectionPolicy(context)); - - } - - /** - * Create {@link AnomalyLoader} with {@code packageName}, so this loader will only - * detect anomalies related to {@code packageName}, or check all apps if {@code packageName} - * is {@code null}. - * - * This constructor will create {@link BatteryStatsHelper} in background thread. - * - * @param packageName if set, only finds anomalies for this package. If {@code null}, - * detects all anomalies of this type. - */ - public AnomalyLoader(Context context, String packageName) { - this(context, null, packageName, new AnomalyDetectionPolicy(context)); - } - - @VisibleForTesting - AnomalyLoader(Context context, BatteryStatsHelper batteryStatsHelper, - String packageName, AnomalyDetectionPolicy policy) { - super(context); - mBatteryStatsHelper = batteryStatsHelper; - mPackageName = packageName; - mAnomalyUtils = AnomalyUtils.getInstance(context); - mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); - mPolicy = policy; - } - - @Override - protected void onDiscardResult(List<Anomaly> result) { - } - - @Override - public List<Anomaly> loadInBackground() { - if (USE_FAKE_DATA) { - return generateFakeData(); - } - if (mBatteryStatsHelper == null) { - mBatteryStatsHelper = new BatteryStatsHelper(getContext()); - mBatteryStatsHelper.create((Bundle) null); - mBatteryStatsHelper.refreshStats(BatteryStats.STATS_SINCE_CHARGED, - mUserManager.getUserProfiles()); - } - - return mAnomalyUtils.detectAnomalies(mBatteryStatsHelper, mPolicy, mPackageName); - } - - @VisibleForTesting - List<Anomaly> generateFakeData() { - final List<Anomaly> anomalies = new ArrayList<>(); - final Context context = getContext(); - final String packageName = "com.android.settings"; - final CharSequence displayName = "Settings"; - try { - final int uid = context.getPackageManager().getPackageUid(packageName, 0); - - anomalies.add(new Anomaly.Builder() - .setUid(uid) - .setType(Anomaly.AnomalyType.WAKE_LOCK) - .setPackageName(packageName) - .setDisplayName(displayName) - .build()); - anomalies.add(new Anomaly.Builder() - .setUid(uid) - .setType(Anomaly.AnomalyType.WAKEUP_ALARM) - .setPackageName(packageName) - .setDisplayName(displayName) - .build()); - anomalies.add(new Anomaly.Builder() - .setUid(uid) - .setType(Anomaly.AnomalyType.BLUETOOTH_SCAN) - .setPackageName(packageName) - .setDisplayName(displayName) - .build()); - } catch (PackageManager.NameNotFoundException e) { - Log.e(TAG, "Cannot find package by name: " + packageName, e); - } - return anomalies; - } - -} |