void removeFilterInternal(F f) {
    if (localLOGV) {
      Slog.v(TAG, "Removing filter: " + f);
      f.dump(new LogPrinter(Log.VERBOSE, TAG, Log.LOG_ID_SYSTEM), "      ");
      Slog.v(TAG, "    Cleaning Lookup Maps:");
    }

    int numS = unregister_intent_filter(f, f.schemesIterator(), mSchemeToFilter, "      Scheme: ");
    int numT = unregister_mime_types(f, "      Type: ");
    if (numS == 0 && numT == 0) {
      unregister_intent_filter(f, f.actionsIterator(), mActionToFilter, "      Action: ");
    }
    if (numT != 0) {
      unregister_intent_filter(f, f.actionsIterator(), mTypedActionToFilter, "      TypedAction: ");
    }
  }
  public void addFilter(F f) {
    if (localLOGV) {
      Slog.v(TAG, "Adding filter: " + f);
      f.dump(new LogPrinter(Log.VERBOSE, TAG, Log.LOG_ID_SYSTEM), "      ");
      Slog.v(TAG, "    Building Lookup Maps:");
    }

    mFilters.add(f);
    int numS = register_intent_filter(f, f.schemesIterator(), mSchemeToFilter, "      Scheme: ");
    int numT = register_mime_types(f, "      Type: ");
    if (numS == 0 && numT == 0) {
      register_intent_filter(f, f.actionsIterator(), mActionToFilter, "      Action: ");
    }
    if (numT != 0) {
      register_intent_filter(f, f.actionsIterator(), mTypedActionToFilter, "      TypedAction: ");
    }
  }