From 51872ed3456582533585d229d83d4df3ff4c0cb7 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 This cl is cherry picked from oc-dr to fix the test breakage. Bug: 64127162 Test: RunSettingsRoboTests Change-Id: 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 3bf7471bdaf..e8a4d9d4e09 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -1058,6 +1058,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 106f7fada11..471710983e2 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()); @@ -212,7 +214,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 8feb1ff1072..c7eebc84e6c 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java @@ -368,6 +368,18 @@ public class AdvancedPowerUsageDetailTest { "0%"); } + @Test + public void testStartBatteryDetailPage_defaultPackageNull_chooseFromBatterySipper() { + mBatteryEntry.defaultPackageName = null; + mBatteryEntry.sipper.mPackages = PACKAGE_NAME; + + AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, 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);