@@ -413,16 +413,6 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
413413 private fun handleFeedGroups (groups : List <Group >) {
414414 val listViewMode = viewModel.getListViewMode()
415415
416- carouselAdapter.clear()
417- carouselAdapter.add(if (listViewMode) FeedGroupAddNewItem () else FeedGroupAddNewGridItem ())
418- carouselAdapter.add(
419- if (listViewMode)
420- FeedGroupCardItem (- 1 , getString(R .string.all), FeedGroupIcon .RSS )
421- else
422- FeedGroupCardGridItem (- 1 , getString(R .string.all), FeedGroupIcon .RSS )
423- )
424- carouselAdapter.addAll(groups)
425-
426416 if (feedGroupsCarouselState != null ) {
427417 feedGroupsCarousel.onRestoreInstanceState(feedGroupsCarouselState)
428418 feedGroupsCarouselState = null
@@ -434,6 +424,19 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
434424 binding.itemsList.post {
435425 feedGroupsCarousel.notifyChanged(FeedGroupCarouselItem .PAYLOAD_UPDATE_LIST_VIEW_MODE )
436426 feedGroupsSortMenuItem.notifyChanged(GroupsHeader .PAYLOAD_UPDATE_ICONS )
427+
428+ // update items here to prevent flickering
429+ carouselAdapter.apply {
430+ clear()
431+ if (listViewMode) {
432+ add(FeedGroupAddNewItem ())
433+ add(FeedGroupCardItem (- 1 , getString(R .string.all), FeedGroupIcon .RSS ))
434+ } else {
435+ add(FeedGroupAddNewGridItem ())
436+ add(FeedGroupCardGridItem (- 1 , getString(R .string.all), FeedGroupIcon .RSS ))
437+ }
438+ addAll(groups)
439+ }
437440 }
438441 }
439442
0 commit comments