Put finalized child staged session at correct place in dumpsys

Child staged sessions do not get marked as applied or failed
individually. We only mark the parent session as such. As such, child
staged sessions were being printed as active sessions in dumpsys.

Bug: 162518337
Test: used `adb install-multi-package` to create multi package session
      and manually checked dumpsys that child session gets printed
      under correct section.
Change-Id: I88d41085a49bba6b29502a501af2fa5ab1a9dbae
This commit is contained in:
Mohammad Samiul Islam
2020-07-31 11:29:08 +01:00
parent 8d7614fb52
commit a1cf2319a2

View File

@@ -1284,10 +1284,16 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
int N = mSessions.size();
for (int i = 0; i < N; i++) {
final PackageInstallerSession session = mSessions.valueAt(i);
if (session.isStagedAndInTerminalState()) {
// Do not print finalized staged session as active install sessions
final PackageInstallerSession rootSession = session.hasParentSessionId()
? getSession(session.getParentSessionId())
: session;
if (rootSession.isStagedAndInTerminalState()) {
finalizedSessions.add(session);
continue;
}
session.dump(pw);
pw.println();
}