Skip to content

ADFA-365 - project build test with Bottom navigation Drawer Project - #6

Merged
romanlapa merged 1 commit into
stagefrom
feature/ADFA-365-bottom-navigation
Feb 12, 2025
Merged

ADFA-365 - project build test with Bottom navigation Drawer Project#6
romanlapa merged 1 commit into
stagefrom
feature/ADFA-365-bottom-navigation

Conversation

@YahorZCzygunki

Copy link
Copy Markdown
Contributor

No description provided.

@romanlapa
romanlapa merged commit 5ff2b71 into stage Feb 12, 2025
@hal-eisen-adfa
hal-eisen-adfa deleted the feature/ADFA-365-bottom-navigation branch July 4, 2025 16:40
jatezzz pushed a commit that referenced this pull request Jun 22, 2026
ADFA-365 - project build test with Bottom navigation Drawer Project
jatezzz added a commit that referenced this pull request Jul 17, 2026
Fan-out, adapter, and plugin-API fixes from the ProjectSearchExtension review:

- Guard plugin results against null elements (mapNotNull) and wrap the collection block in a logging try/catch so a bad element no longer kills the whole fan-out silently. (#1)
- buildRows buffers each section's rows and emits the header only when a group exists, skipping blank titles -- no more orphan/blank headers suppressing the empty state. (#2)
- Move the fan-out to lifecycleScope so a slow plugin can't pin a destroyed Activity/ViewModel or post to a dead Activity. (#3)
- Keep the search progress indicator up when the built-in search is empty but plugins are enabled, so a plugin-only match doesn't flash a terminal "no results" state. (#4)
- SearchListAdapter is now a ListAdapter + DiffUtil reused across emissions; the two-phase publish diffs instead of reallocating, preserving scroll and already-run highlights. (#5)
- Collapse the adapter constructors to one clicks ctor plus a thin map convenience ctor; drop the dead keys param and nullable-value scrub. (#6)
- Replace the blocking .get(10s) with a non-blocking withTimeoutOrNull + await so no commonPool worker is tied up. (#7)
- Trim pipe-split filter tokens at the source (endsWith(" kt") matched nothing in built-in search too); align ProjectSearchExtension KDoc with actual behavior and drop the non-ASCII em-dash. (#9, #10)
jatezzz added a commit that referenced this pull request Jul 20, 2026
Fan-out, adapter, and plugin-API fixes from the ProjectSearchExtension review:

- Guard plugin results against null elements (mapNotNull) and wrap the collection block in a logging try/catch so a bad element no longer kills the whole fan-out silently. (#1)
- buildRows buffers each section's rows and emits the header only when a group exists, skipping blank titles -- no more orphan/blank headers suppressing the empty state. (#2)
- Move the fan-out to lifecycleScope so a slow plugin can't pin a destroyed Activity/ViewModel or post to a dead Activity. (#3)
- Keep the search progress indicator up when the built-in search is empty but plugins are enabled, so a plugin-only match doesn't flash a terminal "no results" state. (#4)
- SearchListAdapter is now a ListAdapter + DiffUtil reused across emissions; the two-phase publish diffs instead of reallocating, preserving scroll and already-run highlights. (#5)
- Collapse the adapter constructors to one clicks ctor plus a thin map convenience ctor; drop the dead keys param and nullable-value scrub. (#6)
- Replace the blocking .get(10s) with a non-blocking withTimeoutOrNull + await so no commonPool worker is tied up. (#7)
- Trim pipe-split filter tokens at the source (endsWith(" kt") matched nothing in built-in search too); align ProjectSearchExtension KDoc with actual behavior and drop the non-ASCII em-dash. (#9, #10)
jatezzz added a commit that referenced this pull request Jul 20, 2026
…#1528)

* feat(search): add ProjectSearchExtension API for plugin result sections
Fan out to enabled plugins after built-in search and render their sections.

* style: apply spotless formatting to search extension files

* fix(search): address review findings on plugin search extension

- Bound plugin search fan-out with a 10s timeout and drop results from superseded searches via a generation counter in EditorViewModel
- Guard against Java plugins completing their future with null
- Flatten SearchListAdapter's nested RecyclerView into Row.Match rows so match rows recycle instead of inflating all at once
- Narrow catch(Throwable) to catch(Exception) per REVIEW.md
- Document plugin-api search contract types; coordinates are 0-based, end-exclusive
- Marshal plugin crash recording to the UI thread and drop the unread searchResults flow.

* fix(search): address review feedback on search results list

- Make the group row's LinearLayout the layout root so the click listener on binding.root receives taps (the clickable child was consuming them) and drop the redundant RelativeLayout wrapper
- Log highlight failures via SLF4J and keep the plain-text preview instead of overwriting the line with the matched text
- Skip files with empty match lists to avoid dangling group headers
- Hide the decorative file icon from accessibility services

* fix(search): address code-review findings on plugin search

Fan-out, adapter, and plugin-API fixes from the ProjectSearchExtension review:

- Guard plugin results against null elements (mapNotNull) and wrap the collection block in a logging try/catch so a bad element no longer kills the whole fan-out silently. (#1)
- buildRows buffers each section's rows and emits the header only when a group exists, skipping blank titles -- no more orphan/blank headers suppressing the empty state. (#2)
- Move the fan-out to lifecycleScope so a slow plugin can't pin a destroyed Activity/ViewModel or post to a dead Activity. (#3)
- Keep the search progress indicator up when the built-in search is empty but plugins are enabled, so a plugin-only match doesn't flash a terminal "no results" state. (#4)
- SearchListAdapter is now a ListAdapter + DiffUtil reused across emissions; the two-phase publish diffs instead of reallocating, preserving scroll and already-run highlights. (#5)
- Collapse the adapter constructors to one clicks ctor plus a thin map convenience ctor; drop the dead keys param and nullable-value scrub. (#6)
- Replace the blocking .get(10s) with a non-blocking withTimeoutOrNull + await so no commonPool worker is tied up. (#7)
- Trim pipe-split filter tokens at the source (endsWith(" kt") matched nothing in built-in search too); align ProjectSearchExtension KDoc with actual behavior and drop the non-ASCII em-dash. (#9, #10)

* style(search): expand when branches to block form for ktlint

Spotless ratchets from origin/stage; stage was reformatted after this branch diverged, so CI flagged the single-expression when branches in onUpdateWadbConnectionStatus and the multi-line FileOpResult.Success branch. Expand them to ktlint's canonical block form so the file is fully canonical and passes under any ratchet base.

* fix: reported violations for spotless
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants