@@ -13,6 +13,7 @@ import com.example.util.simpletimetracker.core.extension.findListener
1313import com.example.util.simpletimetracker.core.extension.setSkipCollapsed
1414import com.example.util.simpletimetracker.core.utils.fragmentArgumentDelegate
1515import com.example.util.simpletimetracker.feature_base_adapter.BaseRecyclerAdapter
16+ import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
1617import com.example.util.simpletimetracker.feature_base_adapter.category.createCategoryAdapterDelegate
1718import com.example.util.simpletimetracker.feature_base_adapter.empty.createEmptyAdapterDelegate
1819import com.example.util.simpletimetracker.feature_base_adapter.loader.createLoaderAdapterDelegate
@@ -84,10 +85,21 @@ class ChartFilterDialogFragment : BaseBottomSheetFragment<Binding>() {
8485 override fun initViewModel (): Unit = with (viewModel) {
8586 extra = params
8687 filterTypeViewData.observe(binding.buttonsChartFilterType.adapter::replace)
87- types.observe(recordTypesAdapter::replace )
88+ types.observe(::setViewData )
8889 onDataSelected.observe(::onDataSelected)
8990 }
9091
92+ private fun setViewData (data : List <ViewHolderType >) = with (binding) {
93+ val current = recordTypesAdapter.currentList
94+ recordTypesAdapter.replace(data)
95+ // Flexbox is collapsing to zero height when it is scrolled to bottom
96+ // and data is replaces with shorter list.
97+ // Scroll to top to prevent this.
98+ if (data.size < current.size) {
99+ rvChartFilterContainer.scrollToPosition(0 )
100+ }
101+ }
102+
91103 private fun onDataSelected (result : ChartFilterDataSelectionResult ) {
92104 chartFilterDialogListener?.onChartFilterDataSelected(
93105 chartFilterType = result.chartFilterType,
0 commit comments