From 1f0f6317f6ba22956e71c9cf2c358c610b6d3811 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Thu, 27 Jul 2017 14:44:58 -0700 Subject: [PATCH] Use package from sipper if default is null The BatteryEntry need a background thread to update the package name and icon. However in InstalledAppDetails we don't have this thread and it is unnecessary because we already has the package name. This cl: 1. Use the mPackageName from InstalledAppDetails directly in BatteryEntry 2. Double check the defaultPackageName in AdvancedPowerUsageDetail, use packageName from sipper if default is null Bug: 64127162 Test: RunSettingsRoboTests Change-Id: I5d21afca17f177817976758c28ed86b3a10e95eb Merged-In: I5d21afca17f177817976758c28ed86b3a10e95eb --- .../settings/applications/InstalledAppDetails.java | 1 + .../settings/fuelgauge/AdvancedPowerUsageDetail.java | 6 ++++-- .../fuelgauge/AdvancedPowerUsageDetailTest.java | 12 ++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index a1b69d7f0f8..39e325507a2 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -1050,6 +1050,7 @@ public class InstalledAppDetails extends AppInfoBase } else if (preference == mBatteryPreference) { if (isBatteryStatsAvailable()) { BatteryEntry entry = new BatteryEntry(getContext(), null, mUserManager, mSipper); + entry.defaultPackageName = mPackageName; AdvancedPowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(), this, mBatteryHelper, BatteryStats.STATS_SINCE_CHARGED, entry, mBatteryPercent, null /* mAnomalies */); diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index 0b1d4a8ae9f..9a3787972a5 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -137,7 +137,9 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements args.putString(EXTRA_PACKAGE_NAME, null); } else { // populate data for normal app - args.putString(EXTRA_PACKAGE_NAME, entry.defaultPackageName); + args.putString(EXTRA_PACKAGE_NAME, entry.defaultPackageName != null + ? entry.defaultPackageName + : sipper.mPackages[0]); } args.putInt(EXTRA_UID, sipper.getUid()); @@ -205,7 +207,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements mAnomalies = getArguments().getParcelableArrayList(EXTRA_ANOMALY_LIST); if (mAnomalies == null) { getLoaderManager().initLoader(ANOMALY_LOADER, Bundle.EMPTY, this); - } else if (mAnomalies != null){ + } else if (mAnomalies != null) { mAnomalySummaryPreferenceController.updateAnomalySummaryPreference(mAnomalies); } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java index 7f2aeb68f4e..61815f1735e 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java @@ -354,6 +354,18 @@ public class AdvancedPowerUsageDetailTest { "0%"); } + @Test + public void testStartBatteryDetailPage_defaultPackageNull_choseFromBatterySipper() { + mBatteryEntry.defaultPackageName = null; + mBatteryEntry.sipper.mPackages = PACKAGE_NAME; + + AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, + mBatteryEntry, USAGE_PERCENT, null); + + assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME)).isEqualTo( + PACKAGE_NAME[0]); + } + @Test public void testInitPreference_hasCorrectSummary() { Bundle bundle = new Bundle(4);