Merge "Conditionally block battery percantage from search" into pi-dev
am: ea97a66383

Change-Id: If61f6e81aebd70c88e8fc75a525f53bed3ddbac1
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index e4f7a72..eec2008 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -472,6 +472,12 @@
                 @Override
                 public List<String> getNonIndexableKeys(Context context) {
                     List<String> niks = super.getNonIndexableKeys(context);
+
+                    final BatteryPercentagePreferenceController controller =
+                            new BatteryPercentagePreferenceController(context);
+                    if (!controller.isAvailable()) {
+                        niks.add(controller.getPreferenceKey());
+                    }
                     niks.add(KEY_BATTERY_SAVER_SUMMARY);
                     return niks;
                 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 07341a1..8e7edf3 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -35,6 +35,7 @@
 import android.app.LoaderManager;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.util.SparseArray;
 import android.view.Menu;
@@ -49,6 +50,7 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.applications.LayoutPreference;
 import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.display.BatteryPercentagePreferenceController;
 import com.android.settings.fuelgauge.anomaly.Anomaly;
 import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
 import com.android.settings.testutils.FakeFeatureFactory;
@@ -390,6 +392,34 @@
                 .isEqualTo("3% - Phone will shut down soon");
     }
 
+    @Test
+    public void percentageSettingAvailable_shouldNotBeHiddenInSearch() {
+        final Resources resources = spy(mRealContext.getResources());
+        doReturn(true).when(resources).getBoolean(anyInt());
+        doReturn(resources).when(mRealContext).getResources();
+        final String prefKey = new BatteryPercentagePreferenceController(mRealContext)
+                .getPreferenceKey();
+
+        final List<String> nonIndexableKeys =
+                PowerUsageSummary.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mRealContext);
+
+        assertThat(nonIndexableKeys).doesNotContain(prefKey);
+    }
+
+    @Test
+    public void percentageSettingNotAvailable_shouldBeHiddenInSearch() {
+        final Resources resources = spy(mRealContext.getResources());
+        doReturn(false).when(resources).getBoolean(anyInt());
+        doReturn(resources).when(mRealContext).getResources();
+        final String prefKey = new BatteryPercentagePreferenceController(mRealContext)
+                .getPreferenceKey();
+
+        final List<String> nonIndexableKeys =
+                PowerUsageSummary.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mRealContext);
+
+        assertThat(nonIndexableKeys).contains(prefKey);
+    }
+
     public static class TestFragment extends PowerUsageSummary {
         private Context mContext;