Skip to content

feat: add RowDecoration support for full-width items in AspectoGrid - #6

Merged
vipulasri merged 10 commits into
mainfrom
feature/row-decorations
Aug 22, 2026
Merged

feat: add RowDecoration support for full-width items in AspectoGrid#6
vipulasri merged 10 commits into
mainfrom
feature/row-decorations

Conversation

@vipulasri

Copy link
Copy Markdown
Owner

Summary

  • Adds RowDecoration data class for inserting full-width items (headers, ads, footers) at specific row positions in the grid
  • spliceDecorations() function with key collision detection
  • calculateRows() accepts optional decorations parameter
  • AspectoGrid renders full-width decoration rows
  • 10 unit tests covering decoration behavior
  • Benchmark tests with percentile reporting (p50/p75/p90/p95/p99)
  • Sample app with BasicGrid + DecoratedGrid screens and previews
  • Scaffold padding fix for nested screens
  • CMP tooling dependencies for previews

Changes

  • AspectoLayoutInfo.kt: Added RowDecoration data class
  • AspectoRow.kt: Added isFullWidth flag
  • AspectoRowCalculator.kt: Added spliceDecorations(), updated calculateRows() with decorations param
  • AspectoGrid.kt: Added decorations parameter, renders full-width rows
  • AspectoRowCalculatorTest.kt: 10 decoration unit tests
  • AspectoRowCalculatorBenchmarkTest.kt: Benchmark tests with percentiles
  • Sample app: App.kt, BasicGrid.kt, DecoratedGrid.kt, ArtworkItems.kt
  • benchmark/benchmark-results.json: Baseline benchmark results

vipulasri and others added 10 commits August 20, 2026 11:26
Add ability to insert full-width row decorations (headers, footers, ads,
loaders) at specific row positions via a mutable decorations list.

- Add RowDecoration data class with index, key, contentType, content
- Add isFullWidth flag to AspectoRow
- Update calculateRows() to accept and splice decorations
- Update AspectoGrid composable to render full-width decoration rows
- Add key collision detection between decoration and item-derived keys
- Add 10 unit tests for decoration behavior
- Update sample app to demonstrate mutable decorations with pagination
- RowDecoration data class for full-width items at specific row positions
- spliceDecorations() with key collision detection
- calculateRows() accepts decorations parameter
- AspectoGrid renders full-width decoration rows
- 10 unit tests for decoration behavior
- Benchmark tests with percentiles (p50/p75/p90/p95/p99)
- Sample app: BasicGrid + DecoratedGrid with previews
- Scaffold padding fix for nested screens
- CMP tooling dependencies for previews
- build.yml CI workflow
@vipulasri
vipulasri merged commit cc2b8d3 into main Aug 22, 2026
2 checks passed
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.

1 participant