From bb5bcefa953aed1fe168377f2febe954260399eb Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Fri, 10 Feb 2023 18:00:07 +0800 Subject: [PATCH] Correct the RTL animation for AnimatedNavHost Use Start & End to make sure this is also correct for RTL. Also import changes from Accompanist. Bug: 236346018 Test: Manually with Settings Change-Id: I8ccfd685d6efdb517b4f50845bbec058d76b1636 --- .../android/settingslib/spa/framework/BrowseActivity.kt | 8 ++++---- .../settingslib/spa/framework/compose/AnimatedNavHost.kt | 6 +----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt index f1b1abdce0e4a..621e6eaf527fb 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/BrowseActivity.kt @@ -119,22 +119,22 @@ private fun NavControllerWrapperImpl.NavContent(allProvider: Collection diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/AnimatedNavHost.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/AnimatedNavHost.kt index 0137572824278..57bb838d55ea6 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/AnimatedNavHost.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/AnimatedNavHost.kt @@ -201,11 +201,7 @@ public fun AnimatedNavHost( transition.AnimatedContent( modifier, transitionSpec = { - val zIndex = if (composeNavigator.isPop.value) { - visibleEntries.indexOf(initialState).toFloat() - } else { - visibleEntries.indexOf(targetState).toFloat() - } + val zIndex = composeNavigator.backStack.value.size.toFloat() // If the initialState of the AnimatedContent is not in visibleEntries, we are in // a case where visible has cleared the old state for some reason, so instead of // attempting to animate away from the initialState, we skip the animation.