From 145e6aad37dea7409ef5411e6178cb9ee8e5f584 Mon Sep 17 00:00:00 2001 From: Siddharth Agarwal Date: Mon, 4 Nov 2024 18:23:08 +0530 Subject: [PATCH 1/6] Fix navigation bar animation --- .../searchTrackEntity/SearchTEActivity.kt | 13 ++++++++++--- .../searchTrackEntity/SearchTEIViewModel.kt | 17 +++++++++++------ .../ui/SearchScreenConfigurator.kt | 5 ++--- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt index 7aff3ec49c..84e07959c2 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt @@ -8,9 +8,12 @@ import android.view.View import androidx.activity.viewModels import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.slideInVertically +import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -272,7 +275,7 @@ class SearchTEActivity : ActivityGlobalAbstract(), SearchTEContractsModule.View override fun onBackPressed() { viewModel.onBackPressed( isPortrait(), - viewModel.searchOrFilterIsOpen(), + viewModel.backdropActive.value ?: false, this.isKeyboardOpened(), { super.onBackPressed() @@ -369,6 +372,7 @@ class SearchTEActivity : ActivityGlobalAbstract(), SearchTEContractsModule.View binding.navigationBar.setContent { DHIS2Theme { val uiState by viewModel.navigationBarUIState + val isBackdropActive by viewModel.backdropActive.observeAsState(false) var selectedItemIndex by remember(uiState) { mutableIntStateOf( uiState.items.indexOfFirst { @@ -387,7 +391,9 @@ class SearchTEActivity : ActivityGlobalAbstract(), SearchTEContractsModule.View } AnimatedVisibility( - visible = viewModel.searchOrFilterIsOpen().not() && uiState.items.isNotEmpty(), + visible = (isBackdropActive.not() && uiState.items.isNotEmpty()) || isLandscape(), + enter = slideInVertically { it }, + exit = slideOutVertically { it }, ) { NavigationBar( modifier = Modifier.fillMaxWidth(), @@ -397,7 +403,7 @@ class SearchTEActivity : ActivityGlobalAbstract(), SearchTEContractsModule.View selectedItemIndex = uiState.items.indexOfFirst { it.id == page } if (sessionManagerServiceImpl.isUserLoggedIn().not()) return@NavigationBar - if (viewModel.searchOrFilterIsOpen()) { + if (viewModel.backdropActive.value == true) { searchScreenConfigurator.closeBackdrop() } @@ -511,6 +517,7 @@ class SearchTEActivity : ActivityGlobalAbstract(), SearchTEContractsModule.View private fun observeScreenState() { viewModel.screenState.observe(this, searchScreenConfigurator::configure) + viewModel.screenState.observe(this, viewModel::updateBackdrop) } private fun observeDownload() { diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt index 8ff9607a9d..45728edd79 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt @@ -118,6 +118,9 @@ class SearchTEIViewModel( private val _filtersOpened = MutableLiveData(false) val filtersOpened: LiveData = _filtersOpened + private val _backdropActive = MutableLiveData() + val backdropActive: LiveData get() = _backdropActive + private val _teTypeName = MutableLiveData("") val teTypeName: LiveData = _teTypeName @@ -728,7 +731,7 @@ class SearchTEIViewModel( SearchResult.SearchResultType.SEARCH_OUTSIDE, searchRepository.getProgram(initialProgramUid)?.displayName(), - ), + ), ) } @@ -865,11 +868,13 @@ class SearchTEIViewModel( } } - fun searchOrFilterIsOpen(): Boolean { - return _screenState.value?.takeIf { it is SearchList }?.let { - val currentScreen = it as SearchList - currentScreen.searchForm.isOpened || currentScreen.searchFilters.isOpened - } ?: false + fun updateBackdrop(screenState: SearchTEScreenState) { + _backdropActive.postValue( + screenState.takeIf { it is SearchList }?.let { + val currentScreen = it as SearchList + currentScreen.searchForm.isOpened || currentScreen.searchFilters.isOpened + } ?: false + ) } fun filterIsOpen(): Boolean { diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt index 44966a3f16..b580213311 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt @@ -7,7 +7,9 @@ import org.dhis2.R import org.dhis2.bindings.display import org.dhis2.bindings.dp import org.dhis2.commons.animations.hide +import org.dhis2.commons.animations.hideWithTranslation import org.dhis2.commons.animations.show +import org.dhis2.commons.animations.showWithTranslation import org.dhis2.databinding.ActivitySearchBinding import org.dhis2.usescases.searchTrackEntity.SearchAnalytics import org.dhis2.usescases.searchTrackEntity.SearchList @@ -83,7 +85,6 @@ class SearchScreenConfigurator( } binding.filterRecyclerLayout.visibility = View.VISIBLE binding.searchContainer.visibility = View.GONE - if (isPortrait()) binding.navigationBar.hide() filterIsOpenCallback(true) changeBounds(R.id.filterRecyclerLayout, 16.dp) } @@ -95,7 +96,6 @@ class SearchScreenConfigurator( } binding.filterRecyclerLayout.visibility = View.GONE binding.searchContainer.visibility = View.GONE - if (isPortrait()) binding.navigationBar.show() filterIsOpenCallback(false) changeBounds(R.id.backdropGuideTop, 0) } @@ -107,7 +107,6 @@ class SearchScreenConfigurator( binding.title.visibility = View.VISIBLE } binding.searchContainer.visibility = View.VISIBLE - if (isPortrait()) binding.navigationBar.hide() filterIsOpenCallback(false) changeBounds(R.id.searchContainer, 0) } From 36abcc9353bb0442f52529f713c8a2c82dfef7d2 Mon Sep 17 00:00:00 2001 From: Siddharth Agarwal Date: Mon, 4 Nov 2024 19:14:57 +0530 Subject: [PATCH 2/6] Fix lint error --- .../dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt | 5 ++--- .../searchTrackEntity/ui/SearchScreenConfigurator.kt | 4 ---- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt index 45728edd79..f9ac63a0ec 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt @@ -730,8 +730,7 @@ class SearchTEIViewModel( SearchResult( SearchResult.SearchResultType.SEARCH_OUTSIDE, searchRepository.getProgram(initialProgramUid)?.displayName(), - - ), + ), ) } @@ -873,7 +872,7 @@ class SearchTEIViewModel( screenState.takeIf { it is SearchList }?.let { val currentScreen = it as SearchList currentScreen.searchForm.isOpened || currentScreen.searchFilters.isOpened - } ?: false + } ?: false, ) } diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt index b580213311..c9d48ed824 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt @@ -6,10 +6,6 @@ import androidx.constraintlayout.widget.ConstraintSet import org.dhis2.R import org.dhis2.bindings.display import org.dhis2.bindings.dp -import org.dhis2.commons.animations.hide -import org.dhis2.commons.animations.hideWithTranslation -import org.dhis2.commons.animations.show -import org.dhis2.commons.animations.showWithTranslation import org.dhis2.databinding.ActivitySearchBinding import org.dhis2.usescases.searchTrackEntity.SearchAnalytics import org.dhis2.usescases.searchTrackEntity.SearchList From 25494a8f9d54d1567eb9e9b01717cdedd7e6a2fd Mon Sep 17 00:00:00 2001 From: Siddharth Agarwal Date: Thu, 7 Nov 2024 15:30:27 +0530 Subject: [PATCH 3/6] Fix animation jerk on search screen --- .../searchTrackEntity/ui/BackdropManager.kt | 27 +++++++++++++++++-- .../ui/SearchScreenConfigurator.kt | 9 ++++--- app/src/main/res/layout/activity_search.xml | 1 + 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt index 81261b2a44..9b760968f0 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt @@ -10,7 +10,12 @@ import org.dhis2.R object BackdropManager { private const val changeBoundDuration = 200L - private fun changeBounds(backdropLayout: ConstraintLayout, endID: Int, margin: Int) { + private fun changeBounds( + isNavigationBarVisible: Boolean, + backdropLayout: ConstraintLayout, + endID: Int, + margin: Int + ) { val transition: Transition = ChangeBounds() transition.duration = changeBoundDuration TransitionManager.beginDelayedTransition(backdropLayout, transition) @@ -19,15 +24,33 @@ object BackdropManager { initSet.clone(backdropLayout) initSet.connect(R.id.mainComponent, ConstraintSet.TOP, endID, ConstraintSet.BOTTOM, margin) + if (isNavigationBarVisible) { + initSet.connect( + R.id.mainComponent, + ConstraintSet.BOTTOM, + R.id.navigationBar, + ConstraintSet.TOP, + 0 + ) + } else { + initSet.connect( + R.id.mainComponent, + ConstraintSet.BOTTOM, + ConstraintSet.PARENT_ID, + ConstraintSet.BOTTOM, + 0 + ) + } initSet.applyTo(backdropLayout) } fun changeBoundsIf( condition: Boolean, + isNavigationBarVisible: Boolean, backdropLayout: ConstraintLayout, endID: Int, margin: Int, ) { - if (condition) changeBounds(backdropLayout, endID, margin) + if (condition) changeBounds(isNavigationBarVisible, backdropLayout, endID, margin) } } diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt index c9d48ed824..9a07f35cf5 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/SearchScreenConfigurator.kt @@ -82,7 +82,7 @@ class SearchScreenConfigurator( binding.filterRecyclerLayout.visibility = View.VISIBLE binding.searchContainer.visibility = View.GONE filterIsOpenCallback(true) - changeBounds(R.id.filterRecyclerLayout, 16.dp) + changeBounds(false, R.id.filterRecyclerLayout, 16.dp) } fun closeBackdrop() { @@ -93,7 +93,7 @@ class SearchScreenConfigurator( binding.filterRecyclerLayout.visibility = View.GONE binding.searchContainer.visibility = View.GONE filterIsOpenCallback(false) - changeBounds(R.id.backdropGuideTop, 0) + changeBounds(true, R.id.backdropGuideTop, 0) } private fun openSearch() { @@ -104,12 +104,13 @@ class SearchScreenConfigurator( } binding.searchContainer.visibility = View.VISIBLE filterIsOpenCallback(false) - changeBounds(R.id.searchContainer, 0) + changeBounds(false, R.id.searchContainer, 0) } - private fun changeBounds(endID: Int, margin: Int) { + private fun changeBounds(isNavigationBarVisible: Boolean, endID: Int, margin: Int) { changeBoundsIf( isPortrait(), + isNavigationBarVisible, binding.backdropLayout, endID, margin, diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml index 1c3de29877..18b91ac443 100644 --- a/app/src/main/res/layout/activity_search.xml +++ b/app/src/main/res/layout/activity_search.xml @@ -210,6 +210,7 @@ android:id="@+id/navigationBar" android:layout_width="match_parent" android:layout_height="wrap_content" + app:layout_constraintTop_toBottomOf="@id/mainComponent" app:layout_constraintBottom_toBottomOf="parent" /> From a5eff31ecae2be4275efac955692ea3240e1fa5c Mon Sep 17 00:00:00 2001 From: Siddharth Agarwal Date: Thu, 7 Nov 2024 17:38:19 +0530 Subject: [PATCH 4/6] Fix FAB and navigation bar animation on program even detail screen --- .../ProgramEventDetailActivity.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/app/src/main/java/org/dhis2/usescases/programEventDetail/ProgramEventDetailActivity.kt b/app/src/main/java/org/dhis2/usescases/programEventDetail/ProgramEventDetailActivity.kt index 6e1cdab635..7b7dbb027f 100644 --- a/app/src/main/java/org/dhis2/usescases/programEventDetail/ProgramEventDetailActivity.kt +++ b/app/src/main/java/org/dhis2/usescases/programEventDetail/ProgramEventDetailActivity.kt @@ -360,6 +360,20 @@ class ProgramEventDetailActivity : ConstraintSet.BOTTOM, 16.dp, ) + initSet.connect( + R.id.fragmentContainer, + ConstraintSet.BOTTOM, + ConstraintSet.PARENT_ID, + ConstraintSet.BOTTOM, + 0, + ) + initSet.connect( + R.id.addEventButton, + ConstraintSet.BOTTOM, + R.id.fragmentContainer, + ConstraintSet.BOTTOM, + 16.dp, + ) } else { initSet.connect( R.id.fragmentContainer, @@ -368,6 +382,20 @@ class ProgramEventDetailActivity : ConstraintSet.BOTTOM, 0, ) + initSet.connect( + R.id.fragmentContainer, + ConstraintSet.BOTTOM, + R.id.navigationBar, + ConstraintSet.TOP, + 0, + ) + initSet.connect( + R.id.addEventButton, + ConstraintSet.BOTTOM, + R.id.navigationBar, + ConstraintSet.TOP, + 16.dp, + ) } initSet.applyTo(binding.backdropLayout) } From 530d5f6d9d2fe13fe57702e98cc7c023450d1347 Mon Sep 17 00:00:00 2001 From: Siddharth Agarwal Date: Thu, 7 Nov 2024 18:36:14 +0530 Subject: [PATCH 5/6] Fix compose jerk --- .../ProgramEventDetailActivity.kt | 22 ++++++++++-------- .../eventList/EventListFragment.kt | 10 ++++---- .../searchTrackEntity/SearchTEActivity.kt | 5 ++-- .../res/layout/fragment_compose_holder.xml | 23 +++++++++++++++++++ 4 files changed, 45 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/layout/fragment_compose_holder.xml diff --git a/app/src/main/java/org/dhis2/usescases/programEventDetail/ProgramEventDetailActivity.kt b/app/src/main/java/org/dhis2/usescases/programEventDetail/ProgramEventDetailActivity.kt index 7b7dbb027f..642fbe283d 100644 --- a/app/src/main/java/org/dhis2/usescases/programEventDetail/ProgramEventDetailActivity.kt +++ b/app/src/main/java/org/dhis2/usescases/programEventDetail/ProgramEventDetailActivity.kt @@ -9,6 +9,7 @@ import android.transition.TransitionManager import android.view.View import androidx.activity.viewModels import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.tween import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.layout.fillMaxWidth @@ -185,8 +186,8 @@ class ProgramEventDetailActivity : AnimatedVisibility( visible = uiState.items.size > 1 && isBackdropActive.not(), - enter = slideInVertically { it }, - exit = slideOutVertically { it }, + enter = slideInVertically(animationSpec = tween(200)) { it }, + exit = slideOutVertically(animationSpec = tween(200)) { it }, ) { NavigationBar( modifier = Modifier.fillMaxWidth(), @@ -321,13 +322,13 @@ class ProgramEventDetailActivity : val transition: Transition = ChangeBounds() transition.addListener(object : Transition.TransitionListener { override fun onTransitionStart(transition: Transition) { + programEventsViewModel.updateBackdrop(backDropActive) if (!backDropActive) { binding.clearFilters.hide() } } override fun onTransitionEnd(transition: Transition) { - programEventsViewModel.updateBackdrop(backDropActive) if (backDropActive) { binding.clearFilters.show() } @@ -345,11 +346,11 @@ class ProgramEventDetailActivity : /*No action needed*/ } }) + backDropActive = !backDropActive + transition.duration = 200 TransitionManager.beginDelayedTransition(binding.backdropLayout, transition) - backDropActive = !backDropActive - val initSet = ConstraintSet() initSet.clone(binding.backdropLayout) if (backDropActive) { @@ -452,12 +453,15 @@ class ProgramEventDetailActivity : override fun showPeriodRequest(periodRequest: PeriodRequest) { if (periodRequest == PeriodRequest.FROM_TO) { - DateUtils.getInstance().fromCalendarSelector(this.context) { datePeriod: List? -> - FilterManager.getInstance().addPeriod(datePeriod) - } + DateUtils.getInstance() + .fromCalendarSelector(this.context) { datePeriod: List? -> + FilterManager.getInstance().addPeriod(datePeriod) + } } else { val onFromToSelector = - OnFromToSelector { datePeriods -> FilterManager.getInstance().addPeriod(datePeriods) } + OnFromToSelector { datePeriods -> + FilterManager.getInstance().addPeriod(datePeriods) + } DateUtils.getInstance().showPeriodDialog( this, diff --git a/app/src/main/java/org/dhis2/usescases/programEventDetail/eventList/EventListFragment.kt b/app/src/main/java/org/dhis2/usescases/programEventDetail/eventList/EventListFragment.kt index dfd4766d67..882e42bc41 100644 --- a/app/src/main/java/org/dhis2/usescases/programEventDetail/eventList/EventListFragment.kt +++ b/app/src/main/java/org/dhis2/usescases/programEventDetail/eventList/EventListFragment.kt @@ -4,12 +4,12 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ViewCompositionStrategy import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import org.dhis2.commons.filters.workingLists.WorkingListViewModel import org.dhis2.commons.filters.workingLists.WorkingListViewModelFactory +import org.dhis2.databinding.FragmentComposeHolderBinding import org.dhis2.usescases.general.FragmentGlobalAbstract import org.dhis2.usescases.programEventDetail.ProgramEventDetailActivity import org.dhis2.usescases.programEventDetail.ProgramEventDetailViewModel @@ -48,16 +48,18 @@ class EventListFragment : FragmentGlobalAbstract() { programEventsViewModel.eventClicked.value = Pair(eventUid, orgUnitUid) } - return ComposeView(requireContext()).apply { + val binding = FragmentComposeHolderBinding.inflate(inflater, container, false) + binding.composeView.apply { setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) setContent { val workingListViewModel by viewModels { workingListViewModelFactory } EventListScreen( - eventListViewModel, - workingListViewModel, + eventListViewModel = eventListViewModel, + workingListViewModel = workingListViewModel, ) } } + return binding.root } override fun onResume() { diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt index 84e07959c2..0a813a057b 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt @@ -8,6 +8,7 @@ import android.view.View import androidx.activity.viewModels import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.tween import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.layout.fillMaxWidth @@ -392,8 +393,8 @@ class SearchTEActivity : ActivityGlobalAbstract(), SearchTEContractsModule.View AnimatedVisibility( visible = (isBackdropActive.not() && uiState.items.isNotEmpty()) || isLandscape(), - enter = slideInVertically { it }, - exit = slideOutVertically { it }, + enter = slideInVertically(animationSpec = tween(200)) { it }, + exit = slideOutVertically(animationSpec = tween(200)) { it }, ) { NavigationBar( modifier = Modifier.fillMaxWidth(), diff --git a/app/src/main/res/layout/fragment_compose_holder.xml b/app/src/main/res/layout/fragment_compose_holder.xml new file mode 100644 index 0000000000..4fa0cbbcab --- /dev/null +++ b/app/src/main/res/layout/fragment_compose_holder.xml @@ -0,0 +1,23 @@ + + + + + + + + + + From c71718f97f6a2adf395c677001b40dd72a335566 Mon Sep 17 00:00:00 2001 From: Siddharth Agarwal Date: Thu, 7 Nov 2024 18:38:16 +0530 Subject: [PATCH 6/6] Fix lint error --- .../dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt index 9b760968f0..eb2c4ea1b3 100644 --- a/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt +++ b/app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/BackdropManager.kt @@ -14,7 +14,7 @@ object BackdropManager { isNavigationBarVisible: Boolean, backdropLayout: ConstraintLayout, endID: Int, - margin: Int + margin: Int, ) { val transition: Transition = ChangeBounds() transition.duration = changeBoundDuration @@ -30,7 +30,7 @@ object BackdropManager { ConstraintSet.BOTTOM, R.id.navigationBar, ConstraintSet.TOP, - 0 + 0, ) } else { initSet.connect( @@ -38,7 +38,7 @@ object BackdropManager { ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, - 0 + 0, ) } initSet.applyTo(backdropLayout)