Merge "Fix keyguard timeout dialog messages" into jb-mr1-dev
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
index 95f8500..955c230 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
@@ -348,6 +348,7 @@
                 (failedAttemptsBeforeWipe - failedAttempts)
                 : Integer.MAX_VALUE; // because DPM returns 0 if no restriction
 
+        boolean showTimeout = false;
         if (remainingBeforeWipe < LockPatternUtils.FAILED_ATTEMPTS_BEFORE_WIPE_GRACE) {
             // If we reach this code, it means the user has installed a DevicePolicyManager
             // that requests device wipe after N attempts.  Once we get below the grace
@@ -361,7 +362,7 @@
                 showWipeDialog(failedAttempts);
             }
         } else {
-            boolean showTimeout =
+            showTimeout =
                 (failedAttempts % LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT) == 0;
             if (usingPattern && mEnableFallback) {
                 if (failedAttempts == failedAttemptWarning) {
@@ -374,12 +375,12 @@
                     showTimeout = false;
                 }
             }
-            if (showTimeout) {
-                showTimeoutDialog();
-            }
         }
         monitor.reportFailedUnlockAttempt();
         mLockPatternUtils.reportFailedPasswordAttempt();
+        if (showTimeout) {
+            showTimeoutDialog();
+        }
     }
 
     /**
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java
index 7e9aa43..01f7af3 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPasswordView.java
@@ -97,11 +97,17 @@
         if (deadline != 0) {
             handleAttemptLockout(deadline);
         } else {
-            mNavigationManager.setMessage(
-                    mIsAlpha ? R.string.kg_password_instructions : R.string.kg_pin_instructions);
+            resetState();
         }
     }
 
+    private void resetState() {
+        mNavigationManager.setMessage(
+                mIsAlpha ? R.string.kg_password_instructions : R.string.kg_pin_instructions);
+        mPasswordEntry.setEnabled(true);
+        mKeyboardView.setEnabled(true);
+    }
+
     @Override
     protected void onFinishInflate() {
         mLockPatternUtils = new LockPatternUtils(mContext); // TODO: use common one
@@ -297,8 +303,7 @@
 
             @Override
             public void onFinish() {
-                mPasswordEntry.setEnabled(true);
-                mKeyboardView.setEnabled(true);
+                resetState();
             }
         }.start();
     }
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
index e325f94..8d83484 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
@@ -54,7 +54,7 @@
     private static final int BATTERY_INFO = 15;
 
     private StatusMode mStatus;
-    private String mDateFormatString;
+    private CharSequence mDateFormatString;
 
     // Views that this class controls.
     // NOTE: These may be null in some LockScreen screens and should protect from NPE
@@ -101,7 +101,8 @@
     public KeyguardStatusViewManager(View view) {
         if (DEBUG) Log.v(TAG, "KeyguardStatusViewManager()");
         mContainer = view;
-        mDateFormatString = getContext().getString(R.string.abbrev_wday_month_day_no_year);
+        mDateFormatString = getContext().getResources()
+            .getText(R.string.abbrev_wday_month_day_no_year);
         mLockPatternUtils = new LockPatternUtils(view.getContext());
         mUpdateMonitor = KeyguardUpdateMonitor.getInstance(view.getContext());