diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index ece3e9d5e503b..74b1fddf9defd 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -1093,6 +1093,25 @@ public class LockPatternUtils { */ public void setVisiblePatternEnabled(boolean enabled) { setBoolean(Settings.Secure.LOCK_PATTERN_VISIBLE, enabled); + + // Update for crypto if owner + int userId = getCurrentOrCallingUserId(); + if (userId != UserHandle.USER_OWNER) { + return; + } + + IBinder service = ServiceManager.getService("mount"); + if (service == null) { + Log.e(TAG, "Could not find the mount service to update the user info"); + return; + } + + IMountService mountService = IMountService.Stub.asInterface(service); + try { + mountService.setField("PatternVisible", enabled ? "1" : "0"); + } catch (RemoteException e) { + Log.e(TAG, "Error changing pattern visible state", e); + } } /**