Merge "Fix app battery usage list launch incorrect works app"

This commit is contained in:
TreeHugger Robot
2022-11-03 14:02:34 +00:00
committed by Android (Google) Code Review
4 changed files with 13 additions and 12 deletions

View File

@@ -22,6 +22,7 @@ import android.os.AsyncTask;
import android.os.BatteryUsageStats; import android.os.BatteryUsageStats;
import android.os.Bundle; import android.os.Bundle;
import android.os.UidBatteryConsumer; import android.os.UidBatteryConsumer;
import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.util.Log; import android.util.Log;
@@ -144,7 +145,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
} else { } else {
Log.i(TAG, "Launch : " + mPackageName + " with package name"); Log.i(TAG, "Launch : " + mPackageName + " with package name");
AdvancedPowerUsageDetail.startBatteryDetailPage(mParent.getActivity(), mParent, AdvancedPowerUsageDetail.startBatteryDetailPage(mParent.getActivity(), mParent,
mPackageName); mPackageName, UserHandle.CURRENT);
} }
return true; return true;
} }

View File

@@ -686,7 +686,8 @@ public class ManageApplications extends InstrumentedFragment
break; break;
case LIST_TYPE_BATTERY_OPTIMIZATION: case LIST_TYPE_BATTERY_OPTIMIZATION:
AdvancedPowerUsageDetail.startBatteryDetailPage( AdvancedPowerUsageDetail.startBatteryDetailPage(
getActivity(), this, mCurrentPkgName); getActivity(), this, mCurrentPkgName,
UserHandle.getUserHandleForUid(mCurrentUid));
break; break;
// TODO: Figure out if there is a way where we can spin up the profile's settings // TODO: Figure out if there is a way where we can spin up the profile's settings
// process ahead of time, to avoid a long load of data when user clicks on a managed // process ahead of time, to avoid a long load of data when user clicks on a managed

View File

@@ -219,7 +219,8 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
* Start packageName's battery detail page. * Start packageName's battery detail page.
*/ */
public static void startBatteryDetailPage( public static void startBatteryDetailPage(
Activity caller, Instrumentable instrumentable, String packageName) { Activity caller, Instrumentable instrumentable, String packageName,
UserHandle userHandle) {
final Bundle args = new Bundle(3); final Bundle args = new Bundle(3);
final PackageManager packageManager = caller.getPackageManager(); final PackageManager packageManager = caller.getPackageManager();
args.putString(EXTRA_PACKAGE_NAME, packageName); args.putString(EXTRA_PACKAGE_NAME, packageName);
@@ -235,6 +236,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
.setTitleRes(R.string.battery_details_title) .setTitleRes(R.string.battery_details_title)
.setArguments(args) .setArguments(args)
.setSourceMetricsCategory(instrumentable.getMetricsCategory()) .setSourceMetricsCategory(instrumentable.getMetricsCategory())
.setUserHandle(userHandle)
.launch(); .launch();
} }
@@ -475,16 +477,12 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
private CharSequence getAppActiveTime(Bundle bundle) { private CharSequence getAppActiveTime(Bundle bundle) {
final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME); final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME); final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
final int consumedPower = bundle.getInt(EXTRA_POWER_USAGE_AMOUNT);
final int uid = bundle.getInt(EXTRA_UID, 0);
final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null); final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null);
final long totalTimeMs = foregroundTimeMs + backgroundTimeMs; final long totalTimeMs = foregroundTimeMs + backgroundTimeMs;
final CharSequence usageTimeSummary; final CharSequence usageTimeSummary;
if (totalTimeMs == 0) { if (totalTimeMs == 0) {
usageTimeSummary = getText( usageTimeSummary = getText(R.string.battery_usage_without_time);
consumedPower > 0 ? R.string.battery_usage_without_time
: R.string.battery_not_usage);
} else if (slotTime == null) { } else if (slotTime == null) {
// Shows summary text with last full charge if slot time is null. // Shows summary text with last full charge if slot time is null.
usageTimeSummary = getAppFullChargeActiveSummary( usageTimeSummary = getAppFullChargeActiveSummary(

View File

@@ -280,8 +280,7 @@ public class AdvancedPowerUsageDetailTest {
ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class); ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
verify(mEntityHeaderController).setSummary(captor.capture()); verify(mEntityHeaderController).setSummary(captor.capture());
assertThat(captor.getValue().toString()) assertThat(captor.getValue().toString()).isEmpty();
.isEqualTo("No usage from last full charge");
} }
@Test @Test
@@ -571,7 +570,8 @@ public class AdvancedPowerUsageDetailTest {
public void startBatteryDetailPage_noBatteryUsage_hasBasicData() { public void startBatteryDetailPage_noBatteryUsage_hasBasicData() {
final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
AdvancedPowerUsageDetail.startBatteryDetailPage(mActivity, mFragment, PACKAGE_NAME[0]); AdvancedPowerUsageDetail.startBatteryDetailPage(
mActivity, mFragment, PACKAGE_NAME[0], UserHandle.OWNER);
verify(mActivity).startActivity(captor.capture()); verify(mActivity).startActivity(captor.capture());
@@ -589,7 +589,8 @@ public class AdvancedPowerUsageDetailTest {
PackageManager.NameNotFoundException { PackageManager.NameNotFoundException {
doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */); doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */);
AdvancedPowerUsageDetail.startBatteryDetailPage(mActivity, mFragment, PACKAGE_NAME[0]); AdvancedPowerUsageDetail.startBatteryDetailPage(
mActivity, mFragment, PACKAGE_NAME[0], UserHandle.OWNER);
assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID); assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID);
} }