From ed7ce44f65ef79778b1d7fec59d076a4fd5c91f5 Mon Sep 17 00:00:00 2001 From: mxyyiyi Date: Tue, 12 Dec 2023 13:54:32 +0800 Subject: [PATCH] Add record for anomaly detect request source and clean up unused function. Bug: 315905559 Test: make RunSettingsGoogleRoboTests ROBOTEST_FILTER="com.google.android.settings.fuelgauge.*" Change-Id: I21a13a7910b21b27aac58143bd41c77e87c71953 --- .../fuelgauge/PowerUsageFeatureProvider.java | 7 +++---- .../fuelgauge/PowerUsageFeatureProviderImpl.java | 7 +++---- .../batteryusage/BatteryUsageDataLoader.java | 5 ++++- .../fuelgauge/batteryusage/PowerUsageAdvanced.java | 4 +++- .../fuelgauge/protos/power_anomaly_event.proto | 13 +++++++------ 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java index a2ee3e47ce7..0bc617626ba 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java @@ -22,6 +22,7 @@ import android.os.Bundle; import android.util.ArrayMap; import android.util.SparseIntArray; +import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType; import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList; import com.android.settingslib.fuelgauge.Estimate; @@ -103,11 +104,9 @@ public interface PowerUsageFeatureProvider { /** Returns {@code true} if delay the hourly job when device is booting */ boolean delayHourlyJobWhenBooting(); - /** Insert settings configuration data for anomaly detection */ - void insertSettingsData(Context context, double displayDrain); - /** Returns {@link Bundle} for settings anomaly detection result */ - PowerAnomalyEventList detectSettingsAnomaly(Context context, double displayDrain); + PowerAnomalyEventList detectSettingsAnomaly( + Context context, double displayDrain, DetectRequestSourceType detectRequestSourceType); /** Gets an intent for one time bypass charge limited to resume charging. */ Intent getResumeChargeIntent(boolean isDockDefender); diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java index 2e2cf12f6de..a8a2f750b37 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java @@ -27,6 +27,7 @@ import android.util.ArraySet; import android.util.SparseIntArray; import com.android.internal.util.ArrayUtils; +import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType; import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList; import com.android.settingslib.fuelgauge.Estimate; @@ -168,10 +169,8 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider } @Override - public void insertSettingsData(Context context, double displayDrain) {} - - @Override - public PowerAnomalyEventList detectSettingsAnomaly(Context context, double displayDrain) { + public PowerAnomalyEventList detectSettingsAnomaly( + Context context, double displayDrain, DetectRequestSourceType detectRequestSourceType) { return null; } diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java index ead580be5ad..fb5b9a1a327 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java @@ -135,7 +135,10 @@ public final class BatteryUsageDataLoader { .isEmpty()))) { FeatureFactory.getFeatureFactory() .getPowerUsageFeatureProvider() - .detectSettingsAnomaly(context, /* displayDrain= */ 0); + .detectSettingsAnomaly( + context, + /* displayDrain= */ 0, + DetectRequestSourceType.TYPE_DATA_LOADER); } }); if (batteryLevelData == null) { diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java index 072040d75bd..1482117cf0b 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java +++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java @@ -263,7 +263,9 @@ public class PowerUsageAdvanced extends PowerUsageBase { FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); final PowerAnomalyEventList anomalyEventList = powerUsageFeatureProvider.detectSettingsAnomaly( - getContext(), /* displayDrain= */ 0); + getContext(), + /* displayDrain= */ 0, + DetectRequestSourceType.TYPE_USAGE_UI); mHandler.post(() -> onAnomalyDetected(anomalyEventList)); }); } diff --git a/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto b/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto index 930a21b0fae..3c0705fff24 100644 --- a/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto +++ b/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto @@ -21,18 +21,12 @@ message PowerAnomalyEvent { optional string dismiss_record_key = 8; } -// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead. -// The enum value will be used to decide the tips card style like icons and colors. -// // Next id: 2 enum PowerAnomalyType{ TYPE_SETTINGS_BANNER = 0; TYPE_APPS_ITEM = 1; } -// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead. -// The enum value will be used to decide pre-defined title and button labels. -// // Next id: 8 enum PowerAnomalyKey{ KEY_BRIGHTNESS = 0; @@ -45,6 +39,13 @@ enum PowerAnomalyKey{ KEY_APP_FOREGROUND_HIGHER_THAN_USUAL = 7; } +// Next id: 3 +enum DetectRequestSourceType{ + TYPE_UNKNOWN_SOURCE = 0; + TYPE_USAGE_UI = 1; + TYPE_DATA_LOADER = 2; +} + message WarningBannerInfo { optional string title_string = 1; optional string description_string = 2;