diff options
| author | 2024-11-04 16:16:48 +0000 | |
|---|---|---|
| committer | 2024-11-04 16:16:48 +0000 | |
| commit | 892faa99a091455025a950d6149346b527f02ea0 (patch) | |
| tree | 5a72bdbff82c5c92b6c23eb95b401e2a37331e38 | |
| parent | 6efcd189acfa0c1aa7035a4fd8c9e8acb63c06d8 (diff) | |
| parent | 1aa75bfa760e22dbe3603587e797e780a66341cd (diff) | |
Merge "Add check to only notify callbacks for uninstalled packages if they're MBA Bug: 375000910 Flag: NONE (API has no consumers yet) Test: Unit tests" into main
| -rw-r--r-- | services/core/java/com/android/server/pm/BackgroundInstallControlService.java | 4 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/BackgroundInstallControlService.java b/services/core/java/com/android/server/pm/BackgroundInstallControlService.java index 20cca969dade..af2bb17fd0e6 100644 --- a/services/core/java/com/android/server/pm/BackgroundInstallControlService.java +++ b/services/core/java/com/android/server/pm/BackgroundInstallControlService.java @@ -404,9 +404,11 @@ public class BackgroundInstallControlService extends SystemService { void handlePackageRemove(String packageName, int userId) { initBackgroundInstalledPackages(); + if (mBackgroundInstalledPackages.contains(userId, packageName)) { + mCallbackHelper.notifyAllCallbacks(userId, packageName, INSTALL_EVENT_TYPE_UNINSTALL); + } mBackgroundInstalledPackages.remove(userId, packageName); writeBackgroundInstalledPackagesToDisk(); - mCallbackHelper.notifyAllCallbacks(userId, packageName, INSTALL_EVENT_TYPE_UNINSTALL); } void handleUsageEvent(UsageEvents.Event event, int userId) { diff --git a/services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java index 4a43c2e6c180..9d7b6a171bd4 100644 --- a/services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java @@ -977,11 +977,19 @@ public final class BackgroundInstallControlServiceTest { assertEquals(USER_ID_1, UserHandle.getUserId(uid)); mPackageListObserver.onPackageRemoved(PACKAGE_NAME_1, uid); + // Test that notifyAllCallbacks doesn't trigger for non-background-installed package + mPackageListObserver.onPackageRemoved(PACKAGE_NAME_3, uid); mTestLooper.dispatchAll(); assertEquals(1, packages.size()); assertFalse(packages.contains(USER_ID_1, PACKAGE_NAME_1)); assertTrue(packages.contains(USER_ID_2, PACKAGE_NAME_2)); + + verify(mCallbackHelper) + .notifyAllCallbacks( + USER_ID_1, + PACKAGE_NAME_1, + BackgroundInstallControlService.INSTALL_EVENT_TYPE_UNINSTALL); } @Test |