OSDN Git Service

Use package from sipper if default is null
authorjackqdyulei <jackqdyulei@google.com>
Thu, 27 Jul 2017 21:44:58 +0000 (14:44 -0700)
committerjackqdyulei <jackqdyulei@google.com>
Mon, 31 Jul 2017 19:33:10 +0000 (12:33 -0700)
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

src/com/android/settings/applications/InstalledAppDetails.java
src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java

index a1b69d7..39e3255 100755 (executable)
@@ -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 */);
index 0b1d4a8..9a37879 100644 (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());
@@ -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);
         }
     }
index 7f2aeb6..61815f1 100644 (file)
@@ -355,6 +355,18 @@ public class AdvancedPowerUsageDetailTest {
     }
 
     @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);
         bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, BACKGROUND_TIME_MS);