@Override
    public void addTextChangedListener(TextWatcher watcher) {
        if (watcher == mInternalTextWatcher) {
            if (!mIsWatchingText) {
                super.addTextChangedListener(mInternalTextWatcher);
                mIsWatchingText = true;
            }
        } else {
            mExternalTextWatchers.add(watcher);
        }
    }
@Override
    public void addTextChangedListener(TextWatcher watcher) {
        if (watcher == mInternalTextWatcher) {
            if (!mIsWatchingText) {
                super.addTextChangedListener(mInternalTextWatcher);
                mIsWatchingText = true;
            }
        } else {
            mExternalTextWatchers.add(watcher);
        }
    }
@ Override public void addTextChangedListener ( TextWatcher watcher ) { if ( watcher == mInternalTextWatcher ) { if ( ! mIsWatchingText ) { super . addTextChangedListener ( mInternalTextWatcher ) ; mIsWatchingText = true ; } } else { mExternalTextWatchers . add ( watcher ) ; } }
Allows a class to watch for text changes. Note that adding this class to itself will add it
to the super class. Other instances of {@link TextWatcher} will be notified by this class
as appropriate (helps prevent infinite loops when text keeps changing).

@param watcher the {@link TextWatcher} to add
Allows a class to watch for text changes . Note that adding this class to itself will add it to the super class . Other instances of { @link TextWatcher } will be notified by this class as appropriate ( helps prevent infinite loops when text keeps changing ) .