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
This commit is contained in:
jackqdyulei
2017-07-27 14:44:58 -07:00
parent c38502ba59
commit 51872ed345
3 changed files with 17 additions and 2 deletions

View File

@@ -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 */);

View File

@@ -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);
}
}

View File

@@ -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);