Loading core/java/com/android/internal/widget/DragLock.java +59 −14 Original line number Diff line number Diff line Loading @@ -93,6 +93,9 @@ public class DragLock extends View implements LockPattern { private State mState = State.Record; private boolean mInputEnabled = true; private boolean mInStealthMode = false; private boolean mVisibleDots = true; private boolean mShowErrorPath = true; private boolean mTactileFeedbackEnabled = true; private float mDiameterFactor = 0.5f; Loading Loading @@ -207,6 +210,22 @@ public class DragLock extends View implements LockPattern { mInStealthMode = inStealthMode; } public void setVisibleDots(boolean visibleDots) { mVisibleDots = visibleDots; } public boolean isVisibleDots() { return mVisibleDots; } public void setShowErrorPath(boolean showErrorPath) { mShowErrorPath = showErrorPath; } public boolean isShowErrorPath() { return mShowErrorPath; } /** * Set whether the view will use tactile feedback. If true, there will be * tactile feedback as the user enters the pattern. Loading Loading @@ -707,7 +726,7 @@ public class DragLock extends View implements LockPattern { // only the last segment of the path should be computed here // draw the path of the pattern (unless the user is in progress, and // we are in stealth mode) final boolean drawPath = (!mInStealthMode || mState == State.Incorrect); final boolean drawPath = ((!mInStealthMode && mState != State.Incorrect) || (mState == State.Incorrect && mShowErrorPath)); if (drawPath) { boolean anyCircles = false; for (int i = 0; i < count; i++) { Loading Loading @@ -742,6 +761,7 @@ public class DragLock extends View implements LockPattern { final int paddingTop = mPaddingTop; final int paddingLeft = mPaddingLeft; if (mVisibleDots) { for (int i = 0; i < 3; i++) { float topY = paddingTop + i * squareHeight; //float centerY = mPaddingTop + i * mSquareHeight + (mSquareHeight / 2); Loading @@ -750,6 +770,7 @@ public class DragLock extends View implements LockPattern { drawCircle(canvas, (int) leftX, (int) topY, drawLookup[i][j]); } } } // draw the arrows associated with the path (unless the user is in progress, and // we are in stealth mode) Loading Loading @@ -828,8 +849,14 @@ public class DragLock extends View implements LockPattern { innerCircle = mBitmapBtnTouched; } else if (mState == State.Incorrect) { // the pattern is wrong if (mShowErrorPath) { outerCircle = mBitmapCircleRed; innerCircle = mBitmapBtnDefault; } else { outerCircle = mBitmapCircleDefault; innerCircle = mBitmapBtnDefault; } } else if (mState == State.Correct || mState == State.Replay) { // the pattern is correct Loading Loading @@ -858,7 +885,7 @@ public class DragLock extends View implements LockPattern { return new SavedState(superState, LockPatternUtils.patternToString(mPattern), mState.ordinal(), mInputEnabled, mInStealthMode, mTactileFeedbackEnabled); mInputEnabled, mInStealthMode, mTactileFeedbackEnabled, mVisibleDots, mShowErrorPath); } @Override Loading @@ -872,6 +899,8 @@ public class DragLock extends View implements LockPattern { mInputEnabled = ss.isInputEnabled(); mInStealthMode = ss.isInStealthMode(); mTactileFeedbackEnabled = ss.isTactileFeedbackEnabled(); mVisibleDots = ss.isVisibleDots(); mShowErrorPath = ss.isShowErrorPath(); } /** Loading @@ -884,18 +913,22 @@ public class DragLock extends View implements LockPattern { private final boolean mInputEnabled; private final boolean mInStealthMode; private final boolean mTactileFeedbackEnabled; private final boolean mVisibleDots; private final boolean mShowErrorPath; /** * Constructor called from {@link LockPatternView#onSaveInstanceState()} */ private SavedState(Parcelable superState, String serializedPattern, int displayMode, boolean inputEnabled, boolean inStealthMode, boolean tactileFeedbackEnabled) { boolean inputEnabled, boolean inStealthMode, boolean tactileFeedbackEnabled, boolean visibleDots, boolean showErrorPath) { super(superState); mSerializedPattern = serializedPattern; mState = displayMode; mInputEnabled = inputEnabled; mInStealthMode = inStealthMode; mTactileFeedbackEnabled = tactileFeedbackEnabled; mVisibleDots = visibleDots; mShowErrorPath = showErrorPath; } /** Loading @@ -908,6 +941,8 @@ public class DragLock extends View implements LockPattern { mInputEnabled = (Boolean) in.readValue(null); mInStealthMode = (Boolean) in.readValue(null); mTactileFeedbackEnabled = (Boolean) in.readValue(null); mVisibleDots = (Boolean) in.readValue(null); mShowErrorPath = (Boolean) in.readValue(null); } public String getSerializedPattern() { Loading @@ -930,6 +965,14 @@ public class DragLock extends View implements LockPattern { return mTactileFeedbackEnabled; } public boolean isVisibleDots() { return mVisibleDots; } public boolean isShowErrorPath() { return mShowErrorPath; } @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); Loading @@ -938,6 +981,8 @@ public class DragLock extends View implements LockPattern { dest.writeValue(mInputEnabled); dest.writeValue(mInStealthMode); dest.writeValue(mTactileFeedbackEnabled); dest.writeValue(mVisibleDots); dest.writeValue(mShowErrorPath); } public static final Parcelable.Creator<SavedState> CREATOR = Loading core/java/com/android/internal/widget/LockPattern.java +5 −1 Original line number Diff line number Diff line Loading @@ -84,6 +84,10 @@ public interface LockPattern { public void setTactileFeedbackEnabled(boolean tactileFeedbackEnabled); public boolean isInStealthMode(); public void setInStealthMode(boolean inStealthMode); public void setVisibleDots(boolean visibleDots); public boolean isVisibleDots(); public void setShowErrorPath(boolean showErrorPath); public boolean isShowErrorPath(); public void setEventListener(EventListener eventListener); public void setPattern(State state, List<Cell> pattern); public void setState(State state); Loading core/java/com/android/internal/widget/LockPatternFactory.java +3 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.ContentResolver; import android.content.Context; import android.view.ViewGroup.LayoutParams; import android.widget.FrameLayout; import android.view.Gravity; public class LockPatternFactory { public static LockPattern inject(FrameLayout container) { Loading @@ -36,7 +37,8 @@ public class LockPatternFactory { pattern.getView(), new FrameLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); LayoutParams.FILL_PARENT, Gravity.CENTER)); return pattern; } Loading core/java/com/android/internal/widget/LockPatternUtils.java +59 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,11 @@ public class LockPatternUtils { private final static String PATTERN_EVER_CHOSEN = "lockscreen.patterneverchosen"; private final static String PIN_BASED_LOCKING_ENABLED = "lockscreen.pinbased"; private final static String PIN_CHECK_TIMEOUT = "lockscreen.pinchecktimeout"; private final static String LOCK_DOTS_VISIBLE = "lockscreen.dotsvisible"; private final static String LOCK_SHOW_ERROR_PATH = "lockscreen.showerrorpath"; private final static String LOCK_SHOW_CUSTOM_MSG = "lockscreen.showcustommsg"; private final static String LOCK_CUSTOM_MSG = "lockscreen.custommsg"; private final static String LOCK_SHOW_SLIDERS = "lockscreen.showsliders"; private static final int PIN_CHECK_TIMEOUT_MIN = 500; private static final int PIN_CHECK_TIMEOUT_DEFAULT = 1500; Loading Loading @@ -291,6 +296,46 @@ public class LockPatternUtils { return getBoolean(PIN_BASED_LOCKING_ENABLED); } public void setVisibleDotsEnabled(boolean enabled) { setBoolean(LOCK_DOTS_VISIBLE, enabled); } public boolean isVisibleDotsEnabled() { return getBoolean(LOCK_DOTS_VISIBLE); } public void setShowErrorPath(boolean enabled) { setBoolean(LOCK_SHOW_ERROR_PATH, enabled); } public boolean isShowErrorPath() { return getBoolean(LOCK_SHOW_ERROR_PATH); } public void setShowCustomMsg(boolean enabled) { setBoolean(LOCK_SHOW_CUSTOM_MSG, enabled); } public boolean isShowCustomMsg() { return getBoolean(LOCK_SHOW_CUSTOM_MSG); } public void setCustomMsg(String msg) { setString(LOCK_CUSTOM_MSG, msg); } public String getCustomMsg() { return getString(LOCK_CUSTOM_MSG); } public void setShowSliders(boolean enabled) { setBoolean(LOCK_SHOW_SLIDERS, enabled); } public boolean isShowSliders() { return getBoolean(LOCK_SHOW_SLIDERS); } /** * Set whether tactile feedback for the pattern is enabled. */ Loading Loading @@ -403,4 +448,18 @@ public class LockPatternUtils { private void setInt(String systemSettingKey, int value) { android.provider.Settings.System.putInt(mContentResolver, systemSettingKey, value); } private String getString(String systemSettingKey) { String s = android.provider.Settings.System.getString(mContentResolver, systemSettingKey); if (s == null) return ""; return s; } private void setString(String systemSettingKey, String value) { android.provider.Settings.System.putString(mContentResolver, systemSettingKey, value); } } core/java/com/android/internal/widget/PinLock.java +47 −9 Original line number Diff line number Diff line Loading @@ -68,6 +68,8 @@ public class PinLock extends View implements LockPattern { private Vibrator mVibe; private long[] mVibePattern; private boolean mTactileFeedbackEnabled = true; private boolean mVisibleDots = true; private boolean mShowErrorPath = true; private float mSquareWidth; private float mSquareHeight; Loading Loading @@ -133,6 +135,22 @@ public class PinLock extends View implements LockPattern { mInStealthMode = inStealthMode; } public void setVisibleDots(boolean visibleDots) { mVisibleDots = visibleDots; } public boolean isVisibleDots() { return mVisibleDots; } public void setShowErrorPath(boolean showErrorPath) { mShowErrorPath = showErrorPath; } public boolean isShowErrorPath() { return mShowErrorPath; } /** * Set the call back for pattern detection. * @param onPatternListener The call back. Loading Loading @@ -511,6 +529,7 @@ public class PinLock extends View implements LockPattern { final int paddingTop = this.getPaddingTop(); final int paddingLeft = this.getPaddingLeft(); if (mVisibleDots || (mState == LockPattern.State.Incorrect && mShowErrorPath)) { for (int i = 0; i < 3; i++) { float topY = paddingTop + i * squareHeight; Loading @@ -520,6 +539,7 @@ public class PinLock extends View implements LockPattern { } } } } /** * @param canvas Loading Loading @@ -549,7 +569,7 @@ public class PinLock extends View implements LockPattern { } } else { if (mState == LockPattern.State.Incorrect) { if (mState == LockPattern.State.Incorrect && mShowErrorPath) { outerCircle = mBitmapCircleRed; innerCircle = mBitmapBtnTouched; } Loading Loading @@ -581,7 +601,7 @@ public class PinLock extends View implements LockPattern { return new SavedState(superState, LockPatternUtils.patternToString(mPattern), mState.ordinal(), mInputEnabled, mInStealthMode, mTactileFeedbackEnabled); mInputEnabled, mInStealthMode, mTactileFeedbackEnabled, mVisibleDots, mShowErrorPath); } protected void onRestoreInstanceState(Parcelable state) { Loading @@ -594,6 +614,8 @@ public class PinLock extends View implements LockPattern { mInputEnabled = ss.isInputEnabled(); mInStealthMode = ss.isInStealthMode(); mTactileFeedbackEnabled = ss.isTactileFeedbackEnabled(); mVisibleDots = ss.isVisibleDots(); mShowErrorPath = ss.isShowErrorPath(); } /** Loading @@ -606,18 +628,22 @@ public class PinLock extends View implements LockPattern { private final boolean mInputEnabled; private final boolean mInStealthMode; private final boolean mTactileFeedbackEnabled; private final boolean mVisibleDots; private final boolean mShowErrorPath; /** * Constructor called from {@link LockPatternView#onSaveInstanceState()} */ private SavedState(Parcelable superState, String serializedPattern, int displayMode, boolean inputEnabled, boolean inStealthMode, boolean tactileFeedbackEnabled) { boolean inputEnabled, boolean inStealthMode, boolean tactileFeedbackEnabled, boolean visibleDots, boolean showErrorPath) { super(superState); mSerializedPattern = serializedPattern; mDisplayMode = displayMode; mInputEnabled = inputEnabled; mInStealthMode = inStealthMode; mTactileFeedbackEnabled = tactileFeedbackEnabled; mVisibleDots = visibleDots; mShowErrorPath = showErrorPath; } /** Loading @@ -630,6 +656,8 @@ public class PinLock extends View implements LockPattern { mInputEnabled = (Boolean) in.readValue(null); mInStealthMode = (Boolean) in.readValue(null); mTactileFeedbackEnabled = (Boolean) in.readValue(null); mVisibleDots = (Boolean) in.readValue(null); mShowErrorPath = (Boolean) in.readValue(null); } public String getSerializedPattern() { Loading @@ -652,6 +680,14 @@ public class PinLock extends View implements LockPattern { return mTactileFeedbackEnabled; } public boolean isVisibleDots() { return mVisibleDots; } public boolean isShowErrorPath() { return mShowErrorPath; } public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); dest.writeString(mSerializedPattern); Loading @@ -659,6 +695,8 @@ public class PinLock extends View implements LockPattern { dest.writeValue(mInputEnabled); dest.writeValue(mInStealthMode); dest.writeValue(mTactileFeedbackEnabled); dest.writeValue(mVisibleDots); dest.writeValue(mShowErrorPath); } public static final Parcelable.Creator<SavedState> CREATOR = Loading Loading
core/java/com/android/internal/widget/DragLock.java +59 −14 Original line number Diff line number Diff line Loading @@ -93,6 +93,9 @@ public class DragLock extends View implements LockPattern { private State mState = State.Record; private boolean mInputEnabled = true; private boolean mInStealthMode = false; private boolean mVisibleDots = true; private boolean mShowErrorPath = true; private boolean mTactileFeedbackEnabled = true; private float mDiameterFactor = 0.5f; Loading Loading @@ -207,6 +210,22 @@ public class DragLock extends View implements LockPattern { mInStealthMode = inStealthMode; } public void setVisibleDots(boolean visibleDots) { mVisibleDots = visibleDots; } public boolean isVisibleDots() { return mVisibleDots; } public void setShowErrorPath(boolean showErrorPath) { mShowErrorPath = showErrorPath; } public boolean isShowErrorPath() { return mShowErrorPath; } /** * Set whether the view will use tactile feedback. If true, there will be * tactile feedback as the user enters the pattern. Loading Loading @@ -707,7 +726,7 @@ public class DragLock extends View implements LockPattern { // only the last segment of the path should be computed here // draw the path of the pattern (unless the user is in progress, and // we are in stealth mode) final boolean drawPath = (!mInStealthMode || mState == State.Incorrect); final boolean drawPath = ((!mInStealthMode && mState != State.Incorrect) || (mState == State.Incorrect && mShowErrorPath)); if (drawPath) { boolean anyCircles = false; for (int i = 0; i < count; i++) { Loading Loading @@ -742,6 +761,7 @@ public class DragLock extends View implements LockPattern { final int paddingTop = mPaddingTop; final int paddingLeft = mPaddingLeft; if (mVisibleDots) { for (int i = 0; i < 3; i++) { float topY = paddingTop + i * squareHeight; //float centerY = mPaddingTop + i * mSquareHeight + (mSquareHeight / 2); Loading @@ -750,6 +770,7 @@ public class DragLock extends View implements LockPattern { drawCircle(canvas, (int) leftX, (int) topY, drawLookup[i][j]); } } } // draw the arrows associated with the path (unless the user is in progress, and // we are in stealth mode) Loading Loading @@ -828,8 +849,14 @@ public class DragLock extends View implements LockPattern { innerCircle = mBitmapBtnTouched; } else if (mState == State.Incorrect) { // the pattern is wrong if (mShowErrorPath) { outerCircle = mBitmapCircleRed; innerCircle = mBitmapBtnDefault; } else { outerCircle = mBitmapCircleDefault; innerCircle = mBitmapBtnDefault; } } else if (mState == State.Correct || mState == State.Replay) { // the pattern is correct Loading Loading @@ -858,7 +885,7 @@ public class DragLock extends View implements LockPattern { return new SavedState(superState, LockPatternUtils.patternToString(mPattern), mState.ordinal(), mInputEnabled, mInStealthMode, mTactileFeedbackEnabled); mInputEnabled, mInStealthMode, mTactileFeedbackEnabled, mVisibleDots, mShowErrorPath); } @Override Loading @@ -872,6 +899,8 @@ public class DragLock extends View implements LockPattern { mInputEnabled = ss.isInputEnabled(); mInStealthMode = ss.isInStealthMode(); mTactileFeedbackEnabled = ss.isTactileFeedbackEnabled(); mVisibleDots = ss.isVisibleDots(); mShowErrorPath = ss.isShowErrorPath(); } /** Loading @@ -884,18 +913,22 @@ public class DragLock extends View implements LockPattern { private final boolean mInputEnabled; private final boolean mInStealthMode; private final boolean mTactileFeedbackEnabled; private final boolean mVisibleDots; private final boolean mShowErrorPath; /** * Constructor called from {@link LockPatternView#onSaveInstanceState()} */ private SavedState(Parcelable superState, String serializedPattern, int displayMode, boolean inputEnabled, boolean inStealthMode, boolean tactileFeedbackEnabled) { boolean inputEnabled, boolean inStealthMode, boolean tactileFeedbackEnabled, boolean visibleDots, boolean showErrorPath) { super(superState); mSerializedPattern = serializedPattern; mState = displayMode; mInputEnabled = inputEnabled; mInStealthMode = inStealthMode; mTactileFeedbackEnabled = tactileFeedbackEnabled; mVisibleDots = visibleDots; mShowErrorPath = showErrorPath; } /** Loading @@ -908,6 +941,8 @@ public class DragLock extends View implements LockPattern { mInputEnabled = (Boolean) in.readValue(null); mInStealthMode = (Boolean) in.readValue(null); mTactileFeedbackEnabled = (Boolean) in.readValue(null); mVisibleDots = (Boolean) in.readValue(null); mShowErrorPath = (Boolean) in.readValue(null); } public String getSerializedPattern() { Loading @@ -930,6 +965,14 @@ public class DragLock extends View implements LockPattern { return mTactileFeedbackEnabled; } public boolean isVisibleDots() { return mVisibleDots; } public boolean isShowErrorPath() { return mShowErrorPath; } @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); Loading @@ -938,6 +981,8 @@ public class DragLock extends View implements LockPattern { dest.writeValue(mInputEnabled); dest.writeValue(mInStealthMode); dest.writeValue(mTactileFeedbackEnabled); dest.writeValue(mVisibleDots); dest.writeValue(mShowErrorPath); } public static final Parcelable.Creator<SavedState> CREATOR = Loading
core/java/com/android/internal/widget/LockPattern.java +5 −1 Original line number Diff line number Diff line Loading @@ -84,6 +84,10 @@ public interface LockPattern { public void setTactileFeedbackEnabled(boolean tactileFeedbackEnabled); public boolean isInStealthMode(); public void setInStealthMode(boolean inStealthMode); public void setVisibleDots(boolean visibleDots); public boolean isVisibleDots(); public void setShowErrorPath(boolean showErrorPath); public boolean isShowErrorPath(); public void setEventListener(EventListener eventListener); public void setPattern(State state, List<Cell> pattern); public void setState(State state); Loading
core/java/com/android/internal/widget/LockPatternFactory.java +3 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.ContentResolver; import android.content.Context; import android.view.ViewGroup.LayoutParams; import android.widget.FrameLayout; import android.view.Gravity; public class LockPatternFactory { public static LockPattern inject(FrameLayout container) { Loading @@ -36,7 +37,8 @@ public class LockPatternFactory { pattern.getView(), new FrameLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); LayoutParams.FILL_PARENT, Gravity.CENTER)); return pattern; } Loading
core/java/com/android/internal/widget/LockPatternUtils.java +59 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,11 @@ public class LockPatternUtils { private final static String PATTERN_EVER_CHOSEN = "lockscreen.patterneverchosen"; private final static String PIN_BASED_LOCKING_ENABLED = "lockscreen.pinbased"; private final static String PIN_CHECK_TIMEOUT = "lockscreen.pinchecktimeout"; private final static String LOCK_DOTS_VISIBLE = "lockscreen.dotsvisible"; private final static String LOCK_SHOW_ERROR_PATH = "lockscreen.showerrorpath"; private final static String LOCK_SHOW_CUSTOM_MSG = "lockscreen.showcustommsg"; private final static String LOCK_CUSTOM_MSG = "lockscreen.custommsg"; private final static String LOCK_SHOW_SLIDERS = "lockscreen.showsliders"; private static final int PIN_CHECK_TIMEOUT_MIN = 500; private static final int PIN_CHECK_TIMEOUT_DEFAULT = 1500; Loading Loading @@ -291,6 +296,46 @@ public class LockPatternUtils { return getBoolean(PIN_BASED_LOCKING_ENABLED); } public void setVisibleDotsEnabled(boolean enabled) { setBoolean(LOCK_DOTS_VISIBLE, enabled); } public boolean isVisibleDotsEnabled() { return getBoolean(LOCK_DOTS_VISIBLE); } public void setShowErrorPath(boolean enabled) { setBoolean(LOCK_SHOW_ERROR_PATH, enabled); } public boolean isShowErrorPath() { return getBoolean(LOCK_SHOW_ERROR_PATH); } public void setShowCustomMsg(boolean enabled) { setBoolean(LOCK_SHOW_CUSTOM_MSG, enabled); } public boolean isShowCustomMsg() { return getBoolean(LOCK_SHOW_CUSTOM_MSG); } public void setCustomMsg(String msg) { setString(LOCK_CUSTOM_MSG, msg); } public String getCustomMsg() { return getString(LOCK_CUSTOM_MSG); } public void setShowSliders(boolean enabled) { setBoolean(LOCK_SHOW_SLIDERS, enabled); } public boolean isShowSliders() { return getBoolean(LOCK_SHOW_SLIDERS); } /** * Set whether tactile feedback for the pattern is enabled. */ Loading Loading @@ -403,4 +448,18 @@ public class LockPatternUtils { private void setInt(String systemSettingKey, int value) { android.provider.Settings.System.putInt(mContentResolver, systemSettingKey, value); } private String getString(String systemSettingKey) { String s = android.provider.Settings.System.getString(mContentResolver, systemSettingKey); if (s == null) return ""; return s; } private void setString(String systemSettingKey, String value) { android.provider.Settings.System.putString(mContentResolver, systemSettingKey, value); } }
core/java/com/android/internal/widget/PinLock.java +47 −9 Original line number Diff line number Diff line Loading @@ -68,6 +68,8 @@ public class PinLock extends View implements LockPattern { private Vibrator mVibe; private long[] mVibePattern; private boolean mTactileFeedbackEnabled = true; private boolean mVisibleDots = true; private boolean mShowErrorPath = true; private float mSquareWidth; private float mSquareHeight; Loading Loading @@ -133,6 +135,22 @@ public class PinLock extends View implements LockPattern { mInStealthMode = inStealthMode; } public void setVisibleDots(boolean visibleDots) { mVisibleDots = visibleDots; } public boolean isVisibleDots() { return mVisibleDots; } public void setShowErrorPath(boolean showErrorPath) { mShowErrorPath = showErrorPath; } public boolean isShowErrorPath() { return mShowErrorPath; } /** * Set the call back for pattern detection. * @param onPatternListener The call back. Loading Loading @@ -511,6 +529,7 @@ public class PinLock extends View implements LockPattern { final int paddingTop = this.getPaddingTop(); final int paddingLeft = this.getPaddingLeft(); if (mVisibleDots || (mState == LockPattern.State.Incorrect && mShowErrorPath)) { for (int i = 0; i < 3; i++) { float topY = paddingTop + i * squareHeight; Loading @@ -520,6 +539,7 @@ public class PinLock extends View implements LockPattern { } } } } /** * @param canvas Loading Loading @@ -549,7 +569,7 @@ public class PinLock extends View implements LockPattern { } } else { if (mState == LockPattern.State.Incorrect) { if (mState == LockPattern.State.Incorrect && mShowErrorPath) { outerCircle = mBitmapCircleRed; innerCircle = mBitmapBtnTouched; } Loading Loading @@ -581,7 +601,7 @@ public class PinLock extends View implements LockPattern { return new SavedState(superState, LockPatternUtils.patternToString(mPattern), mState.ordinal(), mInputEnabled, mInStealthMode, mTactileFeedbackEnabled); mInputEnabled, mInStealthMode, mTactileFeedbackEnabled, mVisibleDots, mShowErrorPath); } protected void onRestoreInstanceState(Parcelable state) { Loading @@ -594,6 +614,8 @@ public class PinLock extends View implements LockPattern { mInputEnabled = ss.isInputEnabled(); mInStealthMode = ss.isInStealthMode(); mTactileFeedbackEnabled = ss.isTactileFeedbackEnabled(); mVisibleDots = ss.isVisibleDots(); mShowErrorPath = ss.isShowErrorPath(); } /** Loading @@ -606,18 +628,22 @@ public class PinLock extends View implements LockPattern { private final boolean mInputEnabled; private final boolean mInStealthMode; private final boolean mTactileFeedbackEnabled; private final boolean mVisibleDots; private final boolean mShowErrorPath; /** * Constructor called from {@link LockPatternView#onSaveInstanceState()} */ private SavedState(Parcelable superState, String serializedPattern, int displayMode, boolean inputEnabled, boolean inStealthMode, boolean tactileFeedbackEnabled) { boolean inputEnabled, boolean inStealthMode, boolean tactileFeedbackEnabled, boolean visibleDots, boolean showErrorPath) { super(superState); mSerializedPattern = serializedPattern; mDisplayMode = displayMode; mInputEnabled = inputEnabled; mInStealthMode = inStealthMode; mTactileFeedbackEnabled = tactileFeedbackEnabled; mVisibleDots = visibleDots; mShowErrorPath = showErrorPath; } /** Loading @@ -630,6 +656,8 @@ public class PinLock extends View implements LockPattern { mInputEnabled = (Boolean) in.readValue(null); mInStealthMode = (Boolean) in.readValue(null); mTactileFeedbackEnabled = (Boolean) in.readValue(null); mVisibleDots = (Boolean) in.readValue(null); mShowErrorPath = (Boolean) in.readValue(null); } public String getSerializedPattern() { Loading @@ -652,6 +680,14 @@ public class PinLock extends View implements LockPattern { return mTactileFeedbackEnabled; } public boolean isVisibleDots() { return mVisibleDots; } public boolean isShowErrorPath() { return mShowErrorPath; } public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); dest.writeString(mSerializedPattern); Loading @@ -659,6 +695,8 @@ public class PinLock extends View implements LockPattern { dest.writeValue(mInputEnabled); dest.writeValue(mInStealthMode); dest.writeValue(mTactileFeedbackEnabled); dest.writeValue(mVisibleDots); dest.writeValue(mShowErrorPath); } public static final Parcelable.Creator<SavedState> CREATOR = Loading