Implements additional battery info menu behavior.

This is a manual cherry-pick of commit
6a43a06cac12494cd27e5b5cad4149a272d90038.

Bug: 33352540
Test: Updated existing tests.
Change-Id: I990029d2ea9032301362d614959259965b8ecb10
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index 7d63470..25743d1 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -16,10 +16,20 @@
 
 package com.android.settings.fuelgauge;
 
+import android.content.Intent;
+
 /**
  * Feature Provider used in power usage
  */
 public interface PowerUsageFeatureProvider {
 
+  /**
+   * Check whether additional battery info feature is enabled.
+   */
   boolean isAdditionalBatteryInfoEnabled();
+
+  /**
+   * Gets an {@link Intent} to show additional battery info.
+   */
+  Intent getAdditionalBatteryInfoIntent();
 }
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 5f17860..be0a7cc 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -175,6 +175,11 @@
                 sa.startPreferencePanel(ManageApplications.class.getName(), args,
                         R.string.high_power_apps, null, null, 0);
                 return true;
+            case MENU_ADDITIONAL_BATTERY_INFO:
+                startActivity(FeatureFactory.getFactory(getContext())
+                        .getPowerUsageFeatureProvider(getContext())
+                        .getAdditionalBatteryInfoIntent());
+                return true;
             default:
                 return super.onOptionsItemSelected(item);
         }