Should I implement a "Tags to exclude" field?
I'm making an android application, which procures text (from their Evernote notes) after specific field keywords set by the user. For instance, F: First Text to select S: Second text to select (The above will extract "First Text to select" and "Second text to select" if the field keywords for a particular configuration are "F" & "S" ). For each configuration, the app checks if the note has certain tags specified by the user. Only the notes having(all of) the tags are checked for the presence of field keywords. Then the text fields are extracted & handled according to settings specific for each configuration. Now, my dilemma is the following: Suppose, a user has 2 configurations with same field keywords. Now, suppose that they have sets of tags such that one is a subset of the other. For example, Configuration A: #import #one Configuration B: #import #one #something
So, A would match notes which would also match B. This creates a problem because the fields are handled in such a way that one set({"first text to select","second text to select"} is one set) of fields should only be matched by one configuration. There are a few options to handle this: 1. I could add a "Tags to exclude" setting for each configuration. So, in the above example, when the user is adding Configuration B, I'd give the user an option to add #something to "Tags to exclude" in Configuration A. Or they could just change the field keywords of one of the configurations. This approach however adds a bit of complexity to an already fairly complex app.
- I could simply prohibit the user from adding same field keywords as configuration A in configuration B if A's tags are a subset of B's tags. This approach falls short if the user wants to reuse field keywords often, though that can be done if #anotherthing is added to configuration A (as its tags would no longer be a subset of B's tags).
These are the main solutions I could think of. I'm open to suggestions.