Platform module
The home presentation implementation is located inside the platform module, and most of the implementation is located under the main package.
Architecture
BottomNavigationActivityis responsible for initializing BottomNavigationFragments, HomeFragment being one of them.HomeFragmentis the main fragment for the Home screen.HomeViewBinderlegacy code with the purpose of gluing all of the necessary view components and the view models together.BaseBannerRecyclerViewis responsible for rendering multiple Banner types.BaseUiBannerImageViewHolderis the view holder for the image/gif banners.BannerImageViewModelis the view model for the image/gif banners.BaseUiBannerProductCarouselViewHolderis the view holder for the url product carousel.BaseUiBannerRecentlyViewedViewHolderis the view holder for the recently viewed carouselBaseUiBannerVideoViewHolderis the view holder for video view.PoqVideoViewModelis the view model for video banner which is responsible for setting the appropriate data and handling the onClick logic.BaseUiStoriesCarouselViewHolderis the view holder for the stories Carousel View.StoriesCarouselViewModelis the view model for the stories carousel view which is responsible for handling the visibility/error/display and saving the current position logic.BaseUIBannerCustomViewHolderis an empty view holder which you can override and provide as many banner view holders as custom Banner types to support additional functionality.
Views breakdown
| View | XML | Alias |
|---|---|---|
| HomeFragment/HomeViewBinder | fragment_home.xml | homeFragmentLayout |
| BaseUiBannerImageViewHolder | image_banner_item_view.xml | bannerImageItemLayout |
| BaseUiBannerProductCarouselViewHolder | product_carousel_banner_item_view.xml | bannerProductCarouselItemLayout |
| BaseUiBannerRecentlyViewedViewHolder | recently_viewed_banner_item_view.xml | bannerRecentlyViewedItemLayout |
| BaseUiBannerVideoViewHolder | video_banner_item_view.xml | bannerVideoItemLayout |
| BaseUiStoriesCarouselViewHolder | stories_carousel_banner_item_view.xml | bannerStoriesCarouselItemLayout |
| BaseUIBannerCustomViewHolder | custom_banner_item_view.xml | bannerCustomItemLayout |