code: @Override
      public void addTextChangedListener(TextWatcher watcher) {
          if (watcher == mInternalTextWatcher) {
              if (!mIsWatchingText) {
                  super.addTextChangedListener(mInternalTextWatcher);
                  mIsWatchingText = true;
              }
          } else {
              mExternalTextWatchers.add(watcher);
          }
      }
docs: 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