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

Commit 598ee3f6 authored by Fyodor Kupolov's avatar Fyodor Kupolov Committed by Android (Google) Code Review
Browse files

Merge "Introduced short-term lock for UMS internal state"

parents 68dfdb65 82402753
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ public abstract class UserManagerInternal {
     *
     * Must be called while taking the {@link #getUserRestrictionsLock()} lock.
     */
    public abstract void updateEffectiveUserRestrictionsRL(int userId);
    public abstract void updateEffectiveUserRestrictionsLR(int userId);

    /**
     * Called by {@link com.android.server.devicepolicy.DevicePolicyManagerService} to get
@@ -44,7 +44,7 @@ public abstract class UserManagerInternal {
     *
     * Must be called while taking the {@link #getUserRestrictionsLock()} lock.
     */
    public abstract void updateEffectiveUserRestrictionsForAllUsersRL();
    public abstract void updateEffectiveUserRestrictionsForAllUsersLR();

    /**
     * Returns the "base" user restrictions.
+1 −1
Original line number Diff line number Diff line
@@ -16553,7 +16553,7 @@ public class PackageManagerService extends IPackageManager.Stub {
     */
    private void removeUnusedPackagesLILPw(UserManagerService userManager, final int userHandle) {
        final boolean DEBUG_CLEAN_APKS = false;
        int [] users = userManager.getUserIdsLPr();
        int [] users = userManager.getUserIds();
        Iterator<PackageSetting> psit = mSettings.mPackages.values().iterator();
        while (psit.hasNext()) {
            PackageSetting ps = psit.next();
+304 −245

File changed.

Preview size limit exceeded, changes collapsed.

+7 −8
Original line number Diff line number Diff line
@@ -1064,8 +1064,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        if (removed) {
            synchronized (mUserManagerInternal.getUserRestrictionsLock()) {
                synchronized (DevicePolicyManagerService.this) {
                    mUserManagerInternal.updateEffectiveUserRestrictionsRL(
                            userHandle);
                    mUserManagerInternal.updateEffectiveUserRestrictionsLR(userHandle);
                }
            }
        }
@@ -1718,7 +1717,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                            }
                            synchronized (mUserManagerInternal.getUserRestrictionsLock()) {
                                synchronized (DevicePolicyManagerService.this) {
                                    mUserManagerInternal.updateEffectiveUserRestrictionsRL(
                                    mUserManagerInternal.updateEffectiveUserRestrictionsLR(
                                            userHandle);
                                }
                            }
@@ -4337,9 +4336,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        synchronized (mUserManagerInternal.getUserRestrictionsLock()) {
            synchronized (this) {
                if (isDeviceOwner(who)) {
                    mUserManagerInternal.updateEffectiveUserRestrictionsForAllUsersRL();
                    mUserManagerInternal.updateEffectiveUserRestrictionsForAllUsersLR();
                } else {
                    mUserManagerInternal.updateEffectiveUserRestrictionsRL(userHandle);
                    mUserManagerInternal.updateEffectiveUserRestrictionsLR(userHandle);
                }
            }
        }
@@ -4651,7 +4650,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                    0  /* flagValues */, userHandle.getIdentifier());
            // TODO This will not revert audio mute restrictions if they were set.  b/24981972
            synchronized (mUserManagerInternal.getUserRestrictionsLock()) {
                mUserManagerInternal.updateEffectiveUserRestrictionsRL(userHandle.getIdentifier());
                mUserManagerInternal.updateEffectiveUserRestrictionsLR(userHandle.getIdentifier());
            }
        } catch (RemoteException re) {
        } finally {
@@ -5628,9 +5627,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {

                    // Tell UserManager the new value.
                    if (isDeviceOwner) {
                        mUserManagerInternal.updateEffectiveUserRestrictionsForAllUsersRL();
                        mUserManagerInternal.updateEffectiveUserRestrictionsForAllUsersLR();
                    } else {
                        mUserManagerInternal.updateEffectiveUserRestrictionsRL(userHandle);
                        mUserManagerInternal.updateEffectiveUserRestrictionsLR(userHandle);
                    }
                } finally {
                    mInjector.binderRestoreCallingIdentity(id);
+2 −2
Original line number Diff line number Diff line
@@ -46,11 +46,11 @@ public class UserManagerServiceTest extends AndroidTestCase {
    public void testWriteReadApplicationRestrictions() throws IOException {
        AtomicFile atomicFile = new AtomicFile(restrictionsFile);
        Bundle bundle = createBundle();
        UserManagerService.writeApplicationRestrictionsLocked(bundle, atomicFile);
        UserManagerService.writeApplicationRestrictionsLP(bundle, atomicFile);
        assertTrue(atomicFile.getBaseFile().exists());
        String s = FileUtils.readTextFile(restrictionsFile, 10000, "");
        System.out.println("restrictionsFile: " + s);
        bundle = UserManagerService.readApplicationRestrictionsLocked(atomicFile);
        bundle = UserManagerService.readApplicationRestrictionsLP(atomicFile);
        System.out.println("readApplicationRestrictionsLocked bundle: " + bundle);
        assertBundle(bundle);
    }