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;