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:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user