Backport PackageListObserver#onPackageChanged.

Added internally in Ic48e3c728387ecf02f89d517ba1fe785ab9c75fd,
of which this is a partial cherry-pick.

Bug: 137864893
Test: builds, boots
Change-Id: I6975e0b70ded6047e1ac8013a82bc35ff150f03b
Merged-In: Ic48e3c728387ecf02f89d517ba1fe785ab9c75fd
This commit is contained in:
Lorenzo Colitti
2019-08-23 10:46:43 +09:00
parent 9e4df4985a
commit 7b0411782a
3 changed files with 26 additions and 0 deletions

View File

@@ -63,6 +63,8 @@ public abstract class PackageManagerInternal {
public interface PackageListObserver {
/** A package was added to the system. */
void onPackageAdded(@NonNull String packageName, int uid);
/** A package was changed - either installed for a specific user or updated. */
default void onPackageChanged(@NonNull String packageName, int uid) {}
/** A package was removed from the system. */
void onPackageRemoved(@NonNull String packageName, int uid);
}

View File

@@ -2155,6 +2155,8 @@ public class PackageManagerService extends IPackageManager.Stub
if (allNewUsers && !update) {
notifyPackageAdded(packageName, res.uid);
} else {
notifyPackageChanged(packageName, res.uid);
}
// Log current value of "unknown sources" setting
@@ -13761,6 +13763,22 @@ public class PackageManagerService extends IPackageManager.Stub
}
}
@Override
public void notifyPackageChanged(String packageName, int uid) {
final PackageListObserver[] observers;
synchronized (mPackages) {
if (mPackageListObservers.size() == 0) {
return;
}
final PackageListObserver[] observerArray =
new PackageListObserver[mPackageListObservers.size()];
observers = mPackageListObservers.toArray(observerArray);
}
for (int i = observers.length - 1; i >= 0; --i) {
observers[i].onPackageChanged(packageName, uid);
}
}
@Override
public void notifyPackageRemoved(String packageName, int uid) {
final PackageListObserver[] observers;
@@ -24987,5 +25005,6 @@ interface PackageSender {
void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
boolean includeStopped, int appId, int[] userIds, int[] instantUserIds);
void notifyPackageAdded(String packageName, int uid);
void notifyPackageChanged(String packageName, int uid);
void notifyPackageRemoved(String packageName, int uid);
}

View File

@@ -59,6 +59,11 @@ public class PackageManagerServiceTest {
public void notifyPackageAdded(String packageName, int uid) {
}
@Override
public void notifyPackageChanged(String packageName, int uid) {
}
@Override
public void notifyPackageRemoved(String packageName, int uid) {
}