Merge "Fix power usage detail page is launched in wrong user"

This commit is contained in:
TreeHugger Robot
2017-08-29 22:42:47 +00:00
committed by Android (Google) Code Review
4 changed files with 66 additions and 3 deletions

View File

@@ -16,7 +16,9 @@
package com.android.settings.fuelgauge;
import android.annotation.UserIdInt;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.LoaderManager;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
@@ -152,7 +154,14 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
caller.startPreferencePanelAsUser(fragment, AdvancedPowerUsageDetail.class.getName(), args,
R.string.battery_details_title, null,
new UserHandle(UserHandle.getUserId(sipper.getUid())));
new UserHandle(getUserIdToLaunchAdvancePowerUsageDetail(sipper)));
}
private static @UserIdInt int getUserIdToLaunchAdvancePowerUsageDetail(BatterySipper bs) {
if (bs.drainType == BatterySipper.DrainType.USER) {
return ActivityManager.getCurrentUser();
}
return UserHandle.getUserId(bs.getUid());
}
public static void startBatteryDetailPage(SettingsActivity caller, PreferenceFragment fragment,

View File

@@ -428,7 +428,8 @@ public class PowerUsageSummary extends PowerUsageBase implements
}
private static boolean isSystemUid(int uid) {
return uid >= Process.SYSTEM_UID && uid < Process.FIRST_APPLICATION_UID;
final int appUid = UserHandle.getAppId(uid);
return appUid >= Process.SYSTEM_UID && appUid < Process.FIRST_APPLICATION_UID;
}
/**