Skip to content

Commit 37f8927

Browse files
committed
fix chart filter collapsing to zero height
1 parent 35af1b6 commit 37f8927

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/chartFilter/view/ChartFilterDialogFragment.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import com.example.util.simpletimetracker.core.extension.findListener
1313
import com.example.util.simpletimetracker.core.extension.setSkipCollapsed
1414
import com.example.util.simpletimetracker.core.utils.fragmentArgumentDelegate
1515
import com.example.util.simpletimetracker.feature_base_adapter.BaseRecyclerAdapter
16+
import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
1617
import com.example.util.simpletimetracker.feature_base_adapter.category.createCategoryAdapterDelegate
1718
import com.example.util.simpletimetracker.feature_base_adapter.empty.createEmptyAdapterDelegate
1819
import 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

Comments
 (0)