@Override
    public void removeTextChangedListener(TextWatcher watcher) {
        if (watcher == mInternalTextWatcher) {
            if (mIsWatchingText) {
                super.removeTextChangedListener(mInternalTextWatcher);
                mIsWatchingText = false;
            }
        } else {
            // Other watchers are added
            mExternalTextWatchers.remove(watcher);
        }
    }
@Override
    public void removeTextChangedListener(TextWatcher watcher) {
        if (watcher == mInternalTextWatcher) {
            if (mIsWatchingText) {
                super.removeTextChangedListener(mInternalTextWatcher);
                mIsWatchingText = false;
            }
        } else {
            
            mExternalTextWatchers.remove(watcher);
        }
    }
@ Override public void removeTextChangedListener ( TextWatcher watcher ) { if ( watcher == mInternalTextWatcher ) { if ( mIsWatchingText ) { super . removeTextChangedListener ( mInternalTextWatcher ) ; mIsWatchingText = false ; } } else { // Other watchers are added mExternalTextWatchers . remove ( watcher ) ; } }
Removes a {@link TextWatcher} from this class. Note that this function servers as the
counterpart to {@link #addTextChangedListener(TextWatcher)}).

@param watcher the {@link TextWatcher} to remove
Removes a { @link TextWatcher } from this class . Note that this function servers as the counterpart to { @link #addTextChangedListener ( TextWatcher ) } ) .