ARK-Builders / ARK-Builders/ark-android
Query modes
- Dominant language
- Kotlin
- Stars
- 0
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
The app uses "tags selector" to specify tags, i.e. it outputs some set of tags.
But there are multiple ways to interpret a selection into subset of resources.
Of the following 1, 2 and 5 seem to be most natural and modes 3, 4 might be useful sometimes.
1. _Normal mode_ (intersection)
Every resource which is **marked with all of specified tags** is displayed.
I.e. resources which contain extra tags are also displayed.
2. _Focus mode_
This mode is stricter: only those resources which are **marked with all
of specified tags and none of non-specified tags** are displayed.
I.e. resources which contain extra tags are filtered-out.
3. _Extra mode_
This mode is derived from 1 and 2: we apply Normal mode
and filter-out all resources from Focus mode.
I.e. resources which are **marked with all of specified tags
and at least one of non-specified tags** are displayed.
We can also, on the opposite, define Focus mode via Extra mode.
4. _Inversion mode_
This mode is inverted Normal mode: we take the whole
collection and filter resources which are marked with all of specified tags out.
I.e. we display only those resources which are **not marked with any of specified tags**.
5. _Union mode_
We display all resources **marked with at least one of specified tags**.
To illustrate these modes, let's take some collection of resources:
* Resource _1_ is marked with tag _a_
* Resource _2_ is marked with tag _b_
* Resource _3_ is marked with tag _c_
* Resource _4_ is marked with tags _a, b_
* Resource _5_ is marked with tags _b, c_
* Resource _6_ is marked with tags _a, c_
* Resource _7_ is marked with tags _a, b, c_
* Resource _8_ isn't marked with any tag
Examples of queries on this collection:
1. Empty query (beginning of user's interaction)
_Normal_ mode outputs _1, 2, 3, 4, 5, 6, 7, 8_
_Focus_ mode outputs _8_
_Extra_ mode outputs _1, 2, 3, 4, 5, 6, 7_
_Inversion_ mode outputs _nothing_
_Union_ mode outputs _nothing_
2. Single tag query, e.g. _{a}_
_Normal_ mode outputs _1, 4, 6, 7_
_Focus_ mode outputs _1_
_Extra_ mode outputs _4, 6, 7_
_Inversion_ mode outputs _2, 3, 5, 8_
_Union_ mode outputs _1, 4, 6, 7_
3. Two tags query, e.g. _{a, b}_
_Normal_ mode outputs _4, 7_
_Focus_ mode outputs _4_
_Extra_ mode outputs _7_
_Inversion_ mode outputs _1, 2, 3, 5, 6, 8_
_Union_ mode outputs _1, 2, 4, 5, 6, 7_
4. Three tags query, e.g. _{a, b, c}_
_Normal_ mode outputs _7_
_Focus_ mode outputs _7_
_Extra_ mode outputs _nothing_
_Inversion_ mode outputs _1, 2, 3, 4, 5, 6, 8_
_Union_ mode outputs _1, 2, 3, 4, 5, 6, 7_
Contributor guide
No contributing guide indexed for this repository
Research direction
No files or tests are named. Start by locating the tags selector and resource-filtering entry points, then compare their behavior with the five modes and examples in this issue; done means the selected mode returns the specified resources for empty, single-tag, two-tag, and three-tag queries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- mobile-dev, search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100