diff options
author | Michael Bestas <mikeioannina@gmail.com> | 2015-04-04 07:27:29 +0300 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-02-03 14:40:44 -0800 |
commit | 698f7f24cb0f138604811dea1357b451e1d601ff (patch) | |
tree | de602922cdeabfbc99b9358334d547bd47580f52 | |
parent | 22869c183610b9c9e17d7cb820f6e7d70daeb93e (diff) | |
download | frameworks_base-698f7f24cb0f138604811dea1357b451e1d601ff.zip frameworks_base-698f7f24cb0f138604811dea1357b451e1d601ff.tar.gz frameworks_base-698f7f24cb0f138604811dea1357b451e1d601ff.tar.bz2 |
Fix pattern visibility settings (1/2)
Change-Id: Ic627953c5df854c442671a98b5da539b994da18b
3 files changed, 30 insertions, 27 deletions
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index ae22b50..be827a4 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -1097,20 +1097,20 @@ public class LockPatternUtils { setLong(Settings.Secure.LOCK_PATTERN_SIZE, size, UserHandle.USER_CURRENT); } - public void setVisibleDotsEnabled(boolean enabled) { - setBoolean(Settings.Secure.LOCK_DOTS_VISIBLE, enabled, UserHandle.USER_CURRENT); + public void setVisibleDotsEnabled(boolean enabled, int userId) { + setBoolean(Settings.Secure.LOCK_DOTS_VISIBLE, enabled, userId); } - public boolean isVisibleDotsEnabled() { - return getBoolean(Settings.Secure.LOCK_DOTS_VISIBLE, true, UserHandle.USER_CURRENT); + public boolean isVisibleDotsEnabled(int userId) { + return getBoolean(Settings.Secure.LOCK_DOTS_VISIBLE, true, userId); } - public void setShowErrorPath(boolean enabled) { - setBoolean(Settings.Secure.LOCK_SHOW_ERROR_PATH, enabled, UserHandle.USER_CURRENT); + public void setShowErrorPath(boolean enabled, int userId) { + setBoolean(Settings.Secure.LOCK_SHOW_ERROR_PATH, enabled, userId); } - public boolean isShowErrorPath() { - return getBoolean(Settings.Secure.LOCK_SHOW_ERROR_PATH, true, UserHandle.USER_CURRENT); + public boolean isShowErrorPath(int userId) { + return getBoolean(Settings.Secure.LOCK_SHOW_ERROR_PATH, true, userId); } /** diff --git a/core/java/com/android/internal/widget/LockPatternView.java b/core/java/com/android/internal/widget/LockPatternView.java index a3cd8ad..baa228f 100644 --- a/core/java/com/android/internal/widget/LockPatternView.java +++ b/core/java/com/android/internal/widget/LockPatternView.java @@ -1149,20 +1149,21 @@ public class LockPatternView extends View { currentPath.rewind(); // draw the circles - for (int i = 0; i < mPatternSize; i++) { - float centerY = getCenterYForRow(i); - for (int j = 0; j < mPatternSize; j++) { - CellState cellState = mCellStates[i][j]; - float centerX = getCenterXForColumn(j); - float translationY = cellState.translationY; - if (isHardwareAccelerated() && cellState.hwAnimating) { - DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas; - displayListCanvas.drawCircle(cellState.hwCenterX, cellState.hwCenterY, - cellState.hwRadius, cellState.hwPaint); - } else { - drawCircle(canvas, (int) centerX, (int) centerY + translationY, - cellState.radius, drawLookup[i][j], cellState.alpha); - + if (mVisibleDots) { + for (int i = 0; i < mPatternSize; i++) { + float centerY = getCenterYForRow(i); + for (int j = 0; j < mPatternSize; j++) { + CellState cellState = mCellStates[i][j]; + float centerX = getCenterXForColumn(j); + float translationY = cellState.translationY; + if (isHardwareAccelerated() && cellState.hwAnimating) { + DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas; + displayListCanvas.drawCircle(cellState.hwCenterX, cellState.hwCenterY, + cellState.hwRadius, cellState.hwPaint); + } else { + drawCircle(canvas, (int) centerX, (int) centerY + translationY, + cellState.radius, drawLookup[i][j], cellState.alpha); + } } } } @@ -1170,8 +1171,6 @@ public class LockPatternView extends View { // TODO: the path should be created and cached every time we hit-detect a cell // only the last segment of the path should be computed here // draw the path of the pattern (unless we are in stealth mode) - // draw the path of the pattern (unless the user is in progress, and - // we are in stealth mode) final boolean drawPath = ((!mInStealthMode && mPatternDisplayMode != DisplayMode.Wrong) || (mPatternDisplayMode == DisplayMode.Wrong && mShowErrorPath)); if (drawPath) { @@ -1231,7 +1230,9 @@ public class LockPatternView extends View { } private int getCurrentColor(boolean partOfPattern) { - if (!partOfPattern || mInStealthMode || mPatternInProgress) { + if (!partOfPattern || (mInStealthMode && mPatternDisplayMode != DisplayMode.Wrong) + || (mPatternDisplayMode == DisplayMode.Wrong && !mShowErrorPath) + || mPatternInProgress) { // unselected circle return mRegularColor; } else if (mPatternDisplayMode == DisplayMode.Wrong) { diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java index 9fc253b..e8dd871 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java @@ -135,8 +135,10 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit mLockPatternView.setLockPatternUtils(mLockPatternUtils); mLockPatternView.setLockPatternSize(mLockPatternUtils.getLockPatternSize()); - mLockPatternView.setVisibleDots(mLockPatternUtils.isVisibleDotsEnabled()); - mLockPatternView.setShowErrorPath(mLockPatternUtils.isShowErrorPath()); + mLockPatternView.setVisibleDots(mLockPatternUtils.isVisibleDotsEnabled( + KeyguardUpdateMonitor.getCurrentUser())); + mLockPatternView.setShowErrorPath(mLockPatternUtils.isShowErrorPath( + KeyguardUpdateMonitor.getCurrentUser())); // stealth mode will be the same for the life of this screen mLockPatternView.setInStealthMode(!mLockPatternUtils.isVisiblePatternEnabled( |