Fix b/266045288: CPU and GPS usage is missing in battery usage system list

Already asked UX designer to provide new icons for CPU and GPS in
b/265364507.

Bug: 266045288
Fix: 266045288
Test: manual
Change-Id: Ia59c92de817958231d26c8839bc403be9ec5ad7c
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3fec86b..337455d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5028,10 +5028,14 @@
 
     <!-- Label for power consumed by the screen -->
     <string name="power_screen">Screen</string>
+    <!-- Label for power consumed by the CPU -->
+    <string name="power_cpu">CPU</string>
     <!-- Label for power consumed by the flashlight -->
     <string name="power_flashlight">Flashlight</string>
     <!-- Label for power consumed by the camera -->
     <string name="power_camera">Camera</string>
+    <!-- Label for power consumed by the GPS -->
+    <string name="power_gps">GPS</string>
     <!-- Label for power consumed by Wi-Fi -->
     <string name="power_wifi">Wi\u2011Fi</string>
     <!-- Label for power consumed by Bluetooth -->
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
index acf62c2..69b57ca 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
@@ -558,38 +558,47 @@
         String name;
         int iconId;
         switch (powerComponentId) {
-            case BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY:
-                name = context.getResources().getString(R.string.ambient_display_screen_title);
-                iconId = R.drawable.ic_settings_aod;
-                break;
-            case BatteryConsumer.POWER_COMPONENT_BLUETOOTH:
-                name = context.getResources().getString(R.string.power_bluetooth);
-                iconId = R.drawable.ic_settings_bluetooth;
-                break;
-            case BatteryConsumer.POWER_COMPONENT_CAMERA:
-                name = context.getResources().getString(R.string.power_camera);
-                iconId = R.drawable.ic_settings_camera;
-                break;
-            case BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO:
-                name = context.getResources().getString(R.string.power_cell);
-                iconId = R.drawable.ic_cellular_1_bar;
-                break;
-            case BatteryConsumer.POWER_COMPONENT_FLASHLIGHT:
-                name = context.getResources().getString(R.string.power_flashlight);
-                iconId = R.drawable.ic_settings_display;
-                break;
-            case BatteryConsumer.POWER_COMPONENT_PHONE:
-                name = context.getResources().getString(R.string.power_phone);
-                iconId = R.drawable.ic_settings_voice_calls;
-                break;
-            case BatteryConsumer.POWER_COMPONENT_SCREEN:
+            // Please see go/battery-usage-system-component-map
+            case BatteryConsumer.POWER_COMPONENT_SCREEN:  // id: 0
                 name = context.getResources().getString(R.string.power_screen);
                 iconId = R.drawable.ic_settings_display;
                 break;
-            case BatteryConsumer.POWER_COMPONENT_WIFI:
+            case BatteryConsumer.POWER_COMPONENT_CPU:  // id: 1
+                name = context.getResources().getString(R.string.power_cpu);
+                iconId = R.drawable.ic_power_system;
+                break;
+            case BatteryConsumer.POWER_COMPONENT_BLUETOOTH: // id: 2
+                name = context.getResources().getString(R.string.power_bluetooth);
+                iconId = R.drawable.ic_settings_bluetooth;
+                break;
+            case BatteryConsumer.POWER_COMPONENT_CAMERA:  // id: 3
+                name = context.getResources().getString(R.string.power_camera);
+                iconId = R.drawable.ic_settings_camera;
+                break;
+            case BatteryConsumer.POWER_COMPONENT_FLASHLIGHT:  // id: 6
+                name = context.getResources().getString(R.string.power_flashlight);
+                iconId = R.drawable.ic_settings_display;
+                break;
+            case BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO: // id: 8
+                name = context.getResources().getString(R.string.power_cell);
+                iconId = R.drawable.ic_cellular_1_bar;
+                break;
+            case BatteryConsumer.POWER_COMPONENT_GNSS:  // id: 10
+                name = context.getResources().getString(R.string.power_gps);
+                iconId = R.drawable.ic_power_system;
+                break;
+            case BatteryConsumer.POWER_COMPONENT_WIFI:  // id: 11
                 name = context.getResources().getString(R.string.power_wifi);
                 iconId = R.drawable.ic_settings_wireless_no_theme;
                 break;
+            case BatteryConsumer.POWER_COMPONENT_PHONE:  // id: 14
+                name = context.getResources().getString(R.string.power_phone);
+                iconId = R.drawable.ic_settings_voice_calls;
+                break;
+            case BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY:  // id :15
+                name = context.getResources().getString(R.string.ambient_display_screen_title);
+                iconId = R.drawable.ic_settings_aod;
+                break;
             default:
                 Log.w(TAG, "unknown attribute:" + DebugUtils.constantToString(
                         BatteryConsumer.class, "POWER_COMPONENT_", powerComponentId));
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
index 07a8dfe..6a5ae34 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
@@ -317,30 +317,36 @@
 
     @Test
     public void getNameAndIconFromPowerComponent_rerturnExpectedNameAndIcon() {
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
-                R.string.ambient_display_screen_title,
-                R.drawable.ic_settings_aod);
+        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_SCREEN,
+                R.string.power_screen,
+                R.drawable.ic_settings_display);
+        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_CPU,
+                R.string.power_cpu,
+                R.drawable.ic_power_system);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
                 R.string.power_bluetooth,
                 R.drawable.ic_settings_bluetooth);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_CAMERA,
                 R.string.power_camera,
                 R.drawable.ic_settings_camera);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO,
-                R.string.power_cell,
-                R.drawable.ic_cellular_1_bar);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT,
                 R.string.power_flashlight,
                 R.drawable.ic_settings_display);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_PHONE,
-                R.string.power_phone,
-                R.drawable.ic_settings_voice_calls);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_SCREEN,
-                R.string.power_screen,
-                R.drawable.ic_settings_display);
+        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO,
+                R.string.power_cell,
+                R.drawable.ic_cellular_1_bar);
+        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_GNSS,
+                R.string.power_gps,
+                R.drawable.ic_power_system);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_WIFI,
                 R.string.power_wifi,
                 R.drawable.ic_settings_wireless_no_theme);
+        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_PHONE,
+                R.string.power_phone,
+                R.drawable.ic_settings_voice_calls);
+        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
+                R.string.ambient_display_screen_title,
+                R.drawable.ic_settings_aod);
     }
 
     private void assertNameAndIcon(String name, int stringId) {