Merge "Disable OK button while input text does not satisfy the expectation"
diff --git a/src/com/android/stk/StkInputActivity.java b/src/com/android/stk/StkInputActivity.java
index 26ae4ce..6f3598a 100644
--- a/src/com/android/stk/StkInputActivity.java
+++ b/src/com/android/stk/StkInputActivity.java
@@ -104,11 +104,6 @@
 
         switch (v.getId()) {
         case R.id.button_ok:
-            // Check that text entered is valid .
-            if (!verfiyTypedText()) {
-                CatLog.d(LOG_TAG, "handleClick, invalid text");
-                return;
-            }
             input = mTextIn.getText().toString();
             break;
         case R.id.button_cancel:
@@ -408,6 +403,7 @@
         String savedString = savedInstanceState.getString(INPUT_STRING_KEY);
         if (!TextUtils.isEmpty(savedString)) {
             mTextIn.setText(savedString);
+            updateButton();
         }
 
         mAlarmTime = savedInstanceState.getLong(ALARM_TIME_KEY, NO_INPUT_ALARM);
@@ -440,18 +436,16 @@
         // Reset timeout.
         cancelTimeOut();
         startTimeOut();
+        updateButton();
     }
 
     public void afterTextChanged(Editable s) {
     }
 
-    private boolean verfiyTypedText() {
-        // If not enough input was typed in stay on the edit screen.
-        if (mTextIn.getText().length() < mStkInput.minLen) {
-            return false;
-        }
-
-        return true;
+    private void updateButton() {
+        // Disable the button if the length of the input text does not meet the expectation.
+        Button okButton = (Button) findViewById(R.id.button_ok);
+        okButton.setEnabled((mTextIn.getText().length() < mStkInput.minLen) ? false : true);
     }
 
     private void cancelTimeOut() {
@@ -542,6 +536,7 @@
                 // make sure the text is cleared
                 mTextIn.setText("", BufferType.EDITABLE);
             }
+            updateButton();
 
             break;
         case STATE_YES_NO: