code: @Override
      public void addSourceTargetSet(UnicodeSet inputFilter, UnicodeSet sourceSet, UnicodeSet targetSet) {
          UnicodeSet myFilter = getFilterAsUnicodeSet(inputFilter);
          if (!myFilter.containsAll(UnicodeNameTransliterator.OPEN_DELIM) || !myFilter.contains(CLOSE_DELIM)) {
              return; // we have to contain both prefix and suffix
          }
          UnicodeSet items = new UnicodeSet()
          .addAll('0', '9')
          .addAll('A', 'F')
          .addAll('a', 'z') // for controls
          .add('<').add('>') // for controls
          .add('(').add(')') // for controls
          .add('-')
          .add(' ')
          .addAll(UnicodeNameTransliterator.OPEN_DELIM)
          .add(CLOSE_DELIM);
          items.retainAll(myFilter);
          if (items.size() > 0) {
              sourceSet.addAll(items);
              // could produce any character
              targetSet.addAll(0, 0x10FFFF);
          }
      }
docs: /* (non-Javadoc)
  @see android.icu.text.Transliterator#addSourceTargetSet(android.icu.text.UnicodeSet, android.icu.text.UnicodeSet, android.icu.text.UnicodeSet)