[AT&T, Rogers, Bell, Telus Samsung Galaxy S III] tdunham:
Quick Unlock on Pin/Password with toggle - KitKat 4.4.2

This guide is a supplement to the OP guide created by LoserSkater.

Our edits are in Keyguard.apk, that is what this guide is based on.

Note:

DO NOT make any changes to KeyguardAbsKeyInputView.smali yet.

We're going to do things a little differently in this guide.

Keyguard.apk smali edits

First, let's check to see if we are using the correct file:

Decompile Keyguard.apk and Navigate to:

\smali\com\android\keyguard\KeyguardAbsKeyInputView$3.smali

Look for this method:

.method public afterTextChanged(Landroid/text/Editable;)V

If it has it, great! If not, this guide may not work. Ask for assistance.

Overwrite the file with the one attached to this post and make these edits to the four lines in BLUE.

(This file is the core mod but we are commenting out the lines required for the toggle for now to test and make sure it works first then reverting the change later.)

\smali\com\android\keyguard\KeyguardAbsKeyInputView$3.smali

.method public afterTextChanged(Landroid/text/Editable;)V
.
.
.
.
:cond_0
[COLOR="Blue"]# [/COLOR]iget-object v1, p0, Lcom/android/keyguard/KeyguardAbsKeyInputView$3;->this$0:Lcom/android/keyguard/KeyguardAbsKeyInputView;

#getter for: Lcom/android/keyguard/KeyguardAbsKeyInputView;->mQuickUnlock:Z
[COLOR="Blue"]# [/COLOR]invoke-static {v1}, Lcom/android/keyguard/KeyguardAbsKeyInputView;->access$400(Lcom/android/keyguard/KeyguardAbsKeyInputView;)Z

[COLOR="Blue"]# [/COLOR]move-result v1

[COLOR="Blue"]# [/COLOR]if-eqz v1, :cond_1

.line 131

Recompile and test Keyguard.apk. If it works, then you can undo the changes to those 4 lines and we will do the rest of the toggle in Keyguard.apk.

\smali\com\android\keyguard\KeyguardAbsKeyInputView.smali

New line in BLUE:

.field protected mPasswordEntry:Landroid/widget/TextView;

[COLOR="Blue"].field private mQuickUnlock:Z
[/COLOR]
.field protected mPwdPolicy:Landroid/app/enterprise/PasswordPolicy;

Add new method in BLUE:

.method static synthetic access$300(Lcom/android/keyguard/KeyguardAbsKeyInputView;)Landroid/widget/Button;
.locals 1

iget-object v0, p0, Lcom/android/keyguard/KeyguardAbsKeyInputView;->mEmergencyButton:Landroid/widget/Button;

return-object v0
.end method

[COLOR="Blue"].method static synthetic access$400(Lcom/android/keyguard/KeyguardAbsKeyInputView;)Z
.locals 1
.parameter "x0"

.prologue
.line 42
iget-boolean v0, p0, Lcom/android/keyguard/KeyguardAbsKeyInputView;->mQuickUnlock:Z

return v0
.end method
[/COLOR]
.method private disableDevicePermanently()V

Add new lines in BLUE:

.method protected onFinishInflate()V
.
.
.
.
new-instance v3, Lcom/android/keyguard/KeyguardAbsKeyInputView$2;

invoke-direct {v3, p0}, Lcom/android/keyguard/KeyguardAbsKeyInputView$2;-><init>(Lcom/android/keyguard/KeyguardAbsKeyInputView;)V

invoke-virtual {v2, v3}, Landroid/view/View;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V

iget-object v1, p0, Landroid/view/View;->mContext:Landroid/content/Context;

[COLOR="Blue"] invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v1

const-string v2, "quick_unlock"

const/4 v3, 0x0

invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v2

if-eqz v2, :cond_quick

const/4 v3, 0x1

:cond_quick
iput-boolean v3, p0, Lcom/android/keyguard/KeyguardAbsKeyInputView;->mQuickUnlock:Z
[/COLOR]
iget-object v2, p0, Lcom/android/keyguard/KeyguardAbsKeyInputView;->mPasswordEntry:Landroid/widget/TextView;

new-instance v3, Lcom/android/keyguard/KeyguardAbsKeyInputView$3;

invoke-direct {v3, p0}, Lcom/android/keyguard/KeyguardAbsKeyInputView$3;-><init>(Lcom/android/keyguard/KeyguardAbsKeyInputView;)V

That's it for Keyguard.apk.

The SecSettings.apk guide from the OP can now be completed to finish off the toggle (which is accessed from Lockscreen Settings).

Cheers - TD