Fix app battery usage list launch incorrect works app
- App usage page only use package name to launch the page, it can not identify the different userId between normal app and work profile app, add extra userId info into launch args - Remove no battery usage state/string if usage time is empty Bug: 251471047 Test: make SettingsRoboTests Change-Id: Id06ebb0f0fcd863e423acd7839f89bc0ae2444c1 Merged-In: Id06ebb0f0fcd863e423acd7839f89bc0ae2444c1
This commit is contained in:
@@ -153,7 +153,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;
|
||||||
}
|
}
|
||||||
|
@@ -659,7 +659,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
|
||||||
|
@@ -227,7 +227,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);
|
||||||
@@ -243,6 +244,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();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -531,7 +533,6 @@ 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 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;
|
||||||
@@ -543,9 +544,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (totalTimeMs == 0) {
|
if (totalTimeMs == 0) {
|
||||||
usageTimeSummary = getText(
|
usageTimeSummary = getText(R.string.battery_usage_without_time);
|
||||||
isChartGraphEnabled && 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(
|
||||||
|
@@ -434,8 +434,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
|
||||||
@@ -742,7 +741,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());
|
||||||
|
|
||||||
@@ -760,7 +760,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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user