5 Commits

Author SHA1 Message Date
rightnao
1c27404fc5 [Carousel] Refactor to reuse logic between different Carousel strategy classes
- Moved Arrangement class outside of MultiBrowseStrategy
- Added helper class CarouselStrategyHelper and moved common logic in MultiBrowseStrategy to CarouselStrategyHelper

PiperOrigin-RevId: 528924778
2023-05-03 16:06:57 -04:00
hunterstich
0184b5baa9 [Carousel] Updated MultiBrowseCarouselStrategy to find best arrangments using a cost function
This changes the way arrangements are found by:
* Finding all possible arrangements of items
* Sort the arrangement candidates using a cost function that optimizes for total space fit, large item size retention, and adherence to other input params
* Fit and use the top arrangement to work within the carousel's available space

PiperOrigin-RevId: 522568015
2023-04-10 15:03:52 +00:00
hunterstich
112a0bd20e [Carousel] Restricted MultiBrowseCarouselStrategy's forceCompactArrangement constructor.
This parameter is experimental and planning to be removed in the future.

PiperOrigin-RevId: 510211297
2023-02-17 04:51:36 -08:00
hunterstich
795979c283 [Carousel] Fixed MultiBrowseCarouselStrategy method visibility.
PiperOrigin-RevId: 508728594
2023-02-10 22:51:19 +00:00
hunterstich
fc0f53a0cd [Carousel] Renamed CarouselConfiguration to CarouselStrategy.
PiperOrigin-RevId: 508619540
2023-02-10 14:24:39 +00:00