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 {
|
public interface PackageListObserver {
|
||||||
/** A package was added to the system. */
|
/** A package was added to the system. */
|
||||||
void onPackageAdded(@NonNull String packageName, int uid);
|
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. */
|
/** A package was removed from the system. */
|
||||||
void onPackageRemoved(@NonNull String packageName, int uid);
|
void onPackageRemoved(@NonNull String packageName, int uid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2155,6 +2155,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
|
|
||||||
if (allNewUsers && !update) {
|
if (allNewUsers && !update) {
|
||||||
notifyPackageAdded(packageName, res.uid);
|
notifyPackageAdded(packageName, res.uid);
|
||||||
|
} else {
|
||||||
|
notifyPackageChanged(packageName, res.uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log current value of "unknown sources" setting
|
// 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
|
@Override
|
||||||
public void notifyPackageRemoved(String packageName, int uid) {
|
public void notifyPackageRemoved(String packageName, int uid) {
|
||||||
final PackageListObserver[] observers;
|
final PackageListObserver[] observers;
|
||||||
@@ -24987,5 +25005,6 @@ interface PackageSender {
|
|||||||
void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
|
void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
|
||||||
boolean includeStopped, int appId, int[] userIds, int[] instantUserIds);
|
boolean includeStopped, int appId, int[] userIds, int[] instantUserIds);
|
||||||
void notifyPackageAdded(String packageName, int uid);
|
void notifyPackageAdded(String packageName, int uid);
|
||||||
|
void notifyPackageChanged(String packageName, int uid);
|
||||||
void notifyPackageRemoved(String packageName, int uid);
|
void notifyPackageRemoved(String packageName, int uid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,11 @@ public class PackageManagerServiceTest {
|
|||||||
public void notifyPackageAdded(String packageName, int uid) {
|
public void notifyPackageAdded(String packageName, int uid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void notifyPackageChanged(String packageName, int uid) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifyPackageRemoved(String packageName, int uid) {
|
public void notifyPackageRemoved(String packageName, int uid) {
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user