diff options
| author | 2024-10-31 11:22:15 -0700 | |
|---|---|---|
| committer | 2024-11-02 11:17:01 -0700 | |
| commit | 1aa75bfa760e22dbe3603587e797e780a66341cd (patch) | |
| tree | 55127d468a9075ec94d4673c158842581b37babe | |
| parent | eb85d520918aa8539ac008f69f2582b874a358a1 (diff) | |
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
Change-Id: I9d3c9ec294242c793648dc78bea158789df8ed21
| -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 |