OSDN Git Service

Add uid data even though on battery stats
authorjackqdyulei <jackqdyulei@google.com>
Wed, 26 Jul 2017 20:14:46 +0000 (13:14 -0700)
committerjackqdyulei <jackqdyulei@google.com>
Mon, 7 Aug 2017 21:38:21 +0000 (14:38 -0700)
Advacned battery page doesn't show background toggle because it
doesn't get uid from battery stats. This cl make it get uid by
package name even though without battery stats.

Bug: 64049162
Test: RunSettingsRoboTests
Change-Id: Ie0f67ce9d080c02763a8382740e0640a66ce6053

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

index 4717109..3b83fa5 100644 (file)
@@ -31,6 +31,7 @@ import android.support.annotation.VisibleForTesting;
 import android.support.v14.preference.PreferenceFragment;
 import android.support.v7.preference.Preference;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.View;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -163,9 +164,15 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
 
     public static void startBatteryDetailPage(SettingsActivity caller, PreferenceFragment fragment,
             String packageName) {
-        final Bundle args = new Bundle(2);
+        final Bundle args = new Bundle(3);
+        final PackageManager packageManager = caller.getPackageManager();
         args.putString(EXTRA_PACKAGE_NAME, packageName);
         args.putString(EXTRA_POWER_USAGE_PERCENT, Utils.formatPercentage(0));
+        try {
+            args.putInt(EXTRA_UID, packageManager.getPackageUid(packageName, 0 /* no flag */));
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(TAG, "Cannot find package: " + packageName, e);
+        }
 
         caller.startPreferencePanelAsUser(fragment, AdvancedPowerUsageDetail.class.getName(), args,
                 R.string.battery_details_title, null, new UserHandle(UserHandle.myUserId()));
index c7eebc8..54d043c 100644 (file)
@@ -369,6 +369,16 @@ public class AdvancedPowerUsageDetailTest {
     }
 
     @Test
+    public void testStartBatteryDetailPage_batteryEntryNotExisted_extractUidFromPackageName() throws
+            PackageManager.NameNotFoundException{
+        doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */);
+
+        AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, PACKAGE_NAME[0]);
+
+        assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID);
+    }
+
+    @Test
     public void testStartBatteryDetailPage_defaultPackageNull_chooseFromBatterySipper() {
         mBatteryEntry.defaultPackageName = null;
         mBatteryEntry.sipper.mPackages = PACKAGE_NAME;