diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index bf45e422d9f..8df986f8cbb 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1436,4 +1436,10 @@
- @string/enhanced_4g_lte_mode_summary_4g_calling
+
+
+
+ - "com.google.android.googlequicksearchbox"
+
+
diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
index 70b964c6cf0..4667e16e6b7 100644
--- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
@@ -338,7 +338,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro
void setUsageSummary(Preference preference, BatterySipper sipper) {
// Only show summary when usage time is longer than one minute
final long usageTimeMs = sipper.usageTimeMs;
- if (usageTimeMs >= DateUtils.MINUTE_IN_MILLIS) {
+ if (shouldShowSummary(sipper) && usageTimeMs >= DateUtils.MINUTE_IN_MILLIS) {
final CharSequence timeSequence =
StringUtil.formatElapsedTime(mContext, usageTimeMs, false);
preference.setSummary(
@@ -390,6 +390,19 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro
}
}
+ private boolean shouldShowSummary(BatterySipper sipper) {
+ final CharSequence[] whitelistPackages = mContext.getResources()
+ .getTextArray(R.array.whitelist_hide_summary_in_battery_usage);
+ final String target = sipper.packageWithHighestDrain;
+
+ for (CharSequence packageName: whitelistPackages) {
+ if (TextUtils.equals(target, packageName)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
private static boolean isSharedGid(int uid) {
return UserHandle.getAppIdFromSharedAppGid(uid) > 0;
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
index f8bcf016459..28655f32946 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
@@ -25,7 +25,6 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.content.pm.ModuleInfo;
import android.content.pm.PackageManager;
import android.os.BatteryStats;
import android.os.UserManager;
@@ -40,7 +39,6 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settingslib.applications.ApplicationsState;
import org.junit.Before;
import org.junit.Test;
@@ -49,10 +47,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.ArrayList;
-import java.util.List;
@RunWith(RobolectricTestRunner.class)
public class BatteryAppListPreferenceControllerTest {
@@ -161,6 +155,19 @@ public class BatteryAppListPreferenceControllerTest {
assertThat(mPreference.getSummary().toString()).isEqualTo("Used for 2 min");
}
+ @Test
+ public void testSetUsageSummary_timeMoreThanOneMinute_GoogleApp_shouldNotSetScreenSummary() {
+ mNormalBatterySipper.usageTimeMs = 2 * DateUtils.MINUTE_IN_MILLIS;
+ mNormalBatterySipper.packageWithHighestDrain = "com.google.android.googlequicksearchbox";
+ doReturn(mContext.getText(R.string.battery_used_for)).when(mFragment).getText(
+ R.string.battery_used_for);
+ doReturn(mContext).when(mFragment).getContext();
+
+ mPreferenceController.setUsageSummary(mPreference, mNormalBatterySipper);
+
+ assertThat(mPreference.getSummary()).isNull();
+ }
+
@Test
public void testSetUsageSummary_timeMoreThanOneMinute_hiddenApp_setUsedSummary() {
mNormalBatterySipper.usageTimeMs = 2 * DateUtils.MINUTE_IN_MILLIS;