Merge "Clear security message on user input" into mnc-dev
This commit is contained in:
@@ -174,9 +174,16 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout
|
||||
}.start();
|
||||
}
|
||||
|
||||
protected void onUserInput() {
|
||||
if (mCallback != null) {
|
||||
mCallback.userActivity();
|
||||
}
|
||||
mSecurityMessageDisplay.setMessage("", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
mCallback.userActivity();
|
||||
onUserInput();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -88,24 +88,33 @@ class KeyguardMessageArea extends TextView {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMessage(CharSequence msg, boolean important) {
|
||||
if (!TextUtils.isEmpty(msg) && important) {
|
||||
mMessageArea.mMessage = msg;
|
||||
mMessageArea.securityMessageChanged();
|
||||
} else {
|
||||
mMessageArea.clearMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMessage(int resId, boolean important) {
|
||||
if (resId != 0 && important) {
|
||||
mMessageArea.mMessage = mMessageArea.getContext().getResources().getText(resId);
|
||||
mMessageArea.securityMessageChanged();
|
||||
} else {
|
||||
mMessageArea.clearMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMessage(int resId, boolean important, Object... formatArgs) {
|
||||
if (resId != 0 && important) {
|
||||
mMessageArea.mMessage = mMessageArea.getContext().getString(resId, formatArgs);
|
||||
mMessageArea.securityMessageChanged();
|
||||
} else {
|
||||
mMessageArea.clearMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,6 +185,11 @@ class KeyguardMessageArea extends TextView {
|
||||
(SystemClock.uptimeMillis() + ANNOUNCEMENT_DELAY));
|
||||
}
|
||||
|
||||
public void clearMessage() {
|
||||
mHandler.removeCallbacks(mClearMessageRunnable);
|
||||
mHandler.post(mClearMessageRunnable);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the status lines based on these rules:
|
||||
* AlarmStatus: Alarm state always gets it's own line.
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.text.Editable;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.text.method.TextKeyListener;
|
||||
import android.util.AttributeSet;
|
||||
@@ -138,20 +139,6 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView
|
||||
// Set selected property on so the view can send accessibility events.
|
||||
mPasswordEntry.setSelected(true);
|
||||
|
||||
mPasswordEntry.addTextChangedListener(new TextWatcher() {
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
}
|
||||
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
public void afterTextChanged(Editable s) {
|
||||
if (mCallback != null) {
|
||||
mCallback.userActivity();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mPasswordEntry.requestFocus();
|
||||
|
||||
// If there's more than one IME, enable the IME switcher button
|
||||
@@ -293,6 +280,11 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
// Poor man's user edit detection, assuming empty text is programmatic and everything else
|
||||
// is from the user.
|
||||
if (!TextUtils.isEmpty(s)) {
|
||||
onUserInput();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -208,6 +208,7 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit
|
||||
|
||||
public void onPatternStart() {
|
||||
mLockPatternView.removeCallbacks(mCancelPatternRunnable);
|
||||
mSecurityMessageDisplay.setMessage("", false);
|
||||
}
|
||||
|
||||
public void onPatternCleared() {
|
||||
|
||||
@@ -148,7 +148,14 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView
|
||||
// Poke the wakelock any time the text is selected or modified
|
||||
mPasswordEntry.setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
mCallback.userActivity();
|
||||
onUserInput();
|
||||
}
|
||||
});
|
||||
|
||||
mPasswordEntry.setUserActivityListener(new PasswordTextView.UserActivityListener() {
|
||||
@Override
|
||||
public void onUserActivity() {
|
||||
onUserInput();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -92,6 +92,11 @@ public class PasswordTextView extends View {
|
||||
private Interpolator mDisappearInterpolator;
|
||||
private Interpolator mFastOutSlowInInterpolator;
|
||||
private boolean mShowPassword;
|
||||
private UserActivityListener mUserActivityListener;
|
||||
|
||||
public interface UserActivityListener {
|
||||
void onUserActivity();
|
||||
}
|
||||
|
||||
public PasswordTextView(Context context) {
|
||||
this(context, null);
|
||||
@@ -206,8 +211,15 @@ public class PasswordTextView extends View {
|
||||
sendAccessibilityEventTypeViewTextChanged(textbefore, textbefore.length(), 0, 1);
|
||||
}
|
||||
|
||||
public void setUserActivityListener(UserActivityListener userActivitiListener) {
|
||||
mUserActivityListener = userActivitiListener;
|
||||
}
|
||||
|
||||
private void userActivity() {
|
||||
mPM.userActivity(SystemClock.uptimeMillis(), false);
|
||||
if (mUserActivityListener != null) {
|
||||
mUserActivityListener.onUserActivity();
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteLastChar() {
|
||||
|
||||
Reference in New Issue
Block a user