summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Richard Uhler <ruhler@google.com> 2019-06-05 13:04:32 +0100
committer Richard Uhler <ruhler@google.com> 2019-06-05 13:43:26 +0100
commit1c9c5d26c517bcf9cb08cd8c314a8ed2d32d5db0 (patch)
treed1e9e863893db397411a774e530e25e95bc69988
parent02d9b9c35b5252de8e50218970b7a4fa10371583 (diff)
Don't send SessionCallbacks for DRY_RUN sessions.
Because DRY_RUN sessions shouldn't have any side effect except to tell us if verification passed or failed. Bug: 123753157 Test: atest CtsStagedInstallHostTestCases, with new test added. Change-Id: Ide42759d80063da76955ef120b21b077197c15e3
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerService.java23
1 files changed, 18 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index bd8859401856..0032e9a8ea51 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -617,7 +617,9 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
mStagingManager.createSession(session);
}
- mCallbacks.notifySessionCreated(session.sessionId, session.userId);
+ if ((session.params.installFlags & PackageManager.INSTALL_DRY_RUN) == 0) {
+ mCallbacks.notifySessionCreated(session.sessionId, session.userId);
+ }
writeSessionsAsync();
return sessionId;
}
@@ -1210,16 +1212,25 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
class InternalCallback {
public void onSessionBadgingChanged(PackageInstallerSession session) {
- mCallbacks.notifySessionBadgingChanged(session.sessionId, session.userId);
+ if ((session.params.installFlags & PackageManager.INSTALL_DRY_RUN) == 0) {
+ mCallbacks.notifySessionBadgingChanged(session.sessionId, session.userId);
+ }
+
writeSessionsAsync();
}
public void onSessionActiveChanged(PackageInstallerSession session, boolean active) {
- mCallbacks.notifySessionActiveChanged(session.sessionId, session.userId, active);
+ if ((session.params.installFlags & PackageManager.INSTALL_DRY_RUN) == 0) {
+ mCallbacks.notifySessionActiveChanged(session.sessionId, session.userId,
+ active);
+ }
}
public void onSessionProgressChanged(PackageInstallerSession session, float progress) {
- mCallbacks.notifySessionProgressChanged(session.sessionId, session.userId, progress);
+ if ((session.params.installFlags & PackageManager.INSTALL_DRY_RUN) == 0) {
+ mCallbacks.notifySessionProgressChanged(session.sessionId, session.userId,
+ progress);
+ }
}
public void onStagedSessionChanged(PackageInstallerSession session) {
@@ -1232,7 +1243,9 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
}
public void onSessionFinished(final PackageInstallerSession session, boolean success) {
- mCallbacks.notifySessionFinished(session.sessionId, session.userId, success);
+ if ((session.params.installFlags & PackageManager.INSTALL_DRY_RUN) == 0) {
+ mCallbacks.notifySessionFinished(session.sessionId, session.userId, success);
+ }
mInstallHandler.post(new Runnable() {
@Override