Loading core/java/com/android/internal/widget/LockPatternUtils.java +10 −25 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.hardware.input.InputManagerGlobal; import android.os.Build; Loading Loading @@ -77,7 +76,6 @@ import java.security.SecureRandom; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; /** Loading Loading @@ -240,8 +238,6 @@ public class LockPatternUtils { private final SparseLongArray mLockoutDeadlines = new SparseLongArray(); private Boolean mHasSecureLockScreen; private HashMap<UserHandle, UserManager> mUserManagerCache = new HashMap<>(); /** * Use {@link TrustManager#isTrustUsuallyManaged(int)}. * Loading Loading @@ -363,22 +359,6 @@ public class LockPatternUtils { return mUserManager; } private UserManager getUserManager(int userId) { UserHandle userHandle = UserHandle.of(userId); if (mUserManagerCache.containsKey(userHandle)) { return mUserManagerCache.get(userHandle); } try { Context userContext = mContext.createPackageContextAsUser("system", 0, userHandle); UserManager userManager = userContext.getSystemService(UserManager.class); mUserManagerCache.put(userHandle, userManager); return userManager; } catch (PackageManager.NameNotFoundException e) { throw new RuntimeException("Failed to create context for user " + userHandle, e); } } private TrustManager getTrustManager() { TrustManager trust = (TrustManager) mContext.getSystemService(Context.TRUST_SERVICE); if (trust == null) { Loading Loading @@ -966,7 +946,7 @@ public class LockPatternUtils { */ public void setSeparateProfileChallengeEnabled(int userHandle, boolean enabled, LockscreenCredential profilePassword) { if (!isCredentialSharableWithParent(userHandle)) { if (!isCredentialShareableWithParent(userHandle)) { return; } try { Loading @@ -985,7 +965,7 @@ public class LockPatternUtils { * credential is not shareable with its parent, or a non-profile user. */ public boolean isSeparateProfileChallengeEnabled(int userHandle) { return isCredentialSharableWithParent(userHandle) && hasSeparateChallenge(userHandle); return isCredentialShareableWithParent(userHandle) && hasSeparateChallenge(userHandle); } /** Loading @@ -995,7 +975,7 @@ public class LockPatternUtils { * credential is not shareable with its parent, or a non-profile user. */ public boolean isProfileWithUnifiedChallenge(int userHandle) { return isCredentialSharableWithParent(userHandle) && !hasSeparateChallenge(userHandle); return isCredentialShareableWithParent(userHandle) && !hasSeparateChallenge(userHandle); } /** Loading @@ -1020,8 +1000,13 @@ public class LockPatternUtils { return info != null && info.isManagedProfile(); } private boolean isCredentialSharableWithParent(int userHandle) { return getUserManager(userHandle).isCredentialSharableWithParent(); private boolean isCredentialShareableWithParent(int userHandle) { try { return getUserManager().getUserProperties(UserHandle.of(userHandle)) .isCredentialShareableWithParent(); } catch (IllegalArgumentException e) { return false; } } /** Loading Loading
core/java/com/android/internal/widget/LockPatternUtils.java +10 −25 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.hardware.input.InputManagerGlobal; import android.os.Build; Loading Loading @@ -77,7 +76,6 @@ import java.security.SecureRandom; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; /** Loading Loading @@ -240,8 +238,6 @@ public class LockPatternUtils { private final SparseLongArray mLockoutDeadlines = new SparseLongArray(); private Boolean mHasSecureLockScreen; private HashMap<UserHandle, UserManager> mUserManagerCache = new HashMap<>(); /** * Use {@link TrustManager#isTrustUsuallyManaged(int)}. * Loading Loading @@ -363,22 +359,6 @@ public class LockPatternUtils { return mUserManager; } private UserManager getUserManager(int userId) { UserHandle userHandle = UserHandle.of(userId); if (mUserManagerCache.containsKey(userHandle)) { return mUserManagerCache.get(userHandle); } try { Context userContext = mContext.createPackageContextAsUser("system", 0, userHandle); UserManager userManager = userContext.getSystemService(UserManager.class); mUserManagerCache.put(userHandle, userManager); return userManager; } catch (PackageManager.NameNotFoundException e) { throw new RuntimeException("Failed to create context for user " + userHandle, e); } } private TrustManager getTrustManager() { TrustManager trust = (TrustManager) mContext.getSystemService(Context.TRUST_SERVICE); if (trust == null) { Loading Loading @@ -966,7 +946,7 @@ public class LockPatternUtils { */ public void setSeparateProfileChallengeEnabled(int userHandle, boolean enabled, LockscreenCredential profilePassword) { if (!isCredentialSharableWithParent(userHandle)) { if (!isCredentialShareableWithParent(userHandle)) { return; } try { Loading @@ -985,7 +965,7 @@ public class LockPatternUtils { * credential is not shareable with its parent, or a non-profile user. */ public boolean isSeparateProfileChallengeEnabled(int userHandle) { return isCredentialSharableWithParent(userHandle) && hasSeparateChallenge(userHandle); return isCredentialShareableWithParent(userHandle) && hasSeparateChallenge(userHandle); } /** Loading @@ -995,7 +975,7 @@ public class LockPatternUtils { * credential is not shareable with its parent, or a non-profile user. */ public boolean isProfileWithUnifiedChallenge(int userHandle) { return isCredentialSharableWithParent(userHandle) && !hasSeparateChallenge(userHandle); return isCredentialShareableWithParent(userHandle) && !hasSeparateChallenge(userHandle); } /** Loading @@ -1020,8 +1000,13 @@ public class LockPatternUtils { return info != null && info.isManagedProfile(); } private boolean isCredentialSharableWithParent(int userHandle) { return getUserManager(userHandle).isCredentialSharableWithParent(); private boolean isCredentialShareableWithParent(int userHandle) { try { return getUserManager().getUserProperties(UserHandle.of(userHandle)) .isCredentialShareableWithParent(); } catch (IllegalArgumentException e) { return false; } } /** Loading