Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillLocalCardEditor.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillLocalCardEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillLocalCardEditor.java |
index 9971acc9941d6e66c9c1adb6ad6862f2672baf8a..8c642db4c17b4606ff57c9b54516f8b0cae0841e 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillLocalCardEditor.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillLocalCardEditor.java |
@@ -5,9 +5,7 @@ |
package org.chromium.chrome.browser.preferences.autofill; |
import android.os.Bundle; |
-import android.text.Editable; |
import android.text.TextUtils; |
-import android.text.TextWatcher; |
import android.view.LayoutInflater; |
import android.view.View; |
import android.view.ViewGroup; |
@@ -197,94 +195,4 @@ public class AutofillLocalCardEditor extends AutofillCreditCardEditor { |
|| !TextUtils.isEmpty(mNumberText.getText()); |
((Button) getView().findViewById(R.id.button_primary)).setEnabled(enabled); |
} |
- |
- /** |
- * Watch a TextView and if a credit card number is entered, it will format the number. |
- * Disable formatting when user: |
- * 1. Inputs dashes or spaces. |
- * 2. Removes separators in the middle of the string |
- * 3. Enters a number longer than 16 digits. |
- * |
- * Formatting will be re-enabled once text is cleared. |
- */ |
- private static class CreditCardNumberFormattingTextWatcher implements TextWatcher { |
- /** Character for card number section separator. */ |
- private static final String SEPARATOR = " "; |
- |
- /** |
- * Whether to format the credit card number. If true, spaces will be inserted |
- * automatically between each group of 4 digits in the credit card number as the user types. |
- * This is set to false if the user types a dash or deletes one of the auto-inserted spaces. |
- */ |
- private boolean mFormattingEnabled = true; |
- |
- /** |
- * Whether the change was caused by ourselves. |
- * This is set true when we are manipulating the text of EditText, |
- * and all callback functions should check this boolean to avoid infinite recursion. |
- */ |
- private boolean mSelfChange = false; |
- |
- @Override |
- public void onTextChanged(CharSequence s, int start, int before, int count) { |
- if (mSelfChange || !mFormattingEnabled) return; |
- // If user enters non-digit characters, do not format. |
- if (count > 0 && hasDashOrSpace(s, start, count)) { |
- mFormattingEnabled = false; |
- } |
- } |
- |
- @Override |
- public void beforeTextChanged(CharSequence s, int start, int count, int after) { |
- if (mSelfChange || !mFormattingEnabled) return; |
- // If user deletes non-digit characters, do not format. |
- if (count > 0 && hasDashOrSpace(s, start, count)) { |
- mFormattingEnabled = false; |
- } |
- } |
- |
- @Override |
- public void afterTextChanged(Editable s) { |
- if (mSelfChange) return; |
- mSelfChange = true; |
- |
- if (mFormattingEnabled) { |
- removeSeparators(s); |
- // If number is too long, do not format it and remove all |
- // previous separators. |
- if (s.length() > 16) { |
- mFormattingEnabled = false; |
- } else { |
- insertSeparators(s); |
- } |
- } |
- // If user clears the input, re-enable formatting |
- if (s.length() == 0) mFormattingEnabled = true; |
- |
- mSelfChange = false; |
- } |
- |
- public static void removeSeparators(Editable s) { |
- int index = TextUtils.indexOf(s, SEPARATOR); |
- while (index >= 0) { |
- s.delete(index, index + 1); |
- index = TextUtils.indexOf(s, SEPARATOR, index + 1); |
- } |
- } |
- |
- public static void insertSeparators(Editable s) { |
- final int[] positions = {4, 9, 14 }; |
- for (int i : positions) { |
- if (s.length() > i) { |
- s.insert(i, SEPARATOR); |
- } |
- } |
- } |
- |
- public static boolean hasDashOrSpace(final CharSequence s, final int start, |
- final int count) { |
- return TextUtils.indexOf(s, " ", start, start + count) != -1 |
- || TextUtils.indexOf(s, "-", start, start + count) != -1; |
- } |
- } |
} |