Merge "Fix incorrect usage for the logging method to cause no data in WW" into sc-v2-dev
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index cd518a6..3741bfe 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -29,7 +29,6 @@
 import android.text.TextUtils;
 import android.text.format.DateUtils;
 import android.util.Log;
-import android.util.Pair;
 import android.view.View;
 
 import androidx.annotation.VisibleForTesting;
@@ -87,6 +86,7 @@
     private static final String KEY_PREF_OPTIMIZED = "optimized_pref";
     private static final String KEY_PREF_RESTRICTED = "restricted_pref";
     private static final String KEY_FOOTER_PREFERENCE = "app_usage_footer_preference";
+    private static final String PACKAGE_NAME_NONE = "none";
 
     private static final int REQUEST_UNINSTALL = 0;
     private static final int REQUEST_REMOVE_DEVICE_ADMIN = 1;
@@ -484,14 +484,14 @@
         }
 
         if (metricCategory != 0) {
+            final String packageName = mBatteryOptimizeUtils.getPackageName();
             FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
                     .action(
-                            getContext(),
-                            metricCategory,
-                            new Pair(ConvertUtils.METRIC_KEY_PACKAGE,
-                                    mBatteryOptimizeUtils.getPackageName()),
-                            new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE,
-                                    getArguments().getString(EXTRA_POWER_USAGE_PERCENT)));
+                            /* attribution */ SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                            /* action */ metricCategory,
+                            /* pageId */ SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                            TextUtils.isEmpty(packageName) ? PACKAGE_NAME_NONE : packageName,
+                            getArguments().getInt(EXTRA_POWER_USAGE_AMOUNT));
         }
     }
 
diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
index 4249c44..90a86f1 100644
--- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
@@ -28,7 +28,6 @@
 import android.text.format.DateFormat;
 import android.text.format.DateUtils;
 import android.util.Log;
-import android.util.Pair;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
@@ -65,6 +64,7 @@
                 ExpandDividerPreference.OnExpandListener {
     private static final String TAG = "BatteryChartPreferenceController";
     private static final String KEY_FOOTER_PREF = "battery_graph_footer";
+    private static final String PACKAGE_NAME_NONE = "none";
 
     /** Desired battery history size for timestamp slots. */
     public static final int DESIRED_HISTORY_SIZE = 25;
@@ -223,13 +223,13 @@
         final String packageName = histEntry.mPackageName;
         final boolean isAppEntry = histEntry.isAppEntry();
         mMetricsFeatureProvider.action(
-            mPrefContext,
-            isAppEntry
-                ? SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM
-                : SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
-            new Pair(ConvertUtils.METRIC_KEY_PACKAGE, packageName),
-            new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, histEntry.mBatteryLevel),
-            new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, powerPref.getPercent()));
+                /* attribution */ SettingsEnums.OPEN_BATTERY_USAGE,
+                /* action */ isAppEntry
+                        ? SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM
+                        : SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
+                /* pageId */ SettingsEnums.OPEN_BATTERY_USAGE,
+                TextUtils.isEmpty(packageName) ? PACKAGE_NAME_NONE : packageName,
+                (int) Math.round(diffEntry.getPercentOfTotal()));
         Log.d(TAG, String.format("handleClick() label=%s key=%s package=%s",
                 diffEntry.getAppLabel(), histEntry.getKey(), histEntry.mPackageName));
         AdvancedPowerUsageDetail.startBatteryDetailPage(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index db002cb..0a48cd1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -806,12 +806,11 @@
 
         verify(mMetricsFeatureProvider)
                 .action(
-                        mContext,
+                        SettingsEnums.OPEN_APP_BATTERY_USAGE,
                         SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
-                        (Pair<Integer, Object>[]) new Pair[] {
-                                new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null),
-                                new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, "app label")
-                        });
+                        SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                        /* package name*/ "none",
+                        /* consumed battery */ 0);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
index a9a743b..1d74491 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
@@ -343,14 +343,12 @@
         assertThat(mBatteryChartPreferenceController.handlePreferenceTreeClick(
             mPowerGaugePreference)).isTrue();
         verify(mMetricsFeatureProvider)
-            .action(
-                mContext,
-                SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
-                (Pair<Integer, Object>[]) new Pair[] {
-                    new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null),
-                    new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, 0),
-                    new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, null)
-                });
+                .action(
+                        SettingsEnums.OPEN_BATTERY_USAGE,
+                        SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
+                        SettingsEnums.OPEN_BATTERY_USAGE,
+                        /* package name */ "none",
+                        /* percentage of total */ 0);
     }
 
     @Test
@@ -362,14 +360,12 @@
         assertThat(mBatteryChartPreferenceController.handlePreferenceTreeClick(
             mPowerGaugePreference)).isTrue();
         verify(mMetricsFeatureProvider)
-            .action(
-                mContext,
-                SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM,
-                (Pair<Integer, Object>[]) new Pair[] {
-                    new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null),
-                    new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, 0),
-                    new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, null)
-                });
+                .action(
+                        SettingsEnums.OPEN_BATTERY_USAGE,
+                        SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM,
+                        SettingsEnums.OPEN_BATTERY_USAGE,
+                        /* package name */ "none",
+                        /* percentage of total */ 0);
     }
 
     @Test