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

Commit 0826b7f5 authored by Evan Chen's avatar Evan Chen Committed by Automerger Merge Worker
Browse files

Merge "Make sure to disassociate all the packages with shared UID" into...

Merge "Make sure to disassociate all the packages with shared UID" into tm-qpr-dev am: ea1c3734 am: b6bacefd

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/35158053



Change-Id: I2dcdc2288d6a57dd54277cbf0bd97575e6f018c0
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 655f215e b6bacefd
Loading
Loading
Loading
Loading
+17 −11
Original line number Diff line number Diff line
@@ -167,6 +167,7 @@ public class CompanionDeviceManagerService extends SystemService {
    private final IAppOpsService mAppOpsManager;
    private final PowerWhitelistManager mPowerWhitelistManager;
    private final UserManager mUserManager;
    private final PackageManager mPackageManager;
    final PackageManagerInternal mPackageManagerInternal;

    /**
@@ -220,6 +221,7 @@ public class CompanionDeviceManagerService extends SystemService {
        mAtmInternal = LocalServices.getService(ActivityTaskManagerInternal.class);
        mAmInternal = LocalServices.getService(ActivityManagerInternal.class);
        mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class);
        mPackageManager = context.getPackageManager();
        mUserManager = context.getSystemService(UserManager.class);

        mUserPersistenceHandler = new PersistUserStateHandler();
@@ -1560,8 +1562,10 @@ public class CompanionDeviceManagerService extends SystemService {
                return;
            }

            final String packageName = getPackageNameByUid(uid);
            if (packageName == null) {
            // A UID can be shared by multiple packages if android:sharedUserId is used.
            // We must get all packages for the UID to ensure we find the correct one.
            final String[] packageNames = mPackageManager.getPackagesForUid(uid);
            if (packageNames == null || packageNames.length == 0) {
                // Not interested in this uid.
                return;
            }
@@ -1570,6 +1574,7 @@ public class CompanionDeviceManagerService extends SystemService {

            boolean needToPersistStateForUser = false;

            for (String packageName : packageNames) {
                for (AssociationInfo association :
                        getPendingRoleHolderRemovalAssociationsForUser(userId)) {
                    if (!packageName.equals(association.getPackageName())) continue;
@@ -1582,6 +1587,7 @@ public class CompanionDeviceManagerService extends SystemService {
                    removeFromPendingRoleHolderRemoval(association);
                    needToPersistStateForUser = true;
                }
            }

            if (needToPersistStateForUser) {
                mUserPersistenceHandler.postPersistUserState(userId);