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;