Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d889cb50 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Gerrit Code Review
Browse files

Merge changes I69cdbb16,I6975e0b7

* changes:
  notify netd about uid internet permission changes when package replaced
  Backport PackageListObserver#onPackageChanged.
parents 66089876 71df3da8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -51,6 +51,13 @@ public class PackageList implements PackageListObserver, AutoCloseable {
        }
    }

    @Override
    public void onPackageChanged(String packageName, int uid) {
        if (mWrappedObserver != null) {
            mWrappedObserver.onPackageChanged(packageName, uid);
        }
    }

    @Override
    public void onPackageRemoved(String packageName, int uid) {
        if (mWrappedObserver != null) {
+2 −0
Original line number Diff line number Diff line
@@ -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);
    }
+5 −0
Original line number Diff line number Diff line
@@ -129,6 +129,11 @@ public class PermissionMonitor {
            sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
        }

        @Override
        public void onPackageChanged(@NonNull String packageName, int uid) {
            sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
        }

        @Override
        public void onPackageRemoved(String packageName, int uid) {
            sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
+19 −0
Original line number Diff line number Diff line
@@ -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);
}
+5 −0
Original line number Diff line number Diff line
@@ -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) {
            }