ARK-Builders / ARK-Builders/Navigator

Union query mode

Open
#360 0 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
Kotlin
Stars
16
Forks
14
PR merge metrics
No merged PRs in 30d

Description

In addition to `intersection` and `focus` query modes, `union` mode should be added.
When `union` mode is enabled, we display all resources **marked with at least one of specified tags**.

- [ ] `Union` query mode must be implemented
- [ ] `Focus` mode should be made default query mode
- [ ] New icons for `intersection` and `union` modes

"Intersection" mode is called "normal" in ARK-Builders/ark-components-android#17.
"Focus" mode was implemented in scope of ARK-Builders/ark-components-android#23.

New icons for query modes should remind the following:
![query-modes](https://github.com/ARK-Builders/ARK-Navigator/assets/581023/47785703-c52a-4c6b-90e4-5aa25fb543dd)

## How `union` query mode works

Suppose, we have the following resources:
```
┌────────────────┐
│ # | tags │
├────────────────┤
│ 1 | a │
│ 2 | b │
│ 3 | c │
│ 4 | a, b │
│ 5 | b, c │
│ 6 | a, c │
│ 7 | a, b, c │
│ 8 | │
└────────────────┘
```

This is how queries will work in `union` mode:
```
┌─────────────────────────────────┐
│ query | resources │
├─────────────────────────────────┤
│ {} │ │
│ {a} │ 1, 4, 6, 7 |
│ {a,b} │ 1, 2, 4, 5, 6, 7 │
│ {a, b, c} │ 1, 2, 3, 4, 5, 6, 7 |
└─────────────────────────────────┘
```

Contributor guide

Open the contributing guide

Research direction

The issue names no files or tests. Start by tracing the existing intersection and focus query modes, then verify the union behavior against the resource and tag examples; done means union mode, the default focus mode, and the requested query-mode icons are implemented.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.