Add fancy animation for IA fragment
The animation of IA fragment is very choppy on expanding or collapsing
conditionals. So adding LayoutTransition for IA fragment makes the
animation more smoothly.
Bug: 123536786
Bug: 123537499
Test: visual, robotests
Change-Id: I731db8556ac392c9ab98bd292498ccf6c87295fb
diff --git a/res/layout/settings_homepage_container.xml b/res/layout/settings_homepage_container.xml
index 45d0861..78a0278 100644
--- a/res/layout/settings_homepage_container.xml
+++ b/res/layout/settings_homepage_container.xml
@@ -44,7 +44,8 @@
<FrameLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
+ android:layout_height="wrap_content"
+ android:animateLayoutChanges="true"/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index a2e3a9c..7c5f928 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -16,11 +16,13 @@
package com.android.settings.homepage;
+import android.animation.LayoutTransition;
import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
import android.util.FeatureFlagUtils;
import android.view.View;
+import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.Toolbar;
@@ -64,6 +66,8 @@
showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
showFragment(new TopLevelSettings(), R.id.main_content);
+ ((FrameLayout) findViewById(R.id.main_content))
+ .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
}
private void showFragment(Fragment fragment, int id) {
diff --git a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
index b100460..df9e85d 100644
--- a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
@@ -20,6 +20,7 @@
import android.util.FeatureFlagUtils;
import android.view.View;
+import android.widget.FrameLayout;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
@@ -65,4 +66,13 @@
assertThat(actualPaddingTop).isEqualTo(
statusBarHeight + searchBarHeight + searchBarMargin * 2);
}
+
+ @Test
+ public void launch_shouldHaveAnimationForIaFragment() {
+ final SettingsHomepageActivity activity = Robolectric.buildActivity(
+ SettingsHomepageActivity.class).create().get();
+ final FrameLayout frameLayout = activity.findViewById(R.id.main_content);
+
+ assertThat(frameLayout.getLayoutTransition()).isNotNull();
+ }
}